以下全为个人见解,如有不恰当的地方,欢迎拍砖  
 
 
其中,M法为测脉冲频率法。T法为测周脉冲周期法 
设Fx为待测频率 
在低速模式下(Fx小),用测周法测得准 
在高速模式下(Fx大),用测频法测得准 
以往我们测速都基本都是用M法(给定一个定时器时间,时间一到读取外部中断内变量的值) 
下面给大家分享下介于两种方法融合的M/T测速法 
这是其中一种实现方法。 
 
 
 
拍照内容来自与《电子测量与仪器》第二版       陈尚松 郭庆 雷加  编著 
下面是使用单片机实现的步奏 
使用M/T测速 
1、确定测速周期,也就是图中的大T设标识量(flag = 1) 
2、开启定时器0,设定时间为大T的中断。 
3、开启外部中断0,设为上升沿触发。 
4、第一次触发外部中断0时开启定时器1,使其内部计数器num1++(设t1为定时器自增周期由系统时钟分 
频得到,num1为定时器的计数器值) 
5、往后外部中断0触发,中断内变量(设num0)num0++ 
6、T结束时置flag=0 
7、在T结束后(通过检查flag值来判断)的下一次进入INT0,关闭外部中断0,关闭定时器时钟。 
8、计算Fx(脉冲频率)=(num0/num1)*(1/t1) 
 
PS:理论上T越大越好,实际使用时应在系统允许的速度更新范围内取最大值(其实还要看num1和num0的 
范围) 
此系统存在量化误差,误差源为T1,因t1明显小于tx(被测脉冲周期),故比起单独T或者M的量化误差要 
小得多。 
 
如有错请各位提出来,也避免我一个人闭门造车。谢谢大家! 
 
 |