关于launchpad上p1.3按键

junggle   2013-8-21 08:33 楼主
我想用P1.3按键实现中断控制P1.0led的闪烁,也就是按一下P1.3按键P1.0led就闪烁一下,我用的是g2553,下面是我自己的代码,完全不好用,
  1. WDTCTL=WDTPW+WDTHOLD;//停止看门狗
  2. P1REN|=BIT3;
  3. P1OUT|=BIT3;//设置上拉电阻
  4. P1IES|=BIT3;//P1.3可高可低
  5. P1IFG&=~BIT3;//p1.3IFG清除
  6. P1IE|=BIT3;//p1.3可中断启用
  7. P1DIR|=BIT0;//P1.0作为输出

回复评论 (17)

你这用的下降沿触发,是不是按键不太好,在中断里消消抖就好了,
点赞  2013-8-21 08:57

回复 板凳xiaoliping1945 的帖子

按键应该没问题,怎么消抖呀?还有,没按一次P1.3改变的是什么?按P1.3是怎么来控制输入信号的有无的?
点赞  2013-8-21 09:10
先把你的P1.3设置为输入吧  以下为初始化 ;一定能行   测试过的:  void   P1PORT_init() {P1DIR$=~BIT3;//P1.3设置为输入,  P1REN|=BIT3;//内部拉阻起作用; P1OUT|=BIT3;//p1.3接上拉电阻,方便下降沿触发   P1IE|=BIT3;//允许中断   P1IES|BIT3;//下降沿触发 P1IFG&=~BIT3;//标志位清零   }
点赞  2013-8-21 09:19

回复 楼主 的帖子

你好,442856667,这是我的qq号,求加,求指教
点赞  2013-8-21 09:40

回复 4楼xiaoliping1945 的帖子

你好,442856667,这是我的qq号,求加,求指教
点赞  2013-8-21 09:40
327514190
点赞  2013-8-21 09:50
没法加,你加我吧327514190
点赞  2013-8-21 10:05

回复 8楼xiaoliping1945 的帖子

热心助人~
点赞  2013-8-21 20:48

回复 4楼xiaoliping1945 的帖子

正解。
点赞  2013-8-24 20:38
用上升沿检测,松手检测就行了,按下的过程有震荡,松手基本上没有多少。
点赞  2013-8-28 16:07
没有中断服务子程序?
点赞  2013-8-28 22:39

回复 4楼xiaoliping1945 的帖子

P1.3默认就是输入的,这个设置与否不影响的,因为楼主只是把P1.0设置为输出了,P1DIR|=BIT0;//P1.0作为输出
点赞  2013-8-29 14:20

回复 楼主junggle 的帖子

软件消抖。。。
点赞  2013-8-29 15:23
嗯,首先是配置有问题,把P1.3配置成输出了,应该是输入,其实也可以不配置,默认是输入。其次没有消抖。你可以用软件消抖比如延时消抖,也可以用状态机消抖,甚至硬件消抖(不建议)、
淘宝:https://viiot.taobao.com/Q群243090717 多年专业物联网行业经验,个人承接各类物联网外包项目
点赞  2013-10-15 13:56

数控电源

你好,我急用STC12C5A60S2制作数控电源的原理图和程序,谢谢。有的话发到我的邮箱1352499016@qq.com
点赞  2013-10-29 00:41

回复 楼主junggle 的帖子

这个没见你P1.3设置为输入管脚啊。
点赞  2013-11-17 21:44
额。。。到底怎么延时消抖啊。。。抖得太厉害了。。本来十级电机调速。结果按了五下键就达到全速了。。。。
点赞  2014-5-7 10:22
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复