怎么用定时器和外部触发同步在高电平时计数器计数

2019-07-18 17:31发布

我使用的单片机STM32F103VC  外部芯片连接到单片机PB9(96脚 可复用为tiM4_CH4),正常情况下,外部芯片输出16.384KHz的时钟,有故障时输出高电平。用定时器如何做。但最好不要用1uS的定时器去检测PB9的电平高低。

自己的初步设想:
想用定时器和外部触发同步,在高电平时计数器计数,低电平是清零,当计数器大于30.5us时(16.384KHz的半个周期时间)触发中断。但一直没试成功。

有更好的方法,请赐教....
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
18条回答
testd018
2019-07-20 13:10
屠鸡勇士李运好 发表于 2019-5-14 18:23
用Tim4 输入捕获,当捕捉到上升沿就清零计数器, 当计数器值大于30.当计数器大于30.5us时(16.384KHz的半个周期时间)就认为有故障 ?  

怎么想的呀,高电平故障不是吗,那就是上升沿开始计数,下降沿复位计数,你可以设置超时中断,只要不超时(16.384Khz的半周期很容易算出来),所以只要超时了不就是有故障了吗,不过频繁中断会对cpu的消耗很大,所以要根据应用场景来看是否需要这么严格,从而设计一个比较宽裕的条件!
最靠谱和比较渐变的方法就是统计脉冲数呀,例如按照你16.384Khz,1s有多少个脉冲数是固定的呀,加入允许点误差,就前后加一点点,如果出现了故障,最后的脉冲数肯定不会是你定义的正常的脉冲数呀.

一周热门 更多>