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

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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版