打印

看门狗溢出复位问题

[复制链接]
2897|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
高建明|  楼主 | 2009-3-30 13:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请问中颖工程师:中颖IC的看门狗复位以后中断请求和中断使能以及IO口配置都清零了,现在碰到一个问题,假如某个IO设置为下降沿触发中断,那么如果这个下降沿信号刚好在看门狗复位之后发生,这个时候IO口配置还没有完成,那样就意味着丢失了一次触发中断,虽然这个时间很短机率也很小,但是本着严谨的态度想问一问,如何处理才不至于丢失这次中断?
沙发
warm_ice| | 2009-3-30 22:13 | 只看该作者

这样

首先要说明一下,设置看门狗的初衷是为了能够让程序在异常情况下复位,不至于出现重大的问题,按程序的设计,正常情况下,看门狗是不会复位的。

下面说一下您的问题,看门狗复位时,您可以通过判断是上电复位还是看门狗复位来区别对待,假设是看门狗复位,而之前I/O配置又没有乱掉的情况(即像您的描述的一样只是中断的时间比看门狗长)下,您可以迅速恢复中断,跳回主程序继续执行。

当然,如果程序是在非正常状态下看门狗复位,这样处理就会比较麻烦了,呵呵,您要自己权衡。

使用特权

评论回复
板凳
高建明|  楼主 | 2009-3-31 21:03 | 只看该作者

warm_ice

warm_ice,可能我表诉的不够清楚,是这样的:目前我们的系统需要休眠省电,工作时需要外部中断唤醒,但是我们为了系统的可靠以及特殊应用,在休眠的时候看门狗没有关闭(也没办法关闭,因为我们要等看门狗溢出的时候瞬时检测电池电压然后再休眠,比较极端的用法),也就是说在休眠的时候看门狗会溢出复位,我们通过程序入口判断:如果是看门狗复位,则需要重新初始化IO口以及开启中断使能等动作,然后再次进入休眠状态,以便外部中断能够唤醒系统,但是问题就是出在看门狗复位和重新初始化IO口之间,因为这个时候IO口状态都重置了(应该是处于浮空状态),如果此时外部IO口发生一个按键信号要求唤醒系统,则会出现无法唤醒系统的问题(当我们完成初始化IO口以及开启中断使能以后,以为外部中断请求标志会置位,但是很遗憾,中断请求标志为零,也就是说系统没有侦测到本次中断),写到这里我突然想到一个问题:如果加上外部上拉会不会可以了?我明天试试看

使用特权

评论回复
地板
warm_ice| | 2009-4-2 11:50 | 只看该作者

这样

不好意思,这几天有事,刚上来回复您。

我明白您的意思,不过,据我所知,WDT复位后,各寄存器的状态是不会改变的,这时如果再产生外部中断,程序能够正常响应的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

46

主题

203

帖子

0

粉丝