主题中讨论的其他部件:MSP432WARE
大家好,
我正在寻找MSP432 ADC设置的健全性检查。 如果有人能确认以下所有内容是否正确(没有任何明显的错误会导致ADC读数混乱),我将非常感激。 我在程序开始时调用initialize_adcs()函数一次,优先处理 ADC14_IRQHandler() ISR,如下所示。
MAP_InterrupT_setPriority (FAULT_Systick,0x10); MAP_Interrupt_setPriority (INT_Port1,0x20); MAP_Interrupt_setPriority (INT_ADC14,0x20);
然后,在主while ()循环之前,我调用一次以下命令:
ADC14->CTL0 |= ADC14_CTL0_ENC |/*!< ADC14启用转换-与MAP_ADC14_ToggleConversionTrigger()相同;*/ ADC14_CTL0_SC; /*!< ADC14开始转换*/
我正在读取ADC 0-13并拉出内部温度传感器信息,需要进行一些不明确的修改... (这是我关注以下设置的主要原因)
void initialize_adics(void)
{
//初始化共享参考模块。 默认情况下,REFMMSTR=1 => REFCTL用于配置内部引用
while (REF_A->CTL0 & REF_A_CTL0_GENBUSY);//如果ref发生器忙,请等待
ref_A->CTL0 || REF_A_CTL0_VSEL_0 | //启用内部1.2V参考
ref_a_CTL0_On; //打开参考
ref_A->CTL0 || REF_A_CTL0_ON; //打开参考
ref_A->CTL0 &=~REF_A_CTL0_TCOFF; //启用温度传感器
//打开ADC14,延长采样时间以避免结果溢出
ADC14->CTL0 = ADC14_CTL0_ON | /*!< ADC14 ON */
ADC14_CTL0_MSC | /*!< ADC14多个采样和转换*/
ADC14_CTL0_SHT0_SE14_SE14*
和SE192_ PUL192_
选择通道
ADC14->CTL1 || ADC14_CTL1_TCMAP; //启用内部温度传感器
ADC14->MCTL[0]= ADC14_MCTLN_INICT_0;// ref+=AVcc, channel = A0
ADC14->MCTL[1]= ADC14_MCTLN_INIC;// ref+=AVCC, channel = A1
ADC14->MCTL14; AVCC_CAF_CAF_A14_CAF_CAX_CAX14
// ADC输入通道A22 =>温度感应
// ADC14->MCTL[5]= ADC14_MCTLN_Inch_5; //原始代码,不带温度传感器
ADC14->MCTL[6]= ADC14_MCTLN_Inch_6; // ref+=AVCC,通道= A6 ADC14->MCTL14
inch_CC_FC14;
通道=8 inch_MCTL14_CAF_CAX_CAX_CAX_CAX_CAX_CAX_CAX_CAX_CAX_CAX_CAX_CAX_CAX_CAX_CAX_CAX_CAX_CAX_CAX_CAX_CAX_CAX_CAX_CAX_CAX_CAX_CAX_CAX_CAX_CAX_CAX_CAX_CAX_CAX
// ref+=AVcc,channel = A9
ADC14->MCTL[10]= ADC14_MCTLN_INICT_10; // ref+=AVcc,channel = A10
ADC14->MCTL[11]= ADC14_MCTLN_INICT_11; // ref+=TLcc,channel = A11 ADC14->MCTL14
;AVCC_13 EOS_ADC14=
13 inch_13
//启用ADC14IFG.7
while (!(REF_A->CTL0 & REF_A_CTL0_GENRDY); //等待参考生成器稳定
__ENable_interrupT();
NVIC->ISER[0]= 1 <<(ADC14_IRQn)和31);//启用ADCA0_GRIF14_CAMPL14_
A0results[1]= ADC14->MEM[1];
A0results[2]= ADC14->MEM[2];
A0results[3]= ADC14->MEM[3];
y2_sim = A0results[3];
A0results[4]= ADC14->MEM[4];
A0results[5]= ADC14->MEM[5];
temp = A0results[5];
Life_off1[0]= ADC14->MEM[6];
Lift_off1[1]= ADC14->MEM[7];
Lift_off1[2]= ADC14->MEM[8];
Lift_off2[0]= ADC14->MEM[9];
Lift_off2[1]= ADC14->MEM[10];Lift_off2[1]= ADC14->MEM[10];
Lift_off2[2]= ADC11_EM[14]
A0results[12]= ADC14->MEM[12];
A0results[13]= ADC14->MEM[13];
}
我最担心的是ADC值无故跳转会在我们的系统中触发不必要的影响。
谢谢!
Bob
