Cycle=sum/8+sum%8; //TimerA的时钟为8M、将采集数据转化us
Cycle*=0.962; //对数据进行补偿
sum为两次上升沿捕捉CCR0的差值(已多次取平均值),最终显示周期为Cycle的值,单位us。按我的理解Cycle=sum/8;就可以了,谁能告诉我这两句什么意思,程序是测MCLK的,即32.768Hk,经计算不分频,2分频,4分频,8分频
周期应为: 30.5us, 61.0us, 122.1us, 244.1us,
原代码测得: 34us, 60us, 121us, 242us,
而将原两行代码改为Cycle=sum/8;则为: 33us, 63us, 126us, 252us,(测量数据均取整)
很奇怪,后三个数据确实原代码更接近,求解释两句原代码。。。 |