专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
MSP430按键与ADC采集代码整合出现的问题求助
2019-03-24 09:37
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
TI MCU
8012
19
951
这是我参考别人按键程序修改的主程序:
下面的是ADC电压采集程序:
现在出现的问题是:在进行实验仿真时,程序是可以完全地运行,只是在运行过程中,只能使用按键一次,按键按下之后程序就只能输出一个方波,再另外按下另一个按键就没有反应。程序在
时,KEY的值就保持不变了,请问该如何修改程序,使程序能按下一个键就能输出一个方波,使它们自由转换呢?求助!!!
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
19条回答
qiushenghua
2019-03-25 08:57
如果是我来写这段程序,首先我就不会增加那么多的delay_ms函数。因为你这用的MSP430是低功耗MCU,所以我会用低功耗模式来实现ms级别的延时。
再说说处理按键,我会使用一个全局变量Key_State来储存当前按键按下的信息,使用静态变量Last_Key_State来记住上一按键状态信息。使用unsigned char类型,那么一个变量能储存8个按键的信息。
在采集按键前,将Key_State存进Last_Key_State,然后更新Key_State。如果Last_Key_State与Key_State的某位不同,说明该位代表的按键经历过变动。当然这个变动可能是按键按下也可能是按键弹起。
在消抖这件事情上,可以通过这样的方式来做:连续两个采样周期采集到的按键状态一致。如果满足这个条件,那么我们完全可以认为按键没有抖动。当然,两个按键采样周期之间的时间间隔需要大于10ms。
楼主不妨贴出完整的代码(文本而不是图片),和硬件连接等信息,这样我们可以在楼主代码基础上改动,也更容易找出问题所在。另外,我们尚且未知楼主的MCU的具体型号,很多判断均基于本版是MSP430版,既然楼主在本版发帖,那么使用的就是MSP430MCU这一假设做出,即便如此,MSP430不同系列不同型号之间也存在差异,仍可能存在判断不准确的情形。
加载中...
查看其它19个回答
一周热门
更多
>
相关问题
相关文章
×
关闭
采纳回答
向帮助了您的知道网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
×
付费偷看金额在0.1-10元之间
确定
×
关闭
您已邀请
0
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
再说说处理按键,我会使用一个全局变量Key_State来储存当前按键按下的信息,使用静态变量Last_Key_State来记住上一按键状态信息。使用unsigned char类型,那么一个变量能储存8个按键的信息。
在采集按键前,将Key_State存进Last_Key_State,然后更新Key_State。如果Last_Key_State与Key_State的某位不同,说明该位代表的按键经历过变动。当然这个变动可能是按键按下也可能是按键弹起。
在消抖这件事情上,可以通过这样的方式来做:连续两个采样周期采集到的按键状态一致。如果满足这个条件,那么我们完全可以认为按键没有抖动。当然,两个按键采样周期之间的时间间隔需要大于10ms。
楼主不妨贴出完整的代码(文本而不是图片),和硬件连接等信息,这样我们可以在楼主代码基础上改动,也更容易找出问题所在。另外,我们尚且未知楼主的MCU的具体型号,很多判断均基于本版是MSP430版,既然楼主在本版发帖,那么使用的就是MSP430MCU这一假设做出,即便如此,MSP430不同系列不同型号之间也存在差异,仍可能存在判断不准确的情形。
一周热门 更多>