器件型号: MSPM0C1104
尊敬的先生:
有关传感器 (ADC) 代码迟滞环路的以下问题、请提供帮助。
以下代码在 LaunchPad 上运行良好。但转储在应用板上的 8 引脚 MCU 上的相同代码发现有时工作、有时无法正常工作。
此外、DELAY_CYCLES (100) 每次提供相同的延迟。
包含“ti_msp_dl_config.h"</s>“
Volatile bool gCheckADC;
易失性 uint16_t gAdcResult;
Volatile int16_t gADCOffset;
bool LED = false;
易失性 uint16_t gCounterutp;
易失性 uint16_t gCounterltp;
内部 main (void)
{
delay_cycles (100);
SYSCFG_DL_init ();
gCheckADC = false;
gCounterutp = 0;
gCounterltp = 0;
DL_GPIO_setPins (GPIO_GRP_0_PORT、GPIO_GRP_0_PIN_0_PIN);
gCounterltp = 0;
/*获得校准后的 ADC 偏移量 — ADC_ERR_09 的权变措施*/
gADCOffset =
DL_ADC12_getADCOffsetCalibration (ADC12_0_ADCMEM_0_REF_VOLTAGE_V);
NVIC_EnableIRQ (ADC12_0_INST_INT_IRQN);
while (1)
{
DL_ADC12_startConversion (ADC12_0_INST);
while (false == gCheckADC){
__ WFE ();
}
gAdcResult = DL_ADC12_getMemResult (ADC12_0_INST、DL_ADC12_MEM_IDX_0);
IF (gAdcResult < 0x1E)//96mv //30 ADC 值
{
if (gCounterutp == 0x03){
DL_GPIO_clearPins (GPIO_GRP_0_PORT、GPIO_GRP_0_PIN_0_PIN);// LAMP 开启
DL_GPIO_clearPins (GPIO_GRP_0_PORT、GPIO_GRP_0_PIN_0_PIN);// LAMP 开启
gCounterutp = 0;
}其他{
delay_cycles (12000000 * 8);// 12000000 //1505000 // 2 秒取消交易
gCounterltp = 0;
gCounterutp++;
}
gCheckADC = false;
DL_ADC12_enableConversions (ADC12_0_INST);
}
否则{
IF (gAdcResult > 0xE6)// 25//37d//740mv 230 ADC 值
{
如果 (gCounterltp == 0x03){
DL_GPIO_setPins (GPIO_GRP_0_PORT、GPIO_GRP_0_PIN_0_PIN);
DL_GPIO_setPins (GPIO_GRP_0_PORT、GPIO_GRP_0_PIN_0_PIN);
gCounterltp = 0;
}其他{
DELAY_CYCLES (12000000 * 8);// 12000000 //1505000
gCounterutp = 0;
gCounterltp++;
}
gCheckADC = false;
DL_ADC12_enableConversions (ADC12_0_INST);
}
}
}
}
void ADC12_0_INST_IRQHandler (void){
开关 (DL_ADC12_getPendingInterrupt (ADC12_0_INST)){
用例 DL_ADC12_IIDX_MEM0_RESULT_LOADED:
gCheckADC = true;
休息;
默认值:
休息;
}
}
