6093|7

168

帖子

3

TA的资源

一粒金砂(中级)

楼主
 

MSP430F5529 中断按键 的问题 [复制链接]

代码如下,开关S1能正常工作S2不能,而且有个问题,仿真的时候直接跳进了P1口的中断。
请大神看看,再次跪谢。


  1. #include "msp430f5529.h"
  2. #include <stdint.h>
  3. /*
  4. P1.7-->S1
  5. P2.2-->S2
  6. P8.1-->LED2
  7. P8.2-->LED3
  8. S1------LED2
  9. S2------LED3
  10. */
  11. void GPIO_init(void)
  12. {
  13.         P1DIR &= ~BIT7;
  14.         P2DIR &= ~BIT2;

  15.         P1REN |= BIT7;
  16.         P2REN |= BIT2;
  17.         P1OUT |= BIT7;
  18.         P2OUT |= BIT7;

  19.         P1IES &= (~BIT7);
  20.         P2IES &= (~BIT2);

  21.         P1IE |= BIT7;
  22.         P2IE |= BIT2;
  23.         /*  */
  24.         P8DIR |= BIT2+BIT1;
  25.         P8OUT = 0XFF;
  26. }

  27. #pragma vector=PORT1_VECTOR
  28. __interrupt void PORT1_ISR()
  29. {
  30.         P8OUT ^= BIT1;
  31.         while(!(P1IN & BIT7));
  32.         __delay_cycles(200000);
  33.         P1IFG &= (~BIT7);
  34. }

  35. #pragma vector=PORT2_VECTOR
  36. __interrupt void PORT2_ISR()
  37. {
  38.         P8OUT ^= BIT2;
  39.         while(!(P2IN & BIT2));
  40.         __delay_cycles(200000);
  41.         P2IFG &= (~BIT2);
  42. }

  43. void main(void)
  44. {
  45.         WDTCTL = WDTPW + WDTHOLD;
  46.         GPIO_init();
  47.         __bis_SR_register(LPM4_bits +GIE);
  48. }
复制代码



最新回复

换其他脚试一下,前边我的5529脚也烧了  详情 回复 发表于 2015-7-20 12:36
 
点赞 关注

回复
举报

1193

帖子

0

TA的资源

纯净的硅(高级)

推荐
 
P2OUT |= BIT7;
应该是这一句敲错了的原因…
 
 

回复

1234

帖子

4

TA的资源

纯净的硅(高级)

沙发
 
进中断查一下标志位,看是不是其他IO口影响的,还有你开关的初始状态是高还是低,要确保你GPIO口是上升沿触发还是下降沿触发?如果还是出错,建议不用仿真软件,自己组建下硬件,再试。
 
个人签名天地庄周马;江湖范蠡船。
个性签名还是放QQ号吧,2060347305,添加说明EEworld好友
 
 

回复

1234

帖子

4

TA的资源

纯净的硅(高级)

板凳
 
还有,你是否觉得你进了中断函数,做完动作后延时是不是有点大
 
个人签名天地庄周马;江湖范蠡船。
个性签名还是放QQ号吧,2060347305,添加说明EEworld好友
 
 

回复

168

帖子

3

TA的资源

一粒金砂(中级)

4
 
谢谢,按键的问题还是没有解决,我把除了1.7和2.2两个引脚的中断都关了,还是那情况,S1能工作,S2工作不了,单步到等待中断时按下s2没反应,但是按下s1立马响应了。板上(MSP430EXP-F5529launchpad)其他资源对按键有干扰?还是按键或引脚坏了?
  1.         P1IE = BIT7;
  2.         P2IE = BIT2;

  3.         P1IFG = 0;
  4.         P2IFG = 0;
复制代码
延时确实有点大,20ms左右就可以了吧,我现在把延时降了一个数量级。
 
 
 

回复

168

帖子

3

TA的资源

一粒金砂(中级)

6
 
非常感谢,问题解决了~!您真热心肠
 
 
 

回复

574

帖子

11

TA的资源

一粒金砂(高级)

7
 
换其他脚试一下,前边我的5529脚也烧了

点评

板子没坏。qiushenghua小哥指出了我程序的bug,粗心了  详情 回复 发表于 2015-7-20 12:51
 
 
 

回复

168

帖子

3

TA的资源

一粒金砂(中级)

8
 
sunduoze 发表于 2015-7-20 12:36
换其他脚试一下,前边我的5529脚也烧了

板子没坏。qiushenghua小哥指出了我程序的bug,粗心了
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表