主题中讨论的其他器件:MSP-EXP430FR2311
大家好!
我正在尝试通过测量 A9的电压输入来设计电压表。 我正在使用 P1.0和 P4.0 LED 来确定测量的电压值。 如果低于阈值、P4.0应亮起、如果高于阈值、P1.0应亮起。 执行我的代码时、两个 LED 在启动时都亮起-根据我的 IF 语句、这不应该发生。 此外、当我使用电路板上的3.3V 源来测试 A9引脚读数时、MSP430会冻结、仅在电源断开时复位。 对我哪里出了问题有什么想法吗?
谢谢
#包含
#包含
unsigned int ADC_value;
int main (void){
WDTCTL = WDTPW + WDTHOLD;//停止看门狗计时器
P1DIR |= BIT0;//将引脚设置为输出
P4DIR |= BIT0;
PMM_unlockLPM5 ();
//*为引脚选择模拟功能*
//ADC 设置
SYSCFG2 |= ADCPCTL9;
ADCCTL0 |= ADCON;//打开 ADC
ADCCTL1 |= ADCSHP;//采样信号源=采样计时器
ADCCTL1 |= ADCSSEL_2;//选择 SMCLK
ADCCTL2 |= ADCRES_2;// 12位分辨率
ADCMCTL0 |= ADCSREF_7;
ADCMCTL0 |= ADCINCH_9;// A9作为输入
ADCIFG &&~0x01;//清除中断标志
while (1){
ADCCTL0 |= ADCENC | ADCSC;//启用和启动转换
while ((ADCIFG & ADCIFG0)== 0);
ADC_VALUE = ADCMEM0;
如果(ADC_value > 3613){
P1OUT |= BIT0;
P4OUT &= BIT0;
}其他{
P1OUT &= BIT0;
P4OUT |= BIT0;
}
}
返回0;
}