TA的每日心情 | 无聊 2024-3-22 00:13 |
---|
签到天数: 4 天 [LV.2]偶尔看看I
注册会员
- 积分
- 74
|
楼主 |
发表于 2024-3-16 22:59:38
|
显示全部楼层
uint16_t adc_wait_3ms_flag(uint8_t CH)
{
uint16_t result = 0;
ADC_CONTR = ADC_POWER | ADC_START | CH;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
while (!(ADC_CONTR & ADC_FLAG))
{
if (tm0.adc_ms_wait_ticks > 5)
{
tm0.adc_ms_wait_ticks = 0;
// 超过 3ms 未检测到标志位,自动设置标志位并跳出循环
//infoss("Indeed, no ADC flag position 1 was detected within 3ms. I forced it to be 1","adc_wait_3ms_flag(4)");
infols("Indeed, no ADC flag position 1 was detected within 3ms. I forced it to be 1");
ADC_CONTR |= ADC_FLAG;
break;
}
}
if (ADC_CONTR & ADC_FLAG)
{
ADC_CONTR &= ~ADC_FLAG;
result = ADC_RES << 8 | ADC_RESL;
}
return result;
}没认真研究为什么了 定时器定时3ms 标志位等不到 强行置1 |
|