之前设计了一个MSP430控制GPRS收发数据的小装置,后来老师提意见说如果msp430或者gprs在远程发生了死机怎么办?让我附加一个每隔几个小时重新启动的装置。本来想在板子上加上一个时间控制器件,然后再程序里设置整点重启,后来觉得如果单片机都死机了,这个程序也运行不起来了,估计只能在单片机之外想办法,各位大侠有什么奇思妙想的来指点指点!
我看到很多程序上来第一件事就是关闭看门狗,既然能防止死机为什么要关闭它呢?我之前的程序也是关闭看门狗后编写的,现在我把看门狗打开,其他不变,对于整个程序有没有影响?
每一个模块的执行都有各自的时钟源,看门狗时钟源和其他不一样,单片机死机也不影响看门狗运行。关闭看门狗是因为看门狗计满系统就会重新上电,就是重启,影响程序正常执行
如果我选择WDTCNT的时钟源为32768HZ,计数次数IS0,IS1选择0,也就是32768,那么看门狗定时时间最多也就1S,这个时间对于我的程序来说太短了,我的程序中有部分指令间的延时都需要10S左右,短的也有1S多一点的,我怎么安排喂狗啊?
如果我选择WDTCNT的时钟源为32768HZ,计数次数IS0,IS1选择0,也就是32768,那么看门狗定时时间最多也就1S,这个时间对于我的程序来说太短了,我的程序中有部分指令间的延时都需要10S左右,短的也有1S多一点的,我怎么安排喂狗啊?
使用外部看门狗最靠谱,内部看门狗效果一般。这样可以使单片机一直处于工作状态,然后再定时重启。
你老师的方法有点投机的嫌疑。在程序死机后系统能继续工作的正确方法是看门狗。只有程序跑飞后才重启系统。
可以再加一个单片机,或者用个定时器也行,,,,用来控制继电器的开关 来控制msp430单片机的电源通断
gprs設定主動問msp430, 問不到就出一個rst信號。
msp430也設成定時問gprs沒有回應也給一個rst信號, 問題全部解決。
在供电处添加一个继电器之类的来控制
where there is wade,there is a way...
用外部专门的看门狗芯片,MCU定期对该芯片喂狗,如果MCU挂掉了,超过喂狗时间,看门狗芯片就将MCU复位。
加看门狗吧,程序死了跳不出来会直接复位。
还不行就把该部分初始化代码写到定时器里,定时初始化一遍;
既然有收发器,也可以对收发器进行复位控制管理啊。
看到标题就直接想到了独立看门狗,不过MSP430玩的不是很熟,一般就是在自己的主程序里面喂狗,一旦程序死机了,看门狗就会重启机器啊