您好!
我是 MSP430编程的新手。 我目前在 MSP430FR6989 LaunchPad 板上工作。 我想重复对3个 ADC 输入通道进行采样。 在浏览了数据表、用户指南和示例程序之后、我编写了以下代码来对 A3 (P1.3)、A4 (P8.7)和 A5 (P8.6)的模拟输入进行采样。
下面代码的预期行为是 ADC12应该将 MEM0 (无中断)、MEM1 (无中断)和 MEM2 (生成中断)转换为 MEM0、1和2中的寄存器内容、这样、采样和中断的序列将继续发生。 我在这里遇到的问题是,当我设置值 ADC12IER0 |= ADC12IE2 (即在序列末尾)时,不会生成中断。 而当我将值更改为 ADC12IER0 |= ADC12IE0时、会为 MEM0生成中断、并单独对通道 A3进行采样。 下面是代码。 在此处请求您的友好指导。 提前感谢您。
int main (void) { WDTCTL = WDTPW | WDTHOLD;//停止 WDT P1SEL1 |= BIT3;//为 ADC P1SEL0配置 P1.3 |= BIT3; P8SEL1 |= BIT6;// 为 ADC P8SEL0配置 P8.6 |= BIT6;P8SEL7 ~ |= BTR0 |= BTRL7;BTR0 (0)|= BTRL7 + BTR0 + BTRL0 (B8) REFCTL0 |= REFVSEL_3 | REFON; //配置 ADC12 ADC12CTL0 = ADC12SHT0_2 | ADC12ON; ADC12CTL1 = ADC12SHP| ADC12CONSEQ_2; ADC12CTL2 &= 0xCHAN;// 8位分辨率= ADC12SHP | ADC12CONSEQ2;ADC12MCTR12SDO = ADC12MCI0 | ADC12MC12SDO = ADC12MC12ENCH = ADC12MC12ADC12EN0;ADC12MC12MCTR0 | ADC12ENC12ENC12R = ADC12SDO //Vref = 2.5V ADC12MCTL1 |= ADC12INCH_4;// A4 CHAN ADC12MCTL1 |= ADC12VRSEL_1;//Vref = 2.5V ADC12MCTL2 |= ADC12INCH_5+ADC12EOS;// ADC12MCTL 采样序列结束; // ADC12MCTL2 |= 2.5V 转换周期 ;// ADC12INCH_0 = ADC12L12_1;// ADC12VREF_0 (= ADC12_1)|= ADC12VREF_0转换周期;// ADC12_ADC12_ADC12_0 (= ADC12VREF_1);// ADC12_ADC12_ADC12_ADC12_ADC12 //仅用于调试 } #pragma vector = ADC12_vector __interrupt void ADC12_ISR (void) #endif { switch (_even_in_range (ADC12IV、ADC12IV_ADC12RDYIFG)) { case ADC12IV_NOE:break;// vector 0:no interrupt case 12IV_ADC12IV_ADC12VECI:ADC12VECI:ADC12VEC4:ADC12VECI:ADC12VECG 溢出/ ADC12VECI:ADC12VECI:ADC12VECI:ADC12VECG ADC12BHI case ADC12IV_ADC12LOIFG:break;//向量8:ADC12BLO case ADC12IV_ADC12INIFG:break;//向量10:ADC12BIIN case ADC12IV_ADC12IFG0:break;//向 量12:ADC12MEM0 = ADC1216;ADC12MEM2 = ADC12= ADC12MEM2;ADC12= ADC12MEM2 case ADC12= ADC12= ADC12MEM2;ADC12MEM1:ADC12= ADC12MEM2;ADC12ADC12= ADC12MEM1:ADC12MEM2;ADC12ADC12= ADC12MEM1:ADC12ADC12ADC12MEM2;ADC12ADC12ADC12MEM1:ADC12ADC12ADC12= case ADC12IV_ADC12IFG4:break;//向量20:ADC12MEM4 case ADC12IV_ADC12IFG5:break;//向量22:ADC12MEM5 case ADC12IV_ADC12IFG6:break;//向量24:ADC12MEM8 case ADC12IV_ADC12IFM9 ;ADC12MEM8 case:ADC1224:ADC12MEM8:ADC1224:ADC12MEM8;ADC1224:ADC12MEM8 case:ADC1224:ADC1224:ADC12MEM8;ADC1224:ADC12MEM8:ADC1224:ADC1224:ADC1224:ADC12MEM8 case:ADC