我目前正在做一个GPS项目,正在使用电压检测来让我的系统进入睡眠状态并唤醒它。
当ADC通道6(引脚34)上的电压为0时,系统进入深度睡眠,并且在深度睡眠中,我使用ULP码来测量电压并在达到阈值时唤醒系统。我现在的问题是,当我在活动模式下运行adc1_get_raw(ADC1_CHANNEL_6)时,深度睡眠模式下的ADC读取ULP程序没有响应,我仍然删除了活动模式下的代码。谁能告诉我这里出了什么问题。提前谢谢。
主用模式代码:
bool ignitionSate() {
int val = 0;
val = adc1_get_raw(ADC1_CHANNEL_6);
if (val > 0) {
return true;
} else {
return false;
}
}深度睡眠ADC配置代码:
/* Configure ADC channel */
/* Note: when changing channel here, also change 'adc_channel' constant in adc.S */
adc1_config_channel_atten(ADC1_CHANNEL_6, ADC_ATTEN_DB_11);
adc1_config_width(ADC_WIDTH_BIT_12);
adc1_ulp_enable();发布于 2021-08-09 11:44:54
我在一个我正在做的项目中遇到了这个问题。
在活动模式下调用adc1_get_raw()之后,需要调用adc1_ulp_enable(),这样ULP ADC指令才不会挂起。
https://stackoverflow.com/questions/65546232
复制相似问题