求助:MSP430中断嵌套

2019-03-24 12:47发布

有谁会msp430中断嵌套,麻烦指教一下。我想实现ADC12中断时能收其他中断,但在ADC12中断设置_EINT();后单片机会不停地自动复位。有谁知道这方面的请指教一下,谢谢啦 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
wstt
1楼-- · 2019-03-24 16:08
 精彩回答 2  元偷偷看……
lr2131
2楼-- · 2019-03-24 17:28
< :TI_MSP430_内容页_SA7 -->
原帖由 ljtyqb 于 2013-3-29 08:42 发表
有谁会msp430中断嵌套,麻烦指教一下。我想实现ADC12中断时能收其他中断,但在ADC12中断设置_EINT();后单片机会不停地自动复位。有谁知道这方面的请指教一下,谢谢啦
不会,关注。
ljtyqb
3楼-- · 2019-03-24 22:31
//定时器中断用来触发ADC12,开始转换ADC设置为单次采样模式
#pragma vector=TIMERA0_VECTOR
__interrupt void ta0_isr(void)
{
    ADC12CTL0|=ENC+ADC12SC;
}
//ADC12采样包括中断
#pragma vector=ADC_VECTOR
__interrupt void ADC12ISR(void)
{
  _EINT();
  ADC12CTL0 &= ~ENC;
  TEMP1=ADC12MEM0;
……
}
ljtyqb
4楼-- · 2019-03-25 00:26
 精彩回答 2  元偷偷看……
wstt
5楼-- · 2019-03-25 01:52
P1的中断需要注意清除中断标志位
可能不断的嵌套导致堆栈溢出
ljtyqb
6楼-- · 2019-03-25 06:32
P1中断标志位清除了
#pragma vector=PORT1_VECTOR //P1中断服务子程序
__interrupt void P1_Interrupt(void)
{
  
  if(P1IFG&0x1f)
  {
    switch(P1IFG&0x1f)      //判断是哪个键按下
    {
      case 0x01:
        delay_ms(20);
        Reset();
        TACTL|=MC0;    //Timer_A增计数模式
        break;
      case 0x02:
        delay_ms(20);
        TACTL-=MC0;   //Timer_A暂停模式
        delay_ms(500);
        Basepoit();
        break;
      case 0x04:
        delay_ms(20);key=3;break;
      case 0x08:
        delay_ms(20);key=4;break;
      case 0x10:
        delay_ms(20);key=5;break;
    }
  }
  P1IFG=0;
}

一周热门 更多>

相关问题

    相关文章