使用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