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 2模拟输入读取

Guru**** 2539500 points
Other Parts Discussed in Thread: MSP430FR5969

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/913381/msp430fr5969-adc-2-analog-input-read

器件型号:MSP430FR5969

您好!

我使用的是 MSP430FR5969。

对于12位 ADC。 我想从 A11和 A13读取模拟数据。 但它不是序列输入。 那么、如何配置 ADC12CTL1寄存器中的 CONSEQ 位。  我们是否可以使用单通道模式

2.单通道单次读取模式是否连续读取数据?

3.如果我想读取独立时序、配置如何?

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

    你好,sadasivam,

    MSP430FR5969 ADC_12模块支持4种模式:(您可以通过 ADC12CONSEQx 寄存器进行设置)

    00b =单通道、单次转换
    01b =通道序列
    10b =单通道重复
    11b =通道的重复序列

    对于序列通道模式、 ADC 模块将按顺序自动转换 A0 -> Ax 通道的值。

    如果您想读取 A11和 A13通道值、则需要手动修改通道。

    我为 A11和 A13编写一个示例代码作为您的参考:

    #include 
    
    unsigned int ADC11_value = 0;
    unsigned int ADC13_value = 0;
    
    int main (void)
    {
    WDTCTL = WDTPW | WDTHOLD; //停止 WDT
    
    P4SEL1 |= BIT3; //为 ADC11
    P4SEL0配置 P4.3 |= BIT3;
    
    P3SEL1 |= BIT1; //为 ADC13
    P3SEL0配置 P3.1 |= BIT1;
    
    //禁用 GPIO 上电默认高阻抗模式以激活
    //先前配置的端口设置
    PM5CTL0 &=~LOCKLPM5;
    
    //配置 ADC12
    ADC12CTL0 = ADC12SHT0_2 | ADC12ON; //采样时间、S&H=16、ADC12 on
    ADC12CTL1 = ADC12SHP; //使用采样计时器
    ADC12CTL2 |= ADC12RES_2; // 12位转换结果
    ADC12MCTL0 |= ADC12INCH_11; // A11 ADC 输入选择;Vref=AVCC
    ADC12IER0 |= ADC12IE0; //启用 ADC 转换完成中断
    
    ,同时(1)
    {
    _delay_cycles (5000);
    ADC12CTL0 |= ADC12ENC | ADC12SC; //开始采样/转换
    
    _bis_SR_register (LPM0_bits | GIE); // LPM0、ADC12_ISR 将强制退出
    __no_operation(); //对于调试
    器}
    #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)#if
    
    Compiler (void)(void))#define_ISR (void)错误!
    #endif
    {
    switch (__even_in_range (ADC12IV、ADC12IV_ADC12RDYIFG))
    }
    ADC12IV_NONE 案例: 中断; //向量0:无中断
    案例 ADC12IV_ADC12OVIFG:中断; //向量2:ADC12MEMx 溢出
    ADC12IV_ADC12TOVIFG 案例:中断; //向量4:转换时间溢出
    案例 ADC12IV_ADC12HIIFG:break; //向量6:ADC12BHI
    ADC12IV_ADC12LOIFG 案例:中断; //向量8:ADC12BLO
    ADC12IV_ADC12INIFG 案例:中断; //向量10:ADC12BIN
    ADC12IV_ADC12IFG0案例: //向量12:ADC12MEM0中断
    if (((ADC12MCTL0和0x001f)=ADC12INCH_11)
    {
    ADC11_value = ADC12MEM0;
    ADC12CTL0 &=~ADC12ENC; //禁用 ADC
    ADC12MCTL0 &= 0xffe0; //清除 ADC 通道
    ADC12MCTL0 |= ADC12INCH_13; //将 ADC 通道设置为 A13
    
    }
    否则、if (((ADC12MCTL0和0x001f)=ADC12INCH_13)
    {
    ADC13_value = ADC12MEM0;
    ADC12CTL0 &=~ADC12ENC; //禁用 ADC
    ADC12MCTL0 &= 0xffe0; //清除 ADC 通道
    ADC12MCTL0 |= ADC12INCH_11; //将 ADC 通道设置为 A11
    
    }
    _BIC_SR_REGISTER_ON_EXIT (LPM0_BITS);//退出活动 CPU
    中断; //将 CPUOFF 位从0 (SR)清零
    ADC12IV_ADC12IFG1案例:中断; //向量14:ADC12MEM1
    ADC12IV_ADC12IFG2案例:中断; //向量16:ADC12MEM2
    ADC12IV_ADC12IFG3案例:中断; //向量18:ADC12MEM3
    ADC12IV_ADC12IFG4案例:中断; //向量20:ADC12MEM4
    ADC12IV_ADC12IFG5案例:中断; //向量22:ADC12MEM5
    ADC12IV_ADC12IFG6案例:中断; //向量24:ADC12MEM6
    ADC12IV_ADC12IFG7案例:中断; //向量26:ADC12MEM7
    ADC12IV_ADC12IFG8案例:中断; //向量28:ADC12MEM8
    ADC12IV_ADC12IFG9案例:中断; //向量30:ADC12MEM9
    ADC12IV_ADC12IFG10案例:中断; //向量32:ADC12MEM10
    ADC12IV_ADC12IFG11案例:中断; //向量34:ADC12MEM11
    ADC12IV_ADC12IFG12案例:中断; //向量36:ADC12MEM12
    ADC12IV_ADC12IFG13案例:中断; //向量38:ADC12MEM13
    ADC12IV_ADC12IFG14案例:中断; //向量40:ADC12MEM14
    ADC12IV_ADC12IFG15案例:中断; //向量42:ADC12MEM15
    ADC12IV_ADC12IFG16案例:中断; //向量44:ADC12MEM16
    ADC12IV_ADC12IFG17案例:中断; //向量46:ADC12MEM17
    ADC12IV_ADC12IFG18案例:中断; //向量48:ADC12MEM18
    ADC12IV_ADC12IFG19案例:中断; //向量50:ADC12MEM19
    ADC12IV_ADC12IFG20案例:中断; //向量52:ADC12MEMM20
    ADC12IV_ADC12IFG21案例:中断; //向量54:ADC12MEM21
    ADC12IV_ADC12IFG22案例:中断; //向量56:ADC12MEM22
    ADC12IV_ADC12IFG23案例:中断; //向量58:ADC12MEM3
    ADC12IV_ADC12IFG24案例:中断; //向量60:ADC12MEM24
    ADC12IV_ADC12IFG25案例:中断; //向量62:ADC12MEM25
    ADC12IV_ADC12IFG26案例:中断; //向量64:ADC12MEM26
    ADC12IV_ADC12IFG27案例:中断; //向量66:ADC12MEM27
    ADC12IV_ADC12IFG28案例:中断; //向量68:ADC12MEM28
    ADC12IV_ADC12IFG29案例:中断; //向量70:ADC12MEM29
    ADC12IV_ADC12IFG30案例:中断; //向量72:ADC12MEM30
    ADC12IV_ADC12IFG31案例:中断; //向量74:ADC12MEM31
    案例 ADC12IV_ADC12RDYIFG:break; //向量76:ADC12RDY
    默认值:中断;
    }
    }
    

    此致

    Johnson

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

    这对我来说很有用。 谢谢。