请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
部件号:MSP430FR5987 我已在MSP430fr5987上初始化ADC12B,但无法使其生成和中断??? ADC12ENC的单次转换触发。
P9SEL0 |= BIT2; //将WFP 9.2 设置为模拟输入,A10 P9SEL1 || BIT2; ADC12CTL0 = ADC12ON; // ADC12ENC =0,ADC12SC=0 // REF_A SLAU367L第668页 同时(REFCTL0和REFGENBUSY); //如果ref发生器忙,请等待 REFCTL0 |= REFVSEL_1+REFON; //选择内部参考= 2.0V //采样和保持时间对于MEM0至MEM32使用16个采样时钟 ADC12CTL0 |= 0x2200; // ADC_SMP_16; //使用MOD时钟 ADC12CTL1 |= 0x18;//TODO TRY SMCLK ADC_CLK_MOD; //单通道单转换 ADC12CTL1 |= 0x0; // ADC_SNGL; //反转单个样本和保持 ADC12CTL1|=0; //不反转 //使用12位分辨率 ADC12CTL2 |= 0x0020; // ADC_12_bit; // VR+= VREF缓冲(2.0V),VR-= AVSS (0V) ADC12MCTL0 |= 0x0100; // ADC_REF_VRF; //INCHx = 10 (A10或DAC VOUTB) ADC12MCTL0 |= 0x000A; // 10; ADC12IFGR0 = 0x0000; //清除中断标志 ADC12IFGR1 = 0x0000; ADC12IFGR2 = 0x0000; ADC12IER0 = ADC12IE0; //为ADC12MEM0启用中断 ADC12IER1 =0; //禁用MEM16到MEM31的中断 ADC12IER2 =0; //禁用辅助输入的中断 ADC12CTL0 |= 0x0003; // ADCSC =开,ADCENC=开
---------------------------------------------------------------------------------------------------------------------------------------------------
#pragma vector=ADC12_vector
__interrupt void ADC12 (void){__disable_interrupit();
//禁用任何其他中断
ADC12CTL0 &= 0xFFfc; // ADC12ENC =0,ADC12SC =0
//switch (__偶 数_in_range (ADC12IV,ADC12IV_ADC12RDYIFG))
//{
// Case ADC12IV_none: 中断; //矢量0:无中断
// CASE ADC12IV_ADC12OVIFG:中断; //矢量2:ADC12MEMx溢出
// CASE ADC12IV_ADC12TOVIFG:中断; //矢量4:转换时间溢出
// CASE ADC12IV_ADC12HIIFG:中断; // A1是否> 2V?:高中断
// CASE ADC12IV_ADC12LOIFG:中断; // A1是否< 1V?:低中断
// CASE ADC12IV_ADC12INIFG:中断; //矢量10:ADC12IN
// CASE ADC12IV_ADC12IFG0:
////
中断; //矢量12:ADC12MEM0
////
CASE ADC12IV_ADC12IFG1:中断; //矢量14:ADC12MEM1
// CASE ADC12IV_ADC12IFG2:中断; //矢量16:ADC12MEM2
//案例ADC12IV_ADC12IFG3:
ADC_Capture_Data (ADC_rslt);
// 中断; //矢量18:ADC12MEM3
//案例ADC12IV_ADC12IFG4:中断; //矢量20:ADC12MEM4
// CASE ADC12IV_ADC12IFG5:中断; //矢量22:ADC12MEM5
//案例ADC12IV_ADC12IFG6:中断; //矢量24:ADC12MEM6
//案例ADC12IV_ADC12IFG7:中断; //矢量26:ADC12MEM7
// CASE ADC12IV_ADC12IFG8:中断; //矢量28:ADC12MEM8
//案例ADC12IV_ADC12IFG9:中断; //矢量30:ADC12MEM9
// CASE ADC12IV_ADC12IFG10:中断; //矢量32:ADC12MEM10
//案例ADC12IV_ADC12IFG11:中断; //矢量34:ADC12MEM11
// CASE ADC12IV_ADC12IFG12:中断; //矢量36:ADC12MEM12
//案例ADC12IV_ADC12IFG13:中断; //矢量38:ADC12MEM13
// CASE ADC12IV_ADC12IFG14:中断; //矢量40:ADC12MEM14
// CASE ADC12IV_ADC12IFG15:中断; //矢量42:ADC12MEM15
// CASE ADC12IV_ADC12IFG16:中断; //矢量44:ADC12MEM16
// CASE ADC12IV_ADC12IFG17:中断; //矢量46:ADC12MEM17
//案例ADC12IV_ADC12IFG18:中断; //矢量48:ADC12MEM18
// CASE ADC12IV_ADC12IFG19:中断; //矢量50:ADC12MEM19
//案例ADC12IV_ADC12IFG20:中断; //矢量52:ADC12MEM20
//案例ADC12IV_ADC12IFG21:中断; //矢量54:ADC12MEM21
// CASE ADC12IV_ADC12IFG22:中断; //矢量56:ADC12MEM22
// CASE ADC12IV_ADC12IFG23:中断; //矢量58:ADC12MEM23
//案例ADC12IV_ADC12IFG24:中断; //矢量60:ADC12MEM24
// CASE ADC12IV_ADC12IFG25:中断; //矢量62:ADC12MEM25
// CASE ADC12IV_ADC12IFG26:中断; //矢量64:ADC12MEM26
// CASE ADC12IV_ADC12IFG27:中断; //矢量66:ADC12MEM27
// CASE ADC12IV_ADC12IFG28:中断; //矢量68:ADC12MEM28
// CASE ADC12IV_ADC12IFG29:中断; //矢量70:ADC12MEM29
// CASE ADC12IV_ADC12IFG30:中断; //矢量72:ADC12MEM30
// CASE ADC12IV_ADC12IFG31:中断; //矢量74:ADC12MEM31
// CASE ADC12IV_ADC12RDYIFG:中断; //矢量76:ADC12RDY
//默认值:中断;
//}
ADC12IFGR0 = 0x0000; //清除中断标志
ADC12IFGR1 = 0x0000;
ADC12IFGR2 = 0x0000;
__enable_interrupt (); //重新启用中断
ADC12CTL0 || ADC12ENC | ADC12SC; //开始采样/转换}--><!--kadov_tag{{</spaces>}--><!--kadov_tag{</spaces>}--><!--kadov_tag{</spaces>}-------------
void ADC_Capture_Data (无符号int *data)
{
数据[0]=1;
DATA[1]= ADC12MEM0;
Data[2]= ADC12MEM1;
Data[3]= ADC12MEM2;
Data[4]= ADC12MEM3;
}