请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
部件号:MSP430F5529 大家好,我正在尝试读取启用了中断的A1和A2 ADC信道。 出于某种原因,我没有得到模拟数据。 下面是我的ADC代码:
//初始化ADC A1和A2
void ADC_int (void){
ADC12CTL0 = ADC12SHT02 + ADC12ON + ADC12MSC;
ADC12CTL1 = ADC12SHP;
ADC12IE = ADC12IE0 + ADC12IE1 + ADC12IE2;
_ENable_INTERRUCT();ADC12CTL1 = ADC12SHP
;ADC120 ~= ADC12CE0;ADC12CE0;ADC12CE0 = ADC0
ADC12IFG &=~BIT1;
ADC12IFG &=~BIT2;
ADC12IFG &=~BIT3;
ADC12IFG &=~BIT4;
ADC12IFG &=~BIT5;
ADC12IFG &=~BIT6;
ADC12IFG &=~BIT7;
ADC12IFG &=~BIT8;
ADC12IFG &=~BIT9;
ADC12IFG &=~BITA;
ADC12IFG &=~BITB;
ADC12IFG &=~BITC;
ADC12IFG &=~BITD;
ADC12IFG &=~Bite;
ADC12IFG &=~BITF;
}
//主
菜单,同时(1){
ADC12CTL2 || ADC12SC; //开始采样/转换
__no_operation();
IF((ADC12IE &= ADC12IE0)== 0)//重新启用中断
ADC12IE = ADC12IE0 + ADC12IE1 + ADC12IE2;
}
//中断
#if defined(__TI_Compiler_version__)|| defined (__IAR_SYSTEMS _ICC__)
#pragma vector = ADC12_vector
__interrupt void ADC12_ISR(void)
#Elif defined(__GNUC__)
void __attribute__((interrupt (ADC12_vector)) ADC12_ISR))))#inc #else不
支持#elf编译器#else
#endif
{
SWITCH(__EIV_IN_RANGE(ADC12IV,34))
{//读取ADC12MEMx寄存器将清除相应的中断标志
实例0:
USBCDC_sendDataInBackground (messageADC1,15,CDC0_INTFNUM,1000);
中断; //矢量0:无中断
情况2:
USBCDC_sendDataInBackground (messageADC2,15,CDC0_INTFNUM,1000);//打印消息
中断; //矢量2:ADC溢出
情况4:
USBCDC_sendDataInBackground (messageADC3,15,CDC0_INTFNUM,1000);//打印消息
__BIC_SR_REGISTER_ON_EXIT (LPM0_Bits + GIE);
中断; //矢量4:ADC计时溢出
情况6: //矢量6:ADC12IFG0
ADC12IFG &=~ADC12IFG0;
ADC12IE &=~ADC12IE0;
USBCDC_SendDataInBackground (messageADC4,15,CDC0_INTFNUM, 1000);
__BIC_SR_REGISTER_ON_EXIT (LPM0_Bits + GIE);//使用GEE设置退出LPM0
Break;
Case 8:
//在样本就绪时设置标志
BatStat = ADC12MEM1;
ADC12IFG &=~ADC12IFG1;
ADC12IE &=~ADC12IE1;
USBCDC_SendDataInBackground (messageADC5,15, CDC0_INTFNUM,1000);//打印消息
__BIC_SR_REGISTER_ON_EXIT (LPM0_Bits + GIE);//使用GEE SET
Break退出LPM0; //向量8:ADC12IFG1
案例10:
ADCflag = 1; //在样本就绪时设置标记
VSET = ADC12MEM2;
ADC12IFG &=~ADC12IFG2;
ADC12IE &=~ADC12IE2;
USBCDC_SendDataInBackground (messageADC6,15, CDC0_INTFNUM,1000);//打印消息
__BIC_SR_REGISTER_ON_EXIT (LPM0_Bits + GIE);//使用GEE SET
Break退出LPM0; //矢量10:ADC12IFG2
案例12:
ADC12IFG &=~ADC12IFG3;
ADC12IE &=~ADC12IE3;
USBCDC_SendDataInBackground (messageADC7,15,CDC0_INTFNUM, 1000);//打印消息
__BIC_SR_REGISTER_ON_EXIT (LPM0_Bits + GIE);//使用GEE设置
中断退出LPM0; //矢量12:ADC12IFG3
案例14:
ADC12IFG &=~BIT4;
USBCDC_SendDataInBackground (messageADC8,15,CDC0_INTFNUM,1000);//打印消息
__BIC_SR_REGISTER_ON_EXIT (LPM0_Bits + GIE);//退出LPM0并设置了GIE
中断; //矢量14:ADC12IFG4
案例16:
ADC12IFG &=~BIT5;
USBCDC_SendDataInBackground (messageADC9,15,CDC0_INTFNUM,1000);//打印消息
__BIC_SR_REGISTER_ON_EXIT (LPM0_Bits + GIE);//退出LPM0并设置了GIE
中断; //矢量16:ADC12IFG5
案例18:
//ADCflag = 1; //样本就绪时设置标志
//__BIC_SR_REGISTER_ON_EXIT (LPM0_bits);//退出活动的CPU
ADC12IFG &=~BIT6;
USBCDC_SendPrint DataBackground (消息ADC10,15,
PMIC_INGE_INDIF0,PM0,PM0,退出时退出,PMIC_GE_DI_DI_BIE 0)
//矢量18:ADC12IFG6
案例20:
ADC12IFG &=~BIT7;
USBCDC_SendDataInBackground (messageADC11,15,CDC0_INTFNUM,1000);//打印消息
__BIC_SR_REGISTER_ON_EXIT (LPM0_Bits + GIE);//退出LPM0
;使用GEI设置中断 //矢量20:ADC12IFG7
案例22:
ADC12IFG &=~BIT8;
USBCDC_SendDataInBackground (messageADC12,15,CDC0_INTFNUM,1000);//打印消息
__BIC_SR_REGISTER_ON_EXIT (LPM0_Bits + GIE);//退出LPM0
;设置为GEI中断 //矢量22:ADC12IFG8
案例24:
ADC12IFG &=~BIT9;
USBCDC_SendDataInBackground (messageADC13,15,CDC0_INTFNUM,1000);//打印消息
__BIC_SR_REGISTER_ON_EXIT (LPM0_Bits + GIE);//退出LPM0并设置了GIE
中断; //矢量24:ADC12IFG9
案例26:
ADC12IFG &=~BITA;
USBCDC_SendDataInBackground (messageADC14,15,CDC0_INTFNUM,1000);//打印消息
__BIC_SR_REGISTER_ON_EXIT (LPM0_Bits + GIE);//退出LPM0;使用GEI设置中断 //矢量26:ADC12IFG10
案例28:
ADC12IFG &=~BITB;
USBCDC_SendDataInBackground (messageADC15,15,CDC0_INTFNUM,1000);//打印消息
__BIC_SR_REGISTER_ON_EXIT (LPM0_Bits + GIE);//退出LPM0
;使用GEI设置中断 //矢量28:ADC12IFG11
案例30:
ADC12IFG &=~BITC;
USBCDC_SendDataInBackground (messageADC16,15,CDC0_INTFNUM,1000);//打印消息
__BIC_SR_REGISTER_ON_EXIT (LPM0_Bits + GIE);//退出LPM0
;使用GEI设置中断 //矢量30:ADC12IFG12
案例32:
ADC12IFG &=~BITD;
USBCDC_SendDataInBackground (messageADC17,15,CDC0_INTFNUM,1000);//打印消息
__BIC_SR_REGISTER_ON_EXIT (LPM0_Bits + GIE);//退出LPM0
,设置为GEI中断 //矢量32:ADC12IFG13
案例34:
ADC12IFG &=~Bite;
USBCDC_SendDataInBackground (messageADC18,15,CDC0_INTFNUM,1000);//打印消息
__BIC_SR_REGISTER_ON_EXIT(LPM0_Bits + GIE);//使用GEI设置
中断退出LPM0; //矢量34:ADC12IFG14
默认值:
ADCflag =1;
USBCDC_sendDataInBackground (messageADC,15,CDC0_INTFNUM,1000);///打印消息
__BIC_SR_REGISTER_ON_EXIT (LPM0_Bits + GIE);//退出LPM0并清除了GIE (禁用)
;}中断
}