вобщем делаю в IAR определения для АЦП-ешки
CODE
typedef struct {
ADS131_ModeEn mode; /* режим работы */
ADS131_FreqEn sps; /* частота АЦП */
ADS131_PgaEn pga; /* PGA */
ADS131_MuxEn mux; /* Мультиплексор на входе */
ADS131_TestEn test_sign; /* Тестовый сигнал */
ADS131_TestFreqEn test_freq; /* Частота тестового сигнала */
u8 bitmap; /* Включенные каналы: 1 канал включен, 0 - выключен */
u8 file_len; /* Длина файла записи в часах */
} ADS131_Params;
//ADS131_XXX - определены как enum
Для того чтобы посмотреть, что там у меня получается -сделал прогу в С++ Builder
чтобы можно было настройки АЦП передавать своей DSP плате по посл. порту.
посмотрел в билдере sizeof(ADS131_Params)
опа - 28 байт
думаю, ну ладно, у меня объем буфера приема большой - не страшно
На приемной стороне нули, вместо адекватных значений.
Квырялся полдня - потом все же посмотрел, что IAR трактует енумы как байты
поэтому значения попадают на поле с нулем.
Надо исправить, но не знаю как как!
не хочу менять на u8 - так как названия ADS131_XXX более понятны
ищу опции у IAR "treat enum as int" или чего то подобное
не могу найти в опциях.
Как это правильно сделать?