你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm8s103-TIM1捕捉,如果脉冲宽度大于定时器几倍,如果计算?

[复制链接]
妮妮的萨芬的 提问时间:2015-1-22 20:20 /
16位定时器最大是65536,如果一个脉冲宽度大于几个65536,如何计算?
是不是要先得到溢出了几次?如何取得溢出的次数?
收藏 评论7 发布时间:2015-1-22 20:20

举报

7个回答
不确定性理论 回答时间:2015-1-22 21:05:10
不如干脆不用定时捕捉了。下面的建议你可以看看。
1,配置定时器定时溢出,时间你定。
2,在定时器溢出处理中,对某一个全局变量加1.
3,测量脉冲的引脚设置上升沿或者下降沿触发中断,或者干脆测量电平。
4,当高电平或者上升沿来时,对2的全局变量清零。
5,当第一个低电平或者下降沿来时,读取2的全局变量值。
6,那么全局变量值*定时溢出的时间=脉冲的高电平宽度。
妮妮的萨芬的 回答时间:2015-1-22 21:49:15
不确定性理论 发表于 2015-1-22 21:05
不如干脆不用定时捕捉了。下面的建议你可以看看。
1,配置定时器定时溢出,时间你定。
2,在定时器溢出处理 ...

是高电平脉冲,那我细化一下,你看看
1,配置定时器定时溢出,暂设为50000
2,在定时器溢出处理中,对某一个全局变量(M)加1.
3,设置上升沿中断,上升沿中断处理:清零M、记下定时器的值(C1)、变更引脚为下降沿中断
4,下降沿中断处理:记下定时器的值(C2)、如果M大于零,脉冲宽度=50000-C1+C2+50000*M、变更引脚为上升沿中断
holts1 回答时间:2015-1-22 21:56:06
不确定性理论 发表于 2015-1-22 21:05
不如干脆不用定时捕捉了。下面的建议你可以看看。
1,配置定时器定时溢出,时间你定。
2,在定时器溢出处理 ...

这样计算出来有偏差
holts1 回答时间:2015-1-22 21:56:36
holts1 发表于 2015-1-22 21:56
这样计算出来有偏差

有中断方式好些
不确定性理论 回答时间:2015-1-23 20:03:45
妮妮的萨芬的 发表于 2015-1-22 21:49
是高电平脉冲,那我细化一下,你看看
1,配置定时器定时溢出,暂设为50000
2,在定时器溢出处理中,对某 ...

定时器5000是什么意思?
我一般是设置一个定时器,让他1ms溢出一次,那么全局变量就是每1ms加1.
那么一个高脉冲时间就是全局变量值*1ms就行了。
我没有在程序运行中改变中断触发方式,你的变成下降沿触发我不知道行不行。

此外关于误差,我认为误差一直是存在的,指令还需要时间呢,关键是误差能不能忽略。这看你实际了。
holts1 回答时间:2015-1-23 21:22:13
误差取决取样周期
妮妮的萨芬的 回答时间:2015-1-23 22:09:10
不确定性理论 发表于 2015-1-23 20:03
定时器5000是什么意思?
我一般是设置一个定时器,让他1ms溢出一次,那么全局变量就是每1ms加1.
那么一个 ...

目的是要更精确,如果有一个脉冲小于一个溢出周期

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版