Board logo

标题: 启动cop复位功能后,如何禁止他 [打印本页]

作者: accelerate    时间: 2006-5-24 15:29     标题: 启动cop复位功能后,如何禁止他

mc9s12dg128,启动了cop复位之后,想在程序中禁止cop复位,如何做呢?
作者: seuafu2005    时间: 2006-5-25 10:53

COPCTL寄存器里面的CR都设置成0就可以了
作者: accelerate    时间: 2006-5-25 21:10

我也这么认为,可是我这么做,在使用清华的那个下载头的时候好用,把程序固化到单片机内,拔掉下载线,却依旧出现cop复位,为什么啊?
作者: seuafu2005    时间: 2006-5-26 10:00

那可能是程序没有正常执行,另外你用清华下载器仿真的时候cop可以不起作用的

作者: accelerate    时间: 2006-5-26 10:08

static void COPInit(void) {
COPCTL = 0X07;
}

void main(void)
{
waittime=0;
DDRB = 0xFF;
PORTB =0X0F;

COPInit();
COPCTL = 0X00; //这句话可以禁止看门狗cop复位
PORTB = 0x00;
for(absoluteTime=0;absoluteTime<30000;absoluteTime++);
PORTB = 0xFF;
for(absoluteTime=0;absoluteTime<30000;absoluteTime++);

while(1)
{
PORTB = 0x00;
for(absoluteTime=0;absoluteTime<30000;absoluteTime++);
PORTB = 0xFF;
for(absoluteTime=0;absoluteTime<30000;absoluteTime++);

}

}


这样子有问题么?
作者: strongchen    时间: 2006-5-26 11:26

COPCTL在用户模式下只能写一次。
作者: accelerate    时间: 2006-5-26 15:26

那应该怎么办呢?
作者: accelerate    时间: 2006-5-29 12:55

神阿,救救我把
作者: seuafu2005    时间: 2006-5-29 13:11

我看你在COPInit函数里面已经写过一次了,你可以把两次写合并成一次
作者: accelerate    时间: 2006-5-29 13:49

主要是这样子:想在平时的时候启动cop监控复位功能;在某些情况下禁止cop,所以。。。。。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0