#define WATCHDOG_DISABLE { MCU_REG &= ~(1 << WDRF); WDT_REG |= (1 << WDCE) | (1 << WDE); WDT_REG = 0; }
////////////////////////////////////////////////////////////////////////////////
int main( void )
{
WATCHDOG_DISABLE; // эквивалентно
...
бла-бла-бла
...
WATCHDOG_RESET;
WDT_REG |= (1 << WDCE) | (1 << WDE);
WDT_REG = (1 << WDE) | (1 << WDP3) | (1 << WDP0);
}
иар решил сэкономить один байт и оформил запись бита WDCE как подрограмму
ну и получилось что в отведенные аппаратных четыре такта из-за появившегося RET не вмещаемся.
Какой прагмой отключить на выбраном куске программы оптимизацию ? (сейчас стоит High-Speed)