[51单片机] 两个定时器的干扰问题

[复制链接]
2932|16
 楼主| 尚善励挚 发表于 2014-11-24 11:42 | 显示全部楼层 |阅读模式
问题描述:定时器0,中断里面写的是波形;定时器1中,是按键扫描。
问题现象:当旋转编码开关,出现问题的时候,波形的周期发生变化。
怎么解决??
在线等,谢谢。
wangch_sh 发表于 2014-11-24 11:46 | 显示全部楼层
定时器写的什么波形?旋转编码开关出现什么问题?波形周期怎么变化?
ningling_21 发表于 2014-11-24 11:59 | 显示全部楼层
编码开关和 按键 是什么关系?

是不是有延时消抖?
airwill 发表于 2014-11-24 12:06 | 显示全部楼层
明显是用按键扫描方式扫描编码开关. 处理太废时间, 占据了发波形的中断.

按键扫描其实不是个时间关键任务, 中断设个标志, 交给主循环去处理就行了
Ketose 发表于 2014-11-24 12:08 | 显示全部楼层
定时器0的优先级设置的高点。
 楼主| 尚善励挚 发表于 2014-11-24 12:24 | 显示全部楼层
wangch_sh 发表于 2014-11-24 11:46
定时器写的什么波形?旋转编码开关出现什么问题?波形周期怎么变化?

就是方波 脉宽1000ms ;旋转编码开关,在转动的时候,会卡在中间,导致检测电位的引脚,一直是地电位;波形周期变长了
 楼主| 尚善励挚 发表于 2014-11-24 12:26 | 显示全部楼层
ningling_21 发表于 2014-11-24 11:59
编码开关和 按键 是什么关系?

是不是有延时消抖?

编码开关就是按键  延时消抖是有的 ,可以看下上一楼我给出的回复
 楼主| 尚善励挚 发表于 2014-11-24 12:30 | 显示全部楼层
airwill 发表于 2014-11-24 12:06
明显是用按键扫描方式扫描编码开关. 处理太废时间, 占据了发波形的中断.

按键扫描其实不是个时间关键任务, ...

说的很对! 但是当我把扫描放入到<main.c>中 while(1)里面时,会响应不及时,现象就是:旋转编码器,转了好几圈,屏幕上才会跳到下一个界面。时快时慢的。客户体验感较差。
 楼主| 尚善励挚 发表于 2014-11-24 12:32 | 显示全部楼层
Ketose 发表于 2014-11-24 12:08
定时器0的优先级设置的高点。

PT0=1;??是这样设置的吗? 我试过了
ningling_21 发表于 2014-11-24 12:40 | 显示全部楼层
尚善励挚 发表于 2014-11-24 12:30
说的很对! 但是当我把扫描放入到中 while(1)里面时,会响应不及时,现象就是:旋转编码器,转了好几圈, ...

在定时器中断中延时消抖,这是很影响系统实时性的,应该严格禁止
coody 发表于 2014-11-24 13:31 | 显示全部楼层
T0设置高优先级中断
 楼主| 尚善励挚 发表于 2014-11-24 14:16 | 显示全部楼层
ningling_21 发表于 2014-11-24 12:40
在定时器中断中延时消抖,这是很影响系统实时性的,应该严格禁止

没有在中断里面做这些
 楼主| 尚善励挚 发表于 2014-11-24 14:20 | 显示全部楼层
coody 发表于 2014-11-24 13:31
T0设置高优先级中断

设置了 无论,我把哪个定时器中断设置成优先级高的,另一个都会有问题。
ningling_21 发表于 2014-11-24 14:46 | 显示全部楼层
尚善励挚 发表于 2014-11-24 14:20
设置了 无论,我把哪个定时器中断设置成优先级高的,另一个都会有问题。 ...

还是程序的问题
coody 发表于 2014-11-24 16:19 | 显示全部楼层
中断里不要等待
tokuhou 发表于 2014-11-24 17:30 | 显示全部楼层
中断里的程序越少越好,最好用标志 位
dragonhux 发表于 2014-11-25 11:36 | 显示全部楼层
Timer1中的处理流程占用时间太长
您需要登录后才可以回帖 登录 | 注册

本版积分规则

23

主题

144

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部