void init_timer1()
{
T1CONbits.TMR1ON=0;
PIE1bits.TMR1IE=0;
T1CON=0X30; //fosc/4 再8分频 1M
TMR1=0xFC17; //65535-1000 定时1ms
PEIE=1; //外部中断使能
GIE=1; //总中断使能
}
void init_timer0()
{
OPTION_REG=0x04; //32分频 1ms
TMR0=6;
INTCON=0XA0;
INTCONbits.TMR0IE=1;
PEIE=1; //外部中断使能
GIE=1; //总中断使能
}
void init_timer2()
{
PIE1bits.TMR2IE=1;
TMR2=6;//timer 2 16*64 分频 始终fosc /4 32ms
T2CON=0X7F;//0X7F;
PR2=255;
PEIE=1; //外部中断使能
GIE=1; //总中断使能
}
中断处理
if((TMR0IF==1)&&(TMR0IE==1))
{
TMR0IF=0; //定时器0
TMR0=6;
}