MCU应用踩坑笔记(ADC 中断 / 查询法)

问题描述

IC:SC92F7596,在使用过程中,发现一个问题,就是我们使用到了ADC功能,程序的代码如下:

ADC采样周期200ms ,采样个数:4


在使用过程中,因配置了ADC中断使能,在中断服务程序中,清除了了中断标志位。

因为我开500ms的看门狗溢出复位,但是因为

(1)当温度上升到45℃以上之后,ADC的采集时间会从us级别变到800ms,从而触发了看门狗溢出复位,红灯常亮

(2)当温度下降到30℃之后,系统又能恢复正常(红灯熄灭)。

请问这是什么原因?为什么ADC开启中断之后,会受温度影响。

解决方案:

现在我们把ADC中断的功能禁用之后,就不会有这个问题了。但是我们不知道根本原因是什么?

来自SC-FAC回复:

1.查询法与中断法同时使用为应用错误,正确应为二选一,即只使用查询法或只是用中断法;

2.同时使用查询法和中断法且芯片温度超过47℃导致采样时间过长原因为高温下芯片内部HRC频率会产生漂移(频率变快,但时钟精度控制在±1%),该状态下MCU采样ADC ADC中断标志会比while语句更快速,CPU优先处理中断服务函数,导致采样完成标志在中断服务函数中清除,进一步导致MCU卡死在while循环中无法清除WDT致使WDT超时溢出复位,且外部电路也会受温度影响,综合影响下最终表现为MCU 47℃下ADC采样卡死。

另30℃下表现为正常运行不代表不存在隐患。

综上所述,导致芯片异常原因为应用错误。

相关推荐
深圳市恒锐丰科技杨生11 小时前
EG3033 三相 P‑N MOS 栅极驱动芯片|屹晶 EGmicro
嵌入式硬件·硬件工程
LuminousCPP11 小时前
数据结构-排序(三):快速排序进阶|挖坑法、双指针交换与手动栈非递归实现
c语言·数据结构·笔记·算法·排序算法
chushiyunen11 小时前
mockito笔记
java·开发语言·笔记
linx29512 小时前
单元三 · 那 C 的底层知识怎么办
c语言·开发语言·数据结构·c++·嵌入式硬件
abc light12 小时前
单片机(1)
单片机·嵌入式硬件
云泽80812 小时前
STM32 USART 详解(四):数据帧及标志位的收发机制与寄存器深度剖析
stm32·单片机·嵌入式硬件
linx29513 小时前
单元四 · 对称认知·上:内存与指针
c语言·开发语言·数据结构·嵌入式硬件·算法
国科安芯13 小时前
ASM9048S(4 路高速 LVDS 接收器)在商业航天等场景中的应用研究
嵌入式硬件·电源模块·卫星通信·抗干扰·抗辐射
HUI-47413 小时前
EG11752|ESOP‑8 内置 200V‑2A 异步降压 DC‑DC,10‑200V 超宽压小功率辅助电源优选
嵌入式硬件·硬件工程
HRTOS13 小时前
HRTOS 4.0 驱动库实例:LCD1602显示屏使用示例
c语言·单片机·嵌入式硬件·51单片机