社区导航

 

搜索
查看: 151|回复: 1

[分享] MSP430F1232中断学习

[复制链接]

1807

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2019-2-12 19:58 | 显示全部楼层 |阅读模式
ADC10中断:


和定时器一样,ADC10也有中断请求的能力,如果不使用DCT(ADC10DCT1=0),当转换结果装载到ADC10MEM时,ADC10中断标志位即ADC10IFG置1。如果使用DCT,当DCT设定的所有转换完成之后,中断标志为置1。






大概过程是这样的:


    //对于中断来说,当每次两个整个数据块都传递完成时,中断标志置1,此时产生中断,让CPU跳出低功耗状态,继续执行进入低功耗后续没有执行的代码


    //又继续使能AD转换,CPU又进入低功耗状态,由于AD转换独立于CPU,当转换完成时再次进入中断,跳出低功耗,这样不断进入跳出,实现低功耗。


    //所以低功耗跳出之后,以下应该写串口传输的代码,将转换完的数字量给USART


int main(void)
{
  WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
  ADC10CTL1 = INCH_1 + CONSEQ_1;            // A1/A0, single sequence
  ADC10CTL0 = ADC10SHT_1 + MSC + ADC10ON + ADC10IE + REFON + REF2_5V;     //时钟源分频+连续
  ADC10DTC1 = 0x02;                         // 2 conversions
  ADC10AE |= 0x03;                          // P2.1,0 ADC10 option select

  for (;;)
  {
    ADC10CTL0 &= ~ENC;
    while (ADC10CTL1 & BUSY);               // Wait if ADC10 core is active
    ADC10SA = 0x200;                        // Data buffer start
    ADC10CTL0 |= ENC + ADC10SC;             // Sampling and conversion start
    __bis_SR_register(CPUOFF + GIE);        // LPM0, ADC10_ISR will force exit
    //AD把两路转换完成,给了ADC10SA,控制将长度为2的数据块放到某个地址中,那么可以从地址中取出转换完成的数据
    //一个块放着两个转换完的数据,每个转换完的数据长度是2个字节,因为MEM长度是16位,一个地址是一个字节,现在的地址是在0x200的基础上加4
    //但是这个地址是个什么意思不太明白
    //对于中断来说,当每次两个整个数据块都传递完成时,中断标志置1,此时产生中断,让CPU跳出低功耗状态,继续执行上面的for循环
    //继续开始转换,由于AD转换独立于CPU,所以CPU又进入低功耗状态,当转换完成时再次跳出低功耗,这样不断进入跳出,实现低功耗。
    //所以低功耗跳出之后,以下应该写串口传输的代码,将转换完的数字量给USART
    //....
  }
}

// ADC10 interrupt service routine
#if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
#pragma vector=ADC10_VECTOR
__interrupt void ADC10_ISR (void)
#elif defined(__GNUC__)
void __attribute__ ((interrupt(ADC10_VECTOR))) ADC10_ISR (void)
#else
#error Compiler not supported!
#endif
{
    __bic_SR_register_on_exit(CPUOFF);      // Clear CPUOFF bit from 0(SR)
}




回复

使用道具 举报

813

TA的帖子

0

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

发表于 4 天前 | 显示全部楼层
不错的 资料啊,喜欢


回复

使用道具 举报

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

本版积分规则

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2019-2-23 00:30 , Processed in 0.098704 second(s), 16 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表