打印

msp430二个中断,就不工作了?求解!

[复制链接]
3007|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhuyi2576|  楼主 | 2011-1-12 17:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
msp430F2013

void main( void )
{
  WDTCTL = WDTPW + WDTHOLD; //关看门狗
  Init_F2013();             //IO口设置   
  _EINT();                  //允许全局中断。GIE=1
  while(1)
  {
     LPM3;               // 进入低功耗模式3,只有ACLK工作,最省电模式  _BIS_SR(LPM3_bits + GIE);
  }
}
/*******************************************************************************
看门狗中断函数:watchdog_timer();  
*******************************************************************************/
#pragma vector=WDT_VECTOR         
__interrupt void watchdog_timer(void)
{
        Choose_CH(5);       // 选择AD通道
        Turn_on_Sampling(); // 接通采集电路的电源启动采集。开启AD中断使能,并开始AD转换
        LPM3_EXIT;          //退出低功耗模式,在AD完成后重新开启
}
#pragma vector=SD16_VECTOR
__interrupt void SD16ISR(void)
{
    Close_Sampling();         // SD16停止转换,禁止中断及关闭采集电路的电源。   
    adc_last_val = SD16MEM0; // 保存 ADC 最后的结果.   
  LPM3;                  // 恢复到 LPM3 。
}
/*******************************************************************************
函 数:
        Turn on_Sampling();     
功 能:
       打开参考电源,并启动AD转换
说 明:
       看门狗定时采集数据时打开
*******************************************************************************/
void Turn_on_Sampling(void)         
{
//  SD16CTL |= (SD16VMIDON + SD16REFON); // 1.2V的参考电源。带缓冲器输出
  SD16CTL |= SD16REFON;               // 只打开1.2V参考源  
  Delay_us(500);                        
  SD16CCTL0 |=(SD16SC + SD16IE);      // 启动 SD16 进行转换并且允许 SD16 中断。
}
本打算,定时器定时打开AD模块电源和中断使能,开始AD采集,在AD采集完再返回低功耗模式。。可按上面却始终得不到数据,
如果不用低功耗模式3,一直开启AD使能,可以采集数据

相关帖子

沙发
大洋芋| | 2011-1-12 21:20 | 只看该作者
pragma vector=SD16_VECTOR
__interrupt void SD16ISR(void)
{
    Close_Sampling();         // SD16停止转换,禁止中断及关闭采集电路的电源。   
    adc_last_val = SD16MEM0; // 保存 ADC 最后的结果.   
  LPM3;                  // 恢复到 LPM3 。
}
============================================
这里的中断结束后,为什么你要恢复到LPM3啊?醒过来,直接回到主程序,再LMP3不行么?

使用特权

评论回复
板凳
zhuyi2576|  楼主 | 2011-1-12 21:57 | 只看该作者
可以,试过。没用,主程序就是一个
while(1)
(LPM3;)

使用特权

评论回复
地板
zhuyi2576|  楼主 | 2011-1-12 21:58 | 只看该作者
可以,试过。没用,主程序就是一个
while(1)
(LPM3;)

使用特权

评论回复
5
godsea| | 2013-6-17 14:12 | 只看该作者
开GIE试试

使用特权

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

本版积分规则

29

主题

258

帖子

2

粉丝