#include #define myPB6bit PORTBbits.RB6 void chk_isr(void); void T0_ISR(void); void T1_ISR(void); #pragma interrupt chk_isr void chk_isr (void) { if (INTCONbits.TMR0IF==1) T0_ISR( ); if(PIR1bits.TMR1IF==1) T1_ISR(); } #pragma code My_HiPrio_Int=0x0008 void My_HiPrio_Int (void) { _asm GOTO chk_isr _endasm } #pragma code void main(void) { TRISBbits.TRISB6=0; TRISCbits.TRISC0=1; TRISD=0; T0CON=0x08; TMR0H=0; TMR0L=0; T1CON=0x06; TMR1H=255; TMR1L=-200; INTCONbits.TMR0IF=0; PIR1bits.TMR1IF=0; INTCONbits.TMR0IE=1; PIE1bits.TMR1IE=1; T0CONbits.TMR0ON=1; T1CONbits.TMR1ON=1; INTCONbits.PEIE=1; INTCONbits.GIE=1; while(1); } void T0_ISR(void) { PORTD++; TMR0H=0; TMR0L=0; INTCONbits.TMR0IF=0; } void T1_ISR(void) { myPB6bit=~myPB6bit; TMR1H=255; TMR1L=-200; PIR1bits.TMR2IF=0; }