This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSP430fr5969中的 ADC

Guru**** 2022830 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/565989/adc-in-msp430fr5969

您好!

我是控制器的新员工,我们的项目中有一个 ADC 代码,但我无法理解该代码所发生的情况。 有中断使能代码、但我没有了解如何在中断启用后为 ISR 提供服务。 请建议我。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、代码是这样的、

    #if defined (__TI_Compiler_version__)|| Defined (__IAR_systems_ICC__)
    #pragma vector = ADC12_vector
    _interrupt void ADC12_ISR (void)
    #Elif defined (_GNU_)
    void __attribute__((interrupt (ADC12_vector)) ADC12_ISR (void)
    其他
    错误编译器不受支持!
    #endif

    USE_TEMP_TEMP_TURE
    switch (__ever_in_range (ADC12IV、ADC12IV_ADC12RDYIFG)){
    ADC12IV_NONE 案例:
    中断; //向量0:无中断
    ADC12IV_ADC12OVIFG 案例:
    中断; //向量2:ADC12MEMx 溢出
    ADC12IV_ADC12TOVIFG 案例:
    中断; //向量4:转换时间溢出
    ADC12IV_ADC12HIIFG 案例:
    中断; //向量6:ADC12BHI
    ADC12IV_ADC12LOIFG 案例:
    中断; //向量8:ADC12BLO
    ADC12IV_ADC12INIFG 案例:
    中断; //向量10:ADC12BIN
    ADC12IV_ADC12IFG0案例: //向量12:ADC12MEM0中断
    IF (ADC12MEM0 >= 0x7ff) // ADC12MEM0 = A1 > 0.5AVcc?
    P1OUT |= BIT0; // P1.0 = 1
    其他
    P1OUT &=~BIT0; // P1.0 = 0
    _BIC_SR_REGISTER_ON_EXIT (LPM0_BITS);//退出活动 CPU
    中断; //将 CPUOFF 位从0 (SR)清零
    ADC12IV_ADC12IFG1案例:
    中断; //向量14:ADC12MEM1
    ADC12IV_ADC12IFG2案例://向量16:ADC12MEM2
    tem->sensors[0].IADC += ADC12MEM2;
    tem->sensor[0].iSamplesRad++;
    中断;
    ADC12IV_ADC12IFG3案例://向量18:ADC12MEM3
    tem->sensors[1].IADC+= ADC12MEM3;
    tem->sensor[1].iSamplesRad++;
    中断;
    ADC12IV_ADC12IFG4案例://向量20:ADC12MEM4
    TEM->SENSORS[2].IADC += ADC12MEM4;
    tem->sensor[2].iSamplesRad++;
    中断;
    ADC12IV_ADC12IFG5案例://向量22:ADC12MEM5
    tem->sensors[3].IADC+= ADC12MEM5;
    tem->sensor[3].iSamplesRad++;
    中断;
    ADC12IV_ADC12IFG6案例: //向量24:ADC12MEM6
    tem->sensors[4].IADC+= ADC12MEM6;
    tem->sensor[4].iSamplesRad++;
    中断;
    ADC12IV_ADC12RDYIFG 案例:
    中断; //向量76:ADC12RDY
    默认值:
    中断;

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好,Sachin,

    ADC12采样和转换由 ADC12CTL1的 ADC12SHS 位定义的源触发、通常通过软件或计时器输出触发。 一旦一个转换存储寄存器(ADC12MEMx)被填充一个值、那么它相应的 ADC12IFGx 标志被置位、并且如果 ADC12IEx 位也被置位在中断使能寄存器内(连同全局中断被启用)、那么 ISR 将被处理。  如需更多信息、请查看 TI 的 msp430fr59xx_ADC12代码示例。

    此致、
    Ryan