首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

[求助]MC9S08GT60的休眠问题!?

[求助]MC9S08GT60的休眠问题!?

我用MC9S08GT60时可以使其进入3中休眠模式,stop1,stop2,stop3,但是有一个问题就是我的stop1和stop2进入休眠后的电流可以达到数据手册的参数,但是stop3却不行,数据手册上说是小于20多微安,我的却是80微安左右,请问是怎么回事呢?用freescale公布的汇编程序到时可以达到20微安,可是我不想用汇编,看起来不大明白,程序见下:
McuModeSelect(mode);
McuPortInit();
   
    {
        unsigned long i = 2500;
        while(i--);
    }
   
    _asm stop;

void McuModeSelect(unsigned char temp) {
    if(temp == 1){
        SPMSC1 = 0x00;
        SPMSC2 = 0x02;//Stop1
    }
    else if(temp == 2){
        SPMSC1 = 0x00;
        SPMSC2 = 0x03;//Stop2   
    }
    else if(temp == 2){
        SPMSC1 = 0x00;
        SPMSC2 = 0x00;//Stop3
    }
    else{
        ;
    }     
}

void McuPortInit(void){
    PTAPE = 0xFF;
    PTBPE = 0xFF;
    PTCPE = 0xFF;
    PTDPE = 0xFF;
    PTEPE = 0xFF;
    PTGPE = 0xFF;  
}
freescale公布的汇编并不是很复杂,解释也很清楚,可以再看一下汇编,看看设置有什么不同,COP(watchdog)有没有关掉?时钟是怎么设置的?
我看了汇编把IO初始化了一下,现在能到20微安左右了,并没有对时钟进行设置,时钟没有休眠之前是用的RF13192的输出时钟信号,请问时钟还要设置吗?
如果你在stop3模式下需要把ICG关掉的话,要把时钟换成采用内部时钟,保证mcu正常工作,等mcu唤醒以后重新运行ICG,采用13192的时钟。如果你嫌麻烦,就不必对时钟进行改动了。
返回列表