any012 发表于 2019-1-26 10:05:24

请教,ADC中断对主循环的时间影响大吗?

HAL库编写的STM32F103程序,主循环外开启了ADC的DMA功能,在ADC中断里置了标志位。
后来发现,开启独立看门狗后,有很小的几率复位。觉得可能是ADC的中断的影响。
是不是开启DMA后,ADC就不停的进入了中断,从而影响了主循环里的喂狗程序?
如果是的话,如何避免这种情况?

radio2radio 发表于 2019-1-26 10:05:25

看门狗4秒,正常喂狗2秒一次。这都是很慢很慢的了。
你ADC读一次用很短时间呀,无论你是否使用DMA,都不会导致2秒还不回来喂狗狗。

真的触发了看门狗,您还是找一找别的原因吧,首先看看是否在正确的时间和地点喂狗。

wenyangzeng 发表于 2019-1-26 10:15:50

既然使能了ADC的DMA,就等DMA传输结束后才中断一次,无需使能ADC中断,否则每次ADC转换结束都频繁进入多余的ADC中断。

any012 发表于 2019-1-26 10:29:27

wenyangzeng 发表于 2019-1-26 10:15
既然使能了ADC的DMA,就等DMA传输结束后才中断一次,无需使能ADC中断,否则每次ADC转换结束都频繁进入多余的 ...

谢谢。
我用的HAL库,配置成DMA方式时,会有DMA中断。
那么会不会是DMA不停进入中断,进而影响了主循环的时间?

wenyangzeng 发表于 2019-1-26 10:57:35

any012 发表于 2019-1-26 10:29
谢谢。
我用的HAL库,配置成DMA方式时,会有DMA中断。
那么会不会是DMA不停进入中断,进而影响了主循环的 ...

DMA的中断应该也不至于影响到看门狗吧。可以先把ADC中断禁止了试看看。再有是看门狗的定时周期设置长一点。

any012 发表于 2019-1-26 11:42:50

wenyangzeng 发表于 2019-1-26 10:57
DMA的中断应该也不至于影响到看门狗吧。可以先把ADC中断禁止了试看看。再有是看门狗的定时周期设置长一点 ...

我之前说错了,不好意思。
没有ADC中断,只有DMA传输中断;看门狗复位时间已经设为4秒了,个人感觉很长了。

wenyangzeng 发表于 2019-1-26 13:36:09

any012 发表于 2019-1-26 11:42
我之前说错了,不好意思。
没有ADC中断,只有DMA传输中断;看门狗复位时间已经设为4秒了,个人感觉很长了 ...

那可能是你在DMA中断里做了许多事情,才有可能导致看门狗复位。

any012 发表于 2019-1-26 13:45:22

谢谢。

七哥 发表于 2019-1-27 00:38:21

如果按套路处理中断的话,无论什么中断都不会影响主循环。
中断服务程序中不出现死循环的代码,不处理占用周期较长代码,,快进快出。对于中断触发要处理的复杂功能,中断中只置个软件标志,在主循环中判断标志去执行,然后清标志。

any012 发表于 2019-1-28 09:14:13

谢谢各位。

uniqueeefocus34 发表于 2021-2-8 17:01:20

any012 发表于 2019-1-28 09:14
谢谢各位。

请问楼主最后怎么解决不断进入DMA中断的问题?以及内部接收ADC数据的buffer不断被刷新的问题?
页: [1]
查看完整版本: 请教,ADC中断对主循环的时间影响大吗?