- UID
- 1029342
- 性别
- 男
|
图6 中断程序流程图
LED动态扫描通过系统定时器SysTick发生中断时更新,1 ms刷新一次LED显示。
结语
上述测频采用了定时器对内部时钟CK_INT计数到1 s, 输出溢出触发复位定时器2, 定时器2对外部信号进行计数,此次对外部频率进行了4分频,而内部时钟为72 MHz。根据采样定理,最大频率可以测到72 MHz×4/2=144 MHz,由于实验室条件所限,只有120 MHz的信号发生器,经过测量可准确无误地显示120 MHz,最低可以测到4 Hz。若设置为最大分频数是8,则最大频率可以测到72 MHz×8/2=288 MHz。
本文的创新点:利用了触发捕捉方法测量输入信号的频率,用同一个脉冲捕捉并初始化计数器,可以提高采样速率,减少中断服务函数的执行时间,实现了高速测频。将16位的定时计数器扩展成了32位的定时计数器,这样最大的测频范围可以达到288 MHz。通过对晶振的双精度补偿,能实现测量基本无误差,实现了高精度。用消息驱动的方式,中断服务函数不再去执行消耗大量时间的中断处理函数,而是将中断处理函数地址和参数投递到消息队列,等待用户级函数去获取消息,分拣处理消息,这样做每个中断处理时间缩短了,处理器可以及时地响应多个中断。 |
|