Вопрос, собственно, вот в чем: при симуляции тини13 в AVRStudio симуляторе режим сброса по WDT работает нормально, сбрасывает. А вот режим прерывания не пойму - то ли не симулируется, то ли я не правильно инициализирую WDT. Вот собственно код: cli wdr in temp,MCUSR andi temp, (0xff & (0<<WDRF)) ;должен быть сброшен до WDE out MCUSR,temp ldi temp,(1<<WDCE) | (1<<WDE) ;Start timed sequence out WDTCR,temp ldi temp, (0<<WDE) | (1<<WDTIE) ;конфигурация в режим прерываний с минимальным периодом переполнения out WDTCR,temp
В таком виде при симуляции генерации прерывания не присходит, флаг WDTIF не устанавливается даже по прошествии 20 секунд (хотя должен через 16 мс установиться). Если ручками во время симуляции установить этот флаг, то переход на вектор прерывания WDT происходит. А в таком сброс от WDT нормально симулируется: cli wdr in temp,MCUSR andi temp, (0xff & (0<<WDRF)) ;должен быть сброшен до WDE out MCUSR,temp ldi temp,(1<<WDCE) | (1<<WDE) ;Start timed sequence out WDTCR,temp ldi temp, (1<<WDE) | (0<<WDTIE) ;конфигурация в режим сброса с минимальным периодом переполнения out WDTCR,temp
Подскажите, может быть неправильно конфигурю WDT?
|