Board logo

标题: 怎么实现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