Здравствуйте. Я пытаюсь использовать прерывание timer1 на PIC18F26K83.Я использую Micro C в качестве компилятора.Поэтому я установил таймер на 30 мс, и после этих 30 мсек он должен ввести прерывание и зажечь светодиод.Но он никогда не загорается светодиодом (никогда не входит в прерывание / прерывания не происходит.).Код:
#define led LATA.RA2
void Clk_8Mhz(){
//8 MHz clock
// OSCCON1 REGISTER
NOSC2_BIT=1;
NOSC1_BIT=1;
NOSC0_BIT=0;//HF INTERNAL OSC
//OSCFRQ REGISTER HFINTOSC FREQ. SELECTION
OSCCON1 =0b01100000; //HFINTOSC, Divider =1;
FRQ3_BIT=0;
FRQ2_BIT=0;
FRQ1_BIT=1;
FRQ0_BIT=1; // 0011 :8MHz //0100 = 16 Mhz
}
//Timer1
//Prescaler 1:1; TMR1 Preload = 5536; Actual Interrupt Time : 30 ms
void InitTimer1(){
T1CON = 0x01;
TMR1IF_bit = 0;
TMR1H = 0x15;
TMR1L = 0xA0;
TMR1IE_bit = 1;
INTCON = 0xC0;
}
void main (){
TRISA.B2=0;
led=0;
clk_8Mhz();
InitTimer1();
while(1){
delay_ms(10);
} }
void Interrupt(){
if (TMR1IF_bit){
TMR1IF_bit = 0;
TMR1H = 0x15;
TMR1L = 0xA0;
led=1;
}
}
Что может быть причиной этого никогда не происходящего прерывания?Заранее спасибо.