各位大佬我又来求助了。
单片机型号:C8051F120;主频98M,PCA模块时钟98M(因为是在开发板上测试的,使用的内部晶振24.5M,倍频到98M。外部晶振22.1184M感觉更不好使用)
设计功能:利用这款单片机的PCA模块的捕获/比较功能采集0HZ-1MHz的脉冲频率;
遇到的问题:回环采集这款单片机自身定时器产生的1M及以下的方波频率时能够准确采集到,采集信号源发出的1M以下的方波就会出现不准。
例举几个测试数据:输入1M,输出989898Hz,980000Hz,1000000Hz;
输入100K,输出990,980-990波动;
输入10Hz,输出9Hz稳定不变;
输入2Hz,输出1Hz;
输入1Hz,没有进入捕获中断。
程序中的计算公式:freq=98000000L/(65536*count+current-previous)
freq->计算得到的频率;
98000000->PCA模块的时钟;
count->PCA模块的定时器溢出次数;
current->此次上升沿捕获到时PCA模块定时器的值;
previous->上次上升沿捕获到时PCA模块定时器的值; |