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.
您好!
我正在尝试在通道 A0、通道 A15和通道 A4中设计 ADC 模块。当我尝试使用 Resource Explorer msp430fr59xx_ADC12_01中提供的示例程序时、我在相同的模拟电压下获取不同的数字值、我尝试了所有通道、但结果相同
谢谢、此致、
Saikumar E
您好、Sasi、
我认为您的代码可能存在一些错误、您能否提供您的代码?
谢谢!
此致
Johnson
我使用的是第一个可用的示例代码
//
#include
int main (空)
{
WDTCTL = WDTPW | WDTHOLD;//停止 WDT
// GPIO 设置
P1OUT &=~BIT0;//清除 LED 以启动
P1DIR |= BIT0;//将 P1.0/LED 设置为输出
P1SEL1 |= BIT1;//为 ADC 配置 P1.1
P1SEL0 |= BIT1;
//禁用 GPIO 上电默认高阻抗模式以激活
//先前配置的端口设置
PM5CTL0 &=~LOCKLPM5;
//配置 ADC12
ADC12CTL0 = ADC12SHT0_2 | ADC12ON;//采样时间、S&H=16、ADC12打开
ADC12CTL1 = ADC12SHP;//使用采样计时器
ADC12CTL2 |= ADC12RES_2;// 12位转换结果
ADC12MCTL0 |= ADC12INCH_1;// A1 ADC 输入选择;Vref=AVCC
ADC12IER0 |= ADC12IE0;//启用 ADC 转换完成中断
while (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)) ADC12_ISR (void)
其他
错误编译器不受支持!
#endif
{
switch (__evo_in_range (ADC12IV、ADC12IV_ADC12RDYIFG))
{
情况 ADC12IV_NONE:break;//向量0:无中断
案例 ADC12IV_ADC12OVIFG:中断;//向量2:ADC12MEMx 溢出
情况 ADC12IV_ADC12TOVIFG:中断;//矢量4:转换时间溢出
ADC12IV_ADC12HIIFG 案例:中断;//向量6:ADC12BHI
案例 ADC12IV_ADC12LOIFG:中断;//向量8:ADC12BLO
ADC12IV_ADC12INIFG 案例:中断;//向量10:ADC12BIN
情况 ADC12IV_ADC12IFG0://向量12:ADC12MEM0中断
如果(ADC12MEM0 >= 0x7ff)// ADC12MEM0 = A1 > 0.5AVcc?
P1OUT |= BIT0;// P1.0 = 1
其他
P1OUT &=~BIT0;// P1.0 = 0
_BIC_SR_REGISTER_ON_EXIT (LPM0_BITS);//退出活动 CPU
中断;//从0 (SR)清除 CPUOFF 位
ADC12IV_ADC12IFG1案例:中断;//向量14:ADC12MEM1
案例 ADC12IV_ADC12IFG2:break;//向量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:ADC12MEM20
案例 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
默认值:break;
}
}
您如何对此进行测试? 具体而言:(a)您的电压源是什么? (b)如何将其连接到 MCU?
----------
>P1SEL1 |= BIT1;//为 ADC 配置 P1.1
>P1SEL0 |= BIT1;
>ADC12MCTL0 |= ADC12INCH_1;// A1 ADC 输入选择;Vref=AVCC
如果您使用的是 Launchpad、我认为没有连接到 P1.1 (A1)的连接器、因为它连接到按钮 S2。 尝试通过 J5上的引脚使用 A2 (P1.2):
>P1SEL1 |= BIT2;//为 ADC 配置 P1.2 (A2)
>P1SEL0|= BIT2;
>ADC12MCTL0 |= ADC12INCH_2;// A2 (P1.2) ADC 输入选择;Vref=AVCC
[参考数据表(SLAS704F)表6-49和 Launchpad UG (]SLAU535B)原理图第6节]