请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
主题中讨论的其他器件:MSP430FR4133您好!
我最近在 MSP430FR4133的 TI 示例中遇到了问题。 我尝试使用 ADC 对单独引脚上的电压进行采样。 和尝试使用 ADC 逐个在 p1.3和 p1.4上采样一样。
执行此操作时、它要么只对第一个端口进行采样、要么根本不进行采样。 我附上了我的代码、希望有人可能会对它出现的问题有所了解。
#include #include int adc_result; int flag; int senso; int sensor[2]; int main (void) { WDTCTL = WDTPW | WDTHOLD; ADCCTL0 |= ADCSHT_2 | ADCON; ADCCTL1 |= ADCSHP| ADCCONSEQ_1; ADCCTL2 |= ADCRES; ADCMCTL0 |= ADCSREF_1; ADCIE |=ADCIE0; PM5CTL0 &=~LOCKLPM5; PMMCTL0_H = PMMPW_H; PMMCTL2 |= INTREFEN; _DELAY_CYCLES (400); flag =0; while (1) { if (flag = 0){ ADC_DisableConversions (ADC_base、ADC_COMPLETECONVERSITION); ADCIV = ADCIV_NONE; ADCMCTL0 |= ADCINCH_3; _DELAY_CYCLES (1000); flag=1; } 否则、如果(flag == 1) { ADC_DisableConversions (ADC_base、ADC_COMPLETECONVERSITION); ADCIV = ADCIV_NONE; ADCMCTL0 |= ADCINCH_4; _DELAY_CYCLES (1000); flag=0; } ADCCTL0 |= ADCENC | ADCSC; _bis_SR_register (LPM0_bits | GIE); } } #pragma vector=ADC_vector / __interrupt void ADC_ISR (void) { switch (__even_in_range (ADCIV、ADCIV_ADCIFG) ){ // ADCIV =用于确定的 ADC 中断向量寄存器 //启用 ADC 中断源请求中断 ADCIV_ADCIFG 案例: //转换完成时设置 ADC 中断标志寄存器 { // ADCIFG0通过读取自动复位 // ADCMEM0寄存器或可由软件复位。 if (flag==0) { SENSOR[0]=ADCMEM0; } 否则 if (flag==1) { SENSOR[1]=ADCMEM0; } __BIC_SR_REGISTER_ON_EXIT (LPM0_Bits); } 中断; }
我们将感谢您的任何帮助。
谢谢你