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

2019-07-18 17:31发布

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

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

有更好的方法,请赐教....
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
屠鸡勇士李运好
1楼-- · 2019-07-20 13:51
 精彩回答 2  元偷偷看……
testd018
2楼-- · 2019-07-20 19:46
屠鸡勇士李运好 发表于 2019-5-14 19:07
这样做:
Tim4_Init(void)
{                 GPIO_InitTypeDef GPIO_InitStructure;                TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;               

中断太频繁了,对你的系统压力太大~
你用脉冲数统计法吧,这样得话你只需要格一段时间去轮询脉冲数就行了,记住溢出的时候也要处理一下(复位一下继续统计)
屠鸡勇士李运好
3楼-- · 2019-07-20 22:42
testd018 发表于 2019-5-14 19:27
中断太频繁了,对你的系统压力太大~
你用脉冲数统计法吧,这样得话你只需要格一段时间去轮询脉冲数就行了,记住溢出的时候也要处理一下(复位一下继续统计)

1.为什么开启了定时器溢出中断,会导致看门狗频繁复位?
2 .脉冲统计法,没办法及时判断出吧,理论上说只要高电平持续的时间超过31us就认为是故障。
testd018
4楼-- · 2019-07-21 01:39
屠鸡勇士李运好 发表于 2019-5-14 19:36
1.为什么开启了定时器溢出中断,会导致看门狗频繁复位?
2 .脉冲统计法,没办法及时判断出吧,理论上说只要高电平持续的时间超过31us就认为是故障。

1、因为中断太频繁了,导致你没有机会运行主循环的代码就又进中断了,31us的中断太急了
2、按理论说是这样的,这个要根据你需求了
人中狼
5楼-- · 2019-07-21 03:14
外部中断和定时器同时用吧,外部边沿触发外部中断,外部中断所要做的就是上升沿触发中断时启动定时器,和改为下降沿触发外部中断,下降沿触发中断时,清除定时器并改为上升沿触发外部中断。
定时器定时32微秒,如果定时到了,那就是外部故障了,
Arvin1987
6楼-- · 2019-07-21 03:19
 精彩回答 2  元偷偷看……

一周热门 更多>