Добрый день!
Очень нуждаюсь в помощи.
Проблема в том, что при переполнении TMR1 флаг PIR1,TMR1IF не устанавливается в 1,
тем сам не генерируется прерывание! Уже все мозги сломал
Очень прошу помочь в решении данной проблемы.
Вот кусок кода настройки таймера (обратите внимание, что TMR1 управляется через GATE):
Код:
|
movlw b'00000010' ; Такт таймера от FOSC/4. Пределитель 1:1. Схема генератора выключена.
movwf T1CON ; Синхронизацая по умолчанию. 16-бит чтение/запись.
movlw b'11000001' ; Управление GATE включено. Активное состояние 1. Источник управления TMR2.
movwf T1GCON
clrf TMR1H ; Сброс счетчика таймера.
clrf TMR1L
bsf T1CON,TMR1ON ; Включить таймер.
clrf T2CON ; Пре и пост делители 1:1.
setf PR2 ; Полный периуд (=.255)
clrf TMR2 ; Сброс счетчика таймера.
bsf IPR1,TMR1IP ; Прерывание TMR1 высокий приоритет.
bcf PIR1,TMR1IF ; Сброс флага переполнения TMR1.
bsf PIE1,TMR1IE ; Разрешить прерывание переполнения TMR1.
bsf T2CON,TMR2ON ; Включить 3-х байтный счетчик.
bsf INTCON,GIEL ; Разрешить прерывания низкого уровня.
bsf INTCON,GIEH ; Включить прерывания высокого и низкого уровня. |