PIC 1508 TIM2的定时器使用

2019-04-15 14:50发布

使用TIM2的频率计算公式f=FOSC/4/T2CKPS/T2OUTPS/TMR2     (TMR2是TIM2的数据寄存器)   void main()
{
    OSCCON = 0x78;//主频率为16M   即FOSC = 16M
    __delay_ms(50);
    ANSC6 = 1;
    TRISC6 = 0;
    RC6 = 1;//RC6接了一盏LED
    
    T2CON = 0x04;     /*T2OUTPS = 0(Timer2 输出后分频比为1:1)      TMR2ON=1(Timer2 使能位使能)     T2CKPS=0(Timer2 时钟预分频比为1:1);*/     PR2 = 49;//当TMR2计数到49的时候产生标志位置1     TMR2IE = 1;、//允许 Timer2 与 PR2 匹配中断     PEIE = 1;//允许所有有效外设中断     GIE = 1 ;//允许所有有效中断     TMR2IF = 0;//标准位清零
    while(1)
    {
    }
}
      void interrupt isr(void)
{
    if(TMR2IF == 1)
    {
        GIE = 0;
        TMR2IF = 0;
        if(!flag)
        {
            flag = 1;
            RC6 = 0;
        }
        else
        {
            flag = 0;
            RC6 = 1;
        }
        GIE = 1;
    }
}     理论频率f=16M/4/1/1/(49+1)=80000; 示波器显示为 39.6K*2= 79.2K