dsp2812的按键识别与防抖程序

[复制链接]
2281|15
 楼主| wwqzi 发表于 2015-11-11 22:47 | 显示全部楼层 |阅读模式
dsp2812的按键识别与防抖程序写的时候是怎样的步骤,需要设置哪些外设
尤彼卡 发表于 2015-11-12 14:07 | 显示全部楼层
不是IO口就行吗,判断IO输入的高还是低
zhs9876 发表于 2015-11-12 15:46 | 显示全部楼层
只是简单的IO口操作,例程里边都有的,现在有点时间就直接给你写个简单的吧,注释就不写了,多个按键的话就把Data的各个位按位域分配出去。
#define AnJian1 GpioDataRegs.GPADATA.bit.GPIOA6
INT16U Data,LastData,JumpFlag,CntStartFlag,T1,AnJianData;
Data = Data & (AnJian1 &1);
JumpFlag = (LastData & 1) ^ (Data & 1);
LastData = Data;
if(JumpFlag & 1)
{
    CntStartFlag = CntStartFlag ^ 1;
}
if(CntStartFlag)
{
    T1++;
    if(T1 >20)
    {
        AnJianData = AnJianData ^1;
    }
}
//上电初始化时初始化一下变量
Data = 0;
LastData = 0;
JumpFlag = 0;
CntStartFlag = 0;
T1 = 0;
AnJianData = 0;
JumpFlag = (LastData & 1) ^ (Data & 1);
LastData = Data;
zhs9876 发表于 2015-11-12 15:48 | 显示全部楼层
哦,最后初始化那错了点,应该是
Data = 0;
LastData = 0;
JumpFlag = 0;
CntStartFlag = 0;
T1 = 0;
AnJianData = 0;
Data = Data & (AnJian1 &1);
LastData = Data;
309030106 发表于 2015-11-12 20:26 | 显示全部楼层
楼上的给力
 楼主| wwqzi 发表于 2015-11-13 07:42 | 显示全部楼层
谢谢了
 楼主| wwqzi 发表于 2015-11-13 07:44 | 显示全部楼层
我还得自己再研究看看,初学的,还不怎么懂,谢谢了
 楼主| wwqzi 发表于 2015-11-13 07:44 | 显示全部楼层
zhs9876 发表于 2015-11-12 15:46
只是简单的IO口操作,例程里边都有的,现在有点时间就直接给你写个简单的吧,注释就不写了,多个按键的话就 ...

谢谢了
 楼主| wwqzi 发表于 2015-11-13 11:48 | 显示全部楼层
尤彼卡 发表于 2015-11-12 14:07
不是IO口就行吗,判断IO输入的高还是低

我是刚刚接触DSP,我主要是不知道这个工程需要哪些外设,需要在哪些源文件里设置,流程是什么样的,楼下给了我一个程序,我先研究看看,谢谢你啊。
陌小生 发表于 2015-11-13 17:06 | 显示全部楼层
建议用状态机!
firstblood 发表于 2015-11-15 10:19 | 显示全部楼层
加一个滤波电容的比较好吧
zhangmangui 发表于 2015-11-15 20:39 | 显示全部楼层
软件  硬件上都可以做处理
不过个人觉得还是硬件上设计的比较靠谱
可可球 发表于 2015-11-15 21:52 | 显示全部楼层
硬件上应该怎么设计消抖呢
haolaishi 发表于 2015-11-15 23:09 | 显示全部楼层
用施密特触发来防抖
baimiaocun2015 发表于 2015-11-19 14:23 | 显示全部楼层
防抖设计的基本思想就是短延时处理的还是?
tongbu2015 发表于 2015-11-19 15:10 | 显示全部楼层
防抖动一般都是采用的是延时办法的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

6

帖子

0

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