Re: PIC16 TMR0 и TMR2
Непериферийными являются прерывания от TMR0, при изменении нулевого бита PORTB и 4-х старших битов PORTB. Все остальные называют периферийными не по их назначению, а потому что для их разрешения, кроме установки собственного бита разрешения данного модуля, установки бита GIE, необходимо установить еще и бит PEIE (PEripheral Interrupt Enable). См. в даташит схемку логики прерываний. Задержки переключения светодиодов сильно отличаются (у D4 период 5мкс, ведь время его переключения определяется почти всегда только временем выполнения команд между MAIN и GOTO MAIN, причем, команды CALL почти всегда пропускаются. Чтобы оценить визуально время переключения, нужно в ОЗУ создать внешние счетчики для TMR0 и TMR2. После каждого прерывания от них декрементировать счетчик и проверять на =0. Только в случае =0 переключать светодиод. Конечно, можно каждый сигнал на светодиодах смотреть на осциллографе, меняя масштаб времени. В общем - отлично. Так можно изучать работу и других модулей и набираться опыта. А протеус - это чудо!
|