用定时器来及频率,你只需将定时器定时为1秒,1秒内的脉冲个数就是频率了。如果你一定要公式,非常简单,用计数器计到的脉冲个数除以定时时间就是频率了。其中定时器每计一次的时间是晶振的十二分之一,例如,12M晶振就是(12*10^6)*(1/12)=1us.
f=n/(n1*f1)=n/f1/n1=(采样时间)/(脉冲个数)
f:频率
n:定时器的数据(程序里面定义好得)
f1:晶振频率(n/f1为 采样时间)
n1:计数器的值(脉冲个数)
也可以用65535-你计数大小,将得到的数转换成16进制数,所得到的高两字节就是thx,低两字节就是tlx。直接用16进制形式赋值即可。如计时50ms,用65535-50000=15535=0x3caf,则thx=0x3c,tlx=0xaf.这样应该容易理解一点!
12M的晶振近似计数器计数1,为1us,比如定时20ms=20000us则定时器初值设定为65535-20000.频率是时间的倒数,反一下就可以了
看你用的是哪种方式定时