2024|0

50

帖子

1

TA的资源

一粒金砂(中级)

楼主
 

MSP430独立按键中断的问题 [复制链接]

P4.4是一个开关按钮,当P4.4关的时候,关中断,另外三个中断按键是不起作用的。可是如果在P4.4关的时候按了P1.3,打开P4.4的时候显示的内容为SdPage(Logo2)>>SdPage(Logo3)>>SdPage(Logo4),不明白明明在P4.4关的时候关中断了,开P4.4的时候会显示SdPage(Logo4)的内容。如果P4.4关的时候没有按其他中断键,就没有问题。下面是我的程序,请各位大神帮忙:
#include
#include
#include
  
uchar num=0;
uchar aa;
void main(void)
{  
   WDTCTL=WDTPW+WDTHOLD;
   Clock_Init();
   contrl();
   light();
   dataport();
   delayms(10);           // wait for LCD module power on reset
   LCD_init();
   delayms(1);
   P1DIR &= ~BIT4;     //P1.4为输入
   P1IE  |= 0x0f;      //低四位中断允许
   P1IES |= 0x0f;      //选择下降沿
   P1IFG &= 0x00;      //中断标志清零
   while(1)
   {  
     if ((P1IN&BIT4)==BIT4)
     {  
       SdPage(Logo1);
       aa  = 1;
       num = 0;  
       _DINT();
     }
     else
     {      
       SdPage(Logo2);
       aa  = 0;            
       delayms(1000);
       SdPage(Logo3);
       _EINT();
       num = 0;
     }
   while((P1IN&BIT4)==aa);  
   }
     
}
   
  
#pragma vector = PORT1_VECTOR
__interrupt void KEY (void)
{
   if ((P1IFG&BIT3)==BIT3)
   {
     if (num<12)
     {
       num++;
     }   
     P1IFG &= ~BIT3;
   }
   else if ((P1IFG&BIT2)==BIT2)
   {
     if (num>0)
     {
       num--;
     }
     P1IFG &= ~BIT2;
   }
   else if ((P1IFG&BIT1)==BIT1)
   {
     num = 0;
     P1IFG &= ~BIT1;
   }
   switch (num)
   {
     case 0 : SdPage(Logo3); break;
     case 1 : SdPage(Logo4); break;
     case 2 : SdPage(Logo5); break;
     case 3 : SdPage(Logo6); break;
     case 4 : SdPage(Logo7); break;
     case 5 : SdPage(Logo8); break;
     case 6 : SdPage(Logo9); break;
     case 7 : SdPage(Logo10); break;
     case 8 : SdPage(Logo11); break;
     case 9 : SdPage(Logo12); break;
     case 10 : SdPage(Logo13); break;
     case 11 : SdPage(Logo14); break;
     case 12 : SdPage(Logo15); break;
     default : break;
   }
}
 
点赞 关注

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

查找数据手册?

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
快速回复 返回顶部 返回列表