Программирование AVR: решение проблем, FAQ AVR GCC (AVR Studio) warning: integer overflow in expression Thu, November 21 2024  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.


AVR GCC (AVR Studio) warning: integer overflow in expression Печать
Добавил(а) microsin   

Описывается одна из причин возникновения такого предупреждения.

Предупреждение означает, что при вычислении выражения возможно переполнение. У меня оно возникло в таком примере кода:

//[timer.c]
#define F_CPU 12000000L    //тактовая частота ATmega32, Гц
#define TCNT1_1MS (65536-(F_CPU/(256*1000)))
TCNT1 = TCNT1_1MS;

../timer.c: In function 'SetupTIMER1':
../timer.c:22: warning: integer overflow in expression

Предупреждение пропадает, если делитель в выражении тоже определить с типом long (добавим к константе букву L):

#define TCNT1_1MS (65536-(F_CPU/(256L*1000)))

 

 

Добавить комментарий


Защитный код
Обновить

Top of Page