реклама на сайте
подробности

 
 
> передать тип структура в ф-ю
Метценгерштейн
сообщение Feb 5 2015, 08:00
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



не сообразить никак.

есть структура
Код
typedef enum {
  ADC_CMD_GET_VALUE,
  ADC_CMD_SET_PIN,
  ADC_CMD_SET_CHANNEL,
  ADC_CMD_SET_CHANNEL_PRESCALLER,
  ADC_CMD_SET_CHANNEL_REFERENCE,
  ADC_CMD_SET_CALLBACK,
  ADC_CMD_UPDATE,
  ADC_CMD_HANDLE,
} adc_cmd_t;


некая ф-я хочет получить несколько параметров этой структуры, можно по очереди. Например, номер пина.
Код
err_hw_t adc_cmd( adc_cmd_t cmd, ... );

прототип ее.

как это делается?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Метценгерштейн
сообщение Feb 5 2015, 08:15
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



это понятно. корректно ли так передавать номер каналав ф-ю?
Код
adc_cmd (ADC_CMD_SET_CHANNEL,0);

ругани нет

сама ф-я
Код
err_hw_t adc_cmd( adc_cmd_t cmd, ... )
{
  va_list args;
  err_hw_t retval = HW_SUCCESS;
  if(adc_init_en == 0) return HW_ERROR;
  va_start(args,cmd);
  switch(cmd)
  {
    case ADC_CMD_GET_VALUE:
      {
        retval = HW_ERROR_CMD;
      }
      break;
    case ADC_CMD_SET_CALLBACK:
      {    
        callback = va_arg( args, adc_callback_t );
      }
      break;
    case ADC_CMD_SET_PIN:
      {
        unsigned int pin       = va_arg( args, unsigned int );
        unsigned int en        = va_arg( args, unsigned int );
        if( pin > 31 )
        {
          retval = HW_ERROR_CMD;
        }
...
...
...
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th August 2025 - 10:20
Рейтинг@Mail.ru


Страница сгенерированна за 0.03476 секунд с 7
ELECTRONIX ©2004-2016