[求助] 求大神看看这个msp430的终端程序

一直一米   2012-7-10 14:02 楼主

/*采用2*3键盘中的key0来实现键盘引起的中断程序,以此来验证中断*/
#include<msp430x54x.h>

void sys_init()    //初始化
{
  P1DIR &=0XFE;   //p1.0为输入
  P1OUT |=BIT0;   //p1.0输出高电平
  P1REN |=BIT0;   //p1.0带上拉电阻
  P1IES =BIT0;   //p1.0中断触发为下降沿
  P1IE =0X01;      //p1.0的中断允许打开
  P1IFG &=~0X01;    //p1.0中断标志位清零
 
  P2DIR |=0X01;  //p2.0为输出
  P2OUT=0X00;    //p2输出低电平
}
//延时程序
void delay(unsigned int j){
  unsigned int i;
  for(i=2;i>0;i--){
    for(;j>0;j--)
      __no_operation();}
}

//主程序
void main()
{
  WDTCTL=WDTPW+WDTHOLD;//关闭看门狗
  sys_init();          //调用初始化函数
  _EINT();
   
  while(1);
 
}  
//中断
#pragma vector=PORT1_VECTOR
__interrupt void port1_down(void)
{
  if((P1IFG&BIT0)==BIT0)      //
{
    //处理P1IN.0中断
    P1IE=0X00;
    P1IFG &= ~BIT0; //清除中断标志
    P2OUT=0X01;     //p2.0输出高电平
    delay(10);
   
     for(;;){
        if((P1OUT&0X0F)==0X0F)
      break;
    }
   
    P2OUT=0X00;
    P1OUT |=0X01;
    P1IE =0X01;
   
}

}

 

仿真的结果是全速运行时不行,单步调试时p1iv能跳变为02hp1ifg.0之谓1,可就是跳不进中断处理程序。望有大神能知道知道,或许程序问题,或者是仿真调试问题。。。。大家多多发表意见吧!!!

回复评论 (1)


  1. void sys_init() //初始化
    {
    P1DIR &= ~BIT0; // 输入
    P1REN |= BIT0; // 上拉/下拉电阻
    P1OUT |= BIT0; // 上拉
    P1IE |= BIT0; // 使能中断
    P1IES |= BIT0; // 高-->低时发生中断
    P1IFG &= ~BIT0; // 清

    P2DIR |= BIT0; //p2.0为输出
    P2OUT &= ~BIT0; //p2输出低电平
    }
Python全文搜索引擎:<url>http://code.google.com/p/ming-search/</url>
点赞  2012-7-11 01:37
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复