打印

大家帮忙看一下关于430中断唤醒的程序,我都反复检查过了

[复制链接]
748|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yzh19951019|  楼主 | 2015-10-31 13:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我编了一个中断唤醒的程序,对应的键按下则对应的LED点亮,没有中断时处于低功耗模式3,中断来了就唤醒,可是编好了程序烧进去单片机并没有反应,有没有哪个老师知道我错在哪了
#include <msp430x14x.h>
#include "config.h"
void key_process_0(void);
void key_process_1(void);
void key_process_2(void);
void key_process_3(void);
void key_check(void);
uint key_value=0x00;

void main()
{
   WDT_Init();                        
   Clock_Init();                       
   Port_init();
   delay_ms(100);
   key_value=0x00;
   _EINT();
   LPM3;
   while(1){
   P1IE &=~0x0f;
   P1IFG &=~0x0f;
   key_check();
   if(key_value==0x01)
   {
      key_process_0();
   }
   if(key_value==0x02)
   {
      key_process_1();
   }
   if(key_value==0x03)
   {
      key_process_2();
   }
   if(key_value==0x04)
   {
      key_process_3();
   }
   key_value=0x00;
   P1IE |=0x0f;
   P1IFG &=~0x0f;
   LPM3;
   }
}
void key_check(void)
{
  delay_ms(100);
  if(0xff!=P1IN|0xf0)   
  {
    while(0xff!=P1IN|0xf0);
  }
  else
  {
    key_value=0x00;
  }
}
#pragma vector=PORT1_VECTOR
__interrupt void PORT_1(void)
{
  switch(P1IFG&0x0f)
  {
    case 0x01:key_value=0x01;
    break;
    case 0x02:key_value=0x02;
    break;
    case 0x04:key_value=0x03;
    break;
    case 0x08:key_value=0x04;
    break;
  default:P1IFG=0x00;
  break;
  }
  P1IFG &=~0x0f;
  LPM3_EXIT;
}
void key_process_0(void)
{
  P6OUT &=~BIT0;
  delay_ms(1000);
  P6OUT |=BIT0;
  delay_ms(1000);
  P6OUT &=~BIT0;
  delay_ms(1000);
  P6OUT |=BIT0;
}
void key_process_1(void)
{
  P6OUT &=~BIT1;
  delay_ms(1000);
  P6OUT |=BIT1;
  delay_ms(1000);
  P6OUT &=~BIT1;
  delay_ms(1000);
  P6OUT |=BIT1;
}

void key_process_2(void)
{
  P6OUT &=~BIT2;
  delay_ms(1000);
  P6OUT |=BIT2;
  delay_ms(1000);
  P6OUT &=~BIT2;
  delay_ms(1000);
  P6OUT |=BIT2;
}

void key_process_3(void)
{
  P6OUT &=~BIT3;
  delay_ms(1000);
  P6OUT |=BIT3;
  delay_ms(1000);
  P6OUT &=~BIT3;
  delay_ms(1000);
  P6OUT |=BIT3;
}

相关帖子

沙发
deliciouscook| | 2015-10-31 22:35 | 只看该作者
按键程序中的延时太多了,建议状态机

使用特权

评论回复
板凳
dirtwillfly| | 2015-11-1 09:00 | 只看该作者
呵呵,楼上正解。看到好几个延时1000ms的程序。。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

1

帖子

0

粉丝