ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
25 ноября
39551
_igor_U_ (21.09.2005 12:32, просмотров: 1838)
Подскажите как указать разрядность данных при присваивании их с помощью define. Avr gcc. Сам вопрос в письме. #define OffValve 240u #define FullCurrent 512u #define MiddleCurrent 64u #define KdVFull OffValve*FullCurrent*6 #define KdVMiddle OffValve*MiddleCurrent*6 KdVFull и KdVMiddle компилятор делает 16 битными. Как пояснить компилятору, что они 32х битные? Вот что он делает (lss): Max=KdVFull; 1a6: a0 e0 ldi r26, 0x00 ; 0 1a8: b0 e4 ldi r27, 0x40 ; 64 1aa: c0 e0 ldi r28, 0x00 ; 0 1ac: d0 e0 ldi r29, 0x00 ; 0 Т.е. теряет старшие 16 бит. KdVFull должен быть равен 0хB4000 (737280). Объявление Max: uint32_t Max;