请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:MSP430FR5969 您好!
我使用的是 MSP430FR5969。
对于12位 ADC。 我想从 A11和 A13读取模拟数据。 但它不是序列输入。 那么、如何配置 ADC12CTL1寄存器中的 CONSEQ 位。 我们是否可以使用单通道模式
2.单通道单次读取模式是否连续读取数据?
3.如果我想读取独立时序、配置如何?
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。
对于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