pic 16 定时器 012

2019-04-15 16:04发布

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;
}