[求助] 求助,关于430的P1中断

REMY   2015-4-23 20:51 楼主
参考的是launchpad口袋实验平台指导书。
但是自己用P1后4位中断,P6接led显示就是出不来效果。
不算入门,劳驾高手指正。
  1. #include <msp430F149.h>
  2. #include "config.h"
  3. /************************************************
  4. * 初始化IO
  5. ***********************************************/
  6. void GPIO_Init()
  7. {
  8.         P1DIR |= 0xF0;                //按键 输入
  9.         P6DIR |= 0XFF;                //led 输出
  10.         P6OUT |= 0XFF;
  11.         P1IE |= 0X0F;                //后4位允许中断
  12. }
  13. /**********************************************
  14. *P13按下
  15. * *******************************************/
  16. void P13_Onclick()
  17. {
  18.         P6OUT = ~P6OUT;

  19. }
  20. /***************************************
  21. * 查键值
  22. ************************************/
  23. void P1_IODect()
  24. {
  25.         uint Push_Key = 0;
  26.         Push_Key =P1DIR & P1IFG ;
  27.         delay_ms(100);
  28.         if ((P1IN & Push_Key)==0)
  29.         {
  30.                 switch (Push_Key)
  31.                 {
  32. //                case BIT0 : P10_Onclick();
  33. //                case BIT0 : P11_Onclick();
  34. //                case BIT0 : P12_Onclick();
  35.                 case BIT3 : P13_Onclick();
  36. //                case BIT0 : P14_Onclick();
  37. //                case BIT0 : P15_Onclick();
  38.                 default:break;

  39.                 }

  40.         }

  41. }


  42. void main()
  43. {        WDT_Init();
  44.         //Clock_Init();
  45.         GPIO_Init();
  46.         _EINT();
  47.         LPM0;                                //LPM0 配置休眠
  48. }

  49. #pragma vector = PORT1_VECTOR
  50. __interrupt void PORT1_ISR(void)
  51. {
  52.         P1_IODect();
  53.         P1IFG = 0;
  54. }


回复评论 (3)

这程序看着好头痛,建议去参考TI官方的例程。大致看了一下你的程序,两个问题,1:P1IES边沿触发没选。2:P1DIR&P1IFG怎么能这么写呢?根据你的程序,P1DIR=0XF0;P1IFG=0X0?;两个相与。
一别四五年,变化万千。https://home.eeworld.com.cn/static/image/smiley/comcom/5.gif[/img]
点赞  2015-4-25 15:21
楼上说的很在理,建议参考官方例程
点赞  2015-4-26 23:21
引用: jqh_111 发表于 2015-4-25 15:21
这程序看着好头痛,建议去参考TI官方的例程。大致看了一下你的程序,两个问题,1:P1IES边沿触发没选。2:P1DIR&P1IFG怎么能这么写呢?根据你的程序,P1DIR=0XF0;P1IFG=0X0?;两个相与。

非常感谢。受教了
点赞  2015-5-2 10:50
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复