我的微控制器中有一个看门狗,如果它没有被踢,将重置处理器。我的应用程序在一段时间内运行良好,但最终会重置,因为看门狗没有被踢。如果我逐步执行该程序,它可以正常工作。
有什么方法可以调试这个?
编辑:结论:我发现我的错误的方式是看门狗面包屑。
我正在使用具有高 ISR 向量和低 ISR 向量的 PIC。高向量用于处理 LED 矩阵,而低向量用于处理计时器滴答声。但是我将两个 ISR 处理程序都放在了高向量中。因此,当我禁用 LED 矩阵 ISR 并且计时器滴答 ISR 需要服务时,处理器将卡在低 ISR 以处理计时器滴答,但计时器滴答处理程序不存在。
面包屑将我的搜索限制在处理 LED 矩阵并专门禁用 LED 矩阵中断的函数上。