标题: 怎么实现HCS12单片机的软件复位 [打印本页]
作者: nishui_2000 时间: 2006-5-6 08:16 标题: 怎么实现HCS12单片机的软件复位
我想在程序里用指令实现HCS12单片机的复位,怎么实现呢?
我用JMP $FFFE 不行啊。其中FFFE是系统复位的地址
作者: loray 时间: 2006-5-6 10:20
可使用非法指令强制系统复位
C代码如下:
const char illegalOp[]={0x8D}; /*非法指*/
typedef void (*tFunc)(void); /*指向函数的指针类型*/
void (*illegalOpFunc)(void) = (tFunc)illegalOp; /*指向非法指令的函数指针*/
#define SelfReset() (*illegalOpFunc)()
需要复位时,调用SelfReset()即可。
作者: happysuxin 时间: 2006-5-6 18:23
高!
作者: nishui_2000 时间: 2006-5-6 21:06
我试验了并不好用啊,执行后程序死机,停在了SelfReset()执行的那句上,程序并不复位重头开始运行啊
作者: Loray 时间: 2006-5-6 22:25
那就试试这个方法吧
void SelfReset(void)
{
DisableInterrupts;
COPCTL=0b01000001; /*打开看门狗*/
while(1); /*等待看门狗复位*/
}
前面那个程序在HC08上可以。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) |
Powered by Discuz! 7.0.0 |