主题中讨论的其他器件: MSP430FR6989
工具/软件:Code Composer Studio
大家好、
我为 MSP430FR6989的 ADC 转换编写了此代码块。 它工作良好。 我的问题是、我想在 MSP430FR4133上实现相同的代码、问题是当我为其编写相同的代码时、LED 不工作。 此外、我没有任何构建错误。 它可能与我的代码中的12位 ADC 至10位 ADC 转换相关。 我还怀疑"PM5CTL0 = ENABLE_PINs"线路出现故障。 请检查代码块。
应用程序应如下所示:
在0.8V 至1.2V 之间、P1.0 (LED)必须为高电平。 否则为低电平。
MSP430FR6989中的工作代码
#include
#define ENABLE_Pins 0xFFFE //启用输入和输出
void ADC_Setup (void);//用于设置 ADC12外设
MAIN ()
{
WDTCTL = WDTPW | WDTHOLD;//停止 WDT
PM5CTL0 = ENABLE_Pins;//启用输入和输出
P1DIR = BIT0;//将红色 LED 设置为输出
ADC_Setup();//设置 ADC 外设
while (1)
{
ADC12CTL0 = ADC12CTL0 | ADC12ENC;//启用转换
ADC12CTL0 = ADC12CTL0 | ADC12SC;//开始转换
if (((ADC12MEM0 >= 0x3C0)&&(ADC12MEM0<=0x5C0))// 0.8V <Voltage<1.2V HIGH
{
P1OUT = BIT0;//打开红色 LED
}
else // else 输入<= 1.65V
{
P1OUT = 0x00;//关闭红色 LED
}
}//结束 while (1)
}//结束 main()
void ADC_Setup (void)
{
#define ADC12_SHT_16 0x0200 //采样保持的16个时钟周期
#define ADC12_ON 0x0010 //用于打开 ADC12外设
#define ADC12_SHT_SRC_SEL 0x0200 //选择采样保持源
#define ADC12_12位0x0020 //选择12位分辨率
#define ADC12_P92 0x000A //将输入 P9.2用于模拟输入
ADC12CTL0 = ADC12_SHT_16 | ADC12_ON;//开启,设置采样保持时间
ADC12CTL1 = ADC12_SHT_SRC_SEL;//指定采样保持时钟源
ADC12CTL2 = ADC12_12位;// 12位转换结果
ADC12MCTL0 = ADC12_P92;// P9.2是模拟输入
}
MSP430FR4133中用于相同功能的不起作用的代码。
#include
#define ENABLE_Pins 0xFFFE //启用输入和输出
void ADC_Setup (void);//用于设置 ADC12外设
main(){
WDTCTL = WDTPW | WDTHOLD;//停止 WDT
PM5CTL0 = PM5CTL0和 ENABLE_Pins;//使能输入和输出
P1DIR = BIT0;//将红色 LED 设置为输出
ADC_Setup();//设置 ADC 外设
while (1){
ADCCTL0 = ADCCTL0 | ADCENC;//启用转换
ADCCTL0 = ADCCTL0 | ADCSC;//开始转换
如果((ADCMEM0 >= 0x0F0)&&(ADCMEM0<=0x170)){// 0.8V <Voltage<1.2V HIGH
P1OUT = BIT0;//打开红色 LED
}
否则{//否则
P1OUT = 0x00;//关闭红色 LED
}
}//结束 while (1)
}//结束 main()
void ADC_Setup (void)
{
#define ADC_SHT_16 0x0200 //采样保持的16个时钟周期
#define ADC_ON 0x0010 //用于打开 ADC12外设
#define ADC_SHT_SRC_SEL 0x0200 //选择采样保持源
#define ADC_12位0x0020 //选择12位分辨率
#define ADC_P81 0x0009 //将输入 P8.1用于模拟输入--> A9
ADCCTL0 = ADC_SHT_16 | ADC_ON;//开启,设置采样保持时间
ADCCTL1 = ADC_SHT_SRC_SEL;//指定采样保持时钟源
ADCCTL2 = ADC_12位;// 12位转换结果
ADCMCTL0 = ADC_P81;// P8.1是模拟输入--> A9
}
此致、Ali。