请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:MSP430FR4133 工具/软件:Code Composer Studio
大家好、
我有这个用于 ADC 的代码块。 我的应用正在从 ADC 引脚读取电压。 我有一些条件、例如电压介于0.8V 和1.2V 之间、请打开 LED。 调试也没有问题。 请检查代码。
#include
#define ENABLE_Pins 0xFFFE //启用输入和输出
void ADC_Setup (void); //用于设置 ADC12外设
main(){
WDTCTL = WDTPW | WDTHOLD; //停止 WDT
PM5CTL0 = ENABLE_Pins; //启用输入和输出
P1DIR = BIT0; //将红色 LED 设置为输出
SYSCFG2 |= ADCPCTL9;
ADC_Setup(); //设置 ADC 外设
while (1){
ADCCTL0 = ADCCTL0 | ADCENC; //启用转换
ADCCTL0 = ADCCTL0 | ADCSC; //开始转换
如果((ADCMEM0 >= 0x3C0)&(ADCMEM0<=0x5C0)){ // 0.8V <Voltage<1.2V HIGH
P1OUT = BIT0; //打开红色 LED
}
否则{ //否则
P1OUT = 0x00; //关闭红色 LED
}
} //结束 while (1)
} // end 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
}
谢谢、
