选用内部RC 12MHZ timer3 作为定时
static void init_timer3(uint16 SampleFreq)
{//SampleFreq为采样频率(1S的采样次数)。
SampleFreq =CPU_FREQ /SampleFreq;
ET3 =1; //ET3,中断使能
_push_(INSCON);
SelectBank(1);
T3CON =(1<<4);
TH3 =-(SampleFreq/256);
TL3 =-(SampleFreq%256);
T3CON |=(1<<2); //启动定时器3
_pop_(INSCON);
}
然后调用 init_timer3(1000); 1ms中断一次。
用示波器测试IO的翻转在7.8ms。与设置偏差很大。
为何? |