导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→请教旋转编码开关程序[9992000]

 *第34512篇: 请教旋转编码开关程序

  
楼 主:9992000 2005年9月19日11:08
 请教旋转编码开关程序
最近小弟用了个旋转编码开关,用来设定增减量,程序是做好了,但发现有时候方向会判断错误,我用的是下降沿中断检测的,不知哪 位大虾能否帮一下小弟啊,发个程序给我参考一下,在线等待
fd-163@163.com
  
2楼:GodCause 2005年9月19日16:38
 回复:请教旋转编码开关程序
可以这样:
 
     同时读取2个IO输入,在连续读取5次相同的数据作为真实的数据,和前次的真实状态合并成4BIT的数据,旧的在前,新的在后,如果合并出来的数据=0110B,则该加,如果=1001B则该减!

加完或减完后将新的数据覆盖旧的数据,以免重复加减!

  
3楼:9992000 2005年9月20日08:36
 能否发一下你的这一小段程序让我参考一下
  
4楼:9992000 2005年9月20日08:29
 不会吧?高手都哪里去了
  
5楼:zsgg007 2005年9月20日08:37
 软件上增加一些防干扰功能...
  
6楼:9992000 2005年9月20日08:47
 问题好像是出在当停止旋转时,还有一个触点处于连通状态
我在编程时,检测到2个IO口全为高时,才开中断,不知这样做有没有什么问题
  
7楼:GodCause 2005年9月20日09:09
 按我的方法做不需要考虑触点在哪!
按我的方法做不需要考虑触点在哪!
你可以将2相波形画出来看,它们是相差90度的正交方波,我的方法是在状态改变的时候才动作的。

你画1个波形,从左边往右边将2个IO的状态列1个周期,再从右到左也列1个周期,对比一下,你就很容易明白!

我的程序不是中断方法的,也不是51MCU的!


>>>>>>对该主题发表你的看法

本主题贴数7,分页: [第1页]


[上一篇主题]:有人用keil for arm的吗?要怎样设置编译环境?

[下一篇主题]:能否帮我简单看一下我这个液晶显示程序有没有问题:多谢了。