打印

dsp2812的按键识别与防抖程序

[复制链接]
1906|15
手机看帖
扫描二维码
随时随地手机跟帖
沙发
尤彼卡| | 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;

使用特权

评论回复
5
309030106| | 2015-11-12 20:26 | 只看该作者
楼上的给力

使用特权

评论回复
6
wwqzi|  楼主 | 2015-11-13 07:42 | 只看该作者
谢谢了

使用特权

评论回复
7
wwqzi|  楼主 | 2015-11-13 07:44 | 只看该作者
我还得自己再研究看看,初学的,还不怎么懂,谢谢了

使用特权

评论回复
8
wwqzi|  楼主 | 2015-11-13 07:44 | 只看该作者
zhs9876 发表于 2015-11-12 15:46
只是简单的IO口操作,例程里边都有的,现在有点时间就直接给你写个简单的吧,注释就不写了,多个按键的话就 ...

谢谢了

使用特权

评论回复
9
wwqzi|  楼主 | 2015-11-13 11:48 | 只看该作者
尤彼卡 发表于 2015-11-12 14:07
不是IO口就行吗,判断IO输入的高还是低

我是刚刚接触DSP,我主要是不知道这个工程需要哪些外设,需要在哪些源文件里设置,流程是什么样的,楼下给了我一个程序,我先研究看看,谢谢你啊。

使用特权

评论回复
10
陌小生| | 2015-11-13 17:06 | 只看该作者
建议用状态机!

使用特权

评论回复
11
firstblood| | 2015-11-15 10:19 | 只看该作者
加一个滤波电容的比较好吧

使用特权

评论回复
12
zhangmangui| | 2015-11-15 20:39 | 只看该作者
软件  硬件上都可以做处理
不过个人觉得还是硬件上设计的比较靠谱

使用特权

评论回复
13
可可球| | 2015-11-15 21:52 | 只看该作者
硬件上应该怎么设计消抖呢

使用特权

评论回复
14
haolaishi| | 2015-11-15 23:09 | 只看该作者
用施密特触发来防抖

使用特权

评论回复
15
baimiaocun2015| | 2015-11-19 14:23 | 只看该作者
防抖设计的基本思想就是短延时处理的还是?

使用特权

评论回复
16
tongbu2015| | 2015-11-19 15:10 | 只看该作者
防抖动一般都是采用的是延时办法的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

6

帖子

0

粉丝