Haii all I have a problem related with Microc PIC IDE (v8.2)
I have 2 timer interrupts(tmr2,tmr1) in my program..like this..
But when Timer 2 Enables (PIE1.TMR2IE = 1) ,both of two interrupts(cnt and cnt2) get incremented ...why ?/
MY WHOLE PROGRAM IS THE BELOW ONE
I have 2 timer interrupts(tmr2,tmr1) in my program..like this..
Code:
void interrupt(){
if (PIR1.TMR1IF) {
PIR1.TMR1IF=0;
cnt++ ;
TMR1H = 0x80;
TMR1L = 0x00;
}
else if(PIR1.TMR2IF)
{
PIR1.TMR2IF=0;
cnt2++ ;
TMR2 = 0;
}
}
MY WHOLE PROGRAM IS THE BELOW ONE
Code:
unsigned short cnt;
unsigned short cnt2;
void interrupt(){
if (PIR1.TMR1IF) {
PIR1.TMR1IF=0;
cnt++ ;
TMR1H = 0x80;
TMR1L = 0x00;
}
else if(PIR1.TMR2IF)
{
PIR1.TMR2IF=0;
cnt2++ ;
TMR2 = 0;
}
}
void main()
{
ANSEL = 0; // Configure AN pins as digital I/O
ANSELH = 0;
TRISB = 0xFF; // set PORTB to be input
TRISE = 0;
TRISD = 0; // set PORTD to be output
PORTD = 0x00;
PORTE=0X00; // initialize PORTD
T1CON = 1;
T2CON = 0xFF; // Timer2 settings
TMR2 = 0; // Initialize Timer2 register
TMR1H = 0x80; // Initialize Timer1 register
TMR1L = 0x00;
INTCON = 0xC0;
PIE1.TMR2IE = 1;
PIE1.TMR1IE = 0;
PIR1.TMR1IF=0;
cnt=0;
cnt2 = 0;
PIR1.TMR2IF=0;
for(;;)
{
if(cnt==61)
{
PORTE=~PORTE;
cnt=0;
}
else if (cnt2==160)
{
PIE1.TMR2IE = 0;
PIE1.TMR1IE = 1;
cnt2=0;
cnt=0;
PORTD=~PORTD;
}
}
}
Last edited by a moderator: