标题: 想请教各位大神九齐单片机的休眠及唤醒功能的实现,型号NY8BE62,感谢各位 [打印本页]

作者: Bikho    时间: 2023-10-25 19:34
标题: 想请教各位大神九齐单片机的休眠及唤醒功能的实现,型号NY8BE62,感谢各位
想请教各位大神九齐单片机的休眠及唤醒功能的实现,型号NY8BE62,感谢各位!!!!!!,我使用了例程但是效果出不来,    OSCCR = C_FLOSC_Sel;    OSCCR = C_FHOSC_Sel;    这两个不是很理解。
#include <ny8.h>
#include "ny8_constant.h"
#define HALT_MODE        0x04
#define FHOSC_SEL        0x01
#define STANDBY_MODE    0x08

#define UPDATE_REG(x)    __asm__("MOVR _" #x ",F")

void isr(void) __interrupt(0)
{
    if(INTFbits.PABIF)
    {
        INTFbits.PABIF = 0;                    
    }
}

void main(void)
{
    DISI();

    BPHCON = (unsigned char)~C_PB1_PHB;        
    BWUCON = C_PB1_Wakeup;                    
    IOSTB  = C_PB1_Input;                    
    PORTB  = 0;                                

    INTE = C_INT_PABKey;                    
    INTF = 0;                                

    OSCCR = C_FLOSC_Sel;                    
    OSCCR = C_FHOSC_Sel;   

    ENI();   
                                            
    AWUCON = 0;                                
   
    while(1)
    {
        CLRWDT();                           
        PORTBbits.PB2 = 1;                    
        PCONbits.WDTEN = 0;                        
        AWUCON = 0;                                
        UPDATE_REG(PORTB);                    

        SLEEP();                           

        PORTBbits.PB2 = 0;                    
        INTFbits.PABIF = 0;                    

        PCONbits.WDTEN = 1;   

    }
}

作者: zhai1995    时间: 2023-10-26 10:50
NY8BE62试过是没问题的。
作者: Bikho    时间: 2023-10-26 15:05
zhai1995 发表于 2023-10-26 10:50
NY8BE62试过是没问题的。

是试过我这个程序了吗请问
作者: Bikho    时间: 2023-10-26 15:07
zhai1995 发表于 2023-10-26 10:50
NY8BE62试过是没问题的。

我是卡在PB2输出1后,感觉没进入休眠,因为我用灯来模拟的,灯没灭
作者: Y_G_G    时间: 2023-10-26 21:49
九齐没有描述单片机在进入休眠之后的IO电平,我认为是它会一直保持进入之前的电平状态
也正是因为这样,单片机在进入休眠之前,就应该先拉低或者拉高电平来降低工作电流
作者: 圣博朗西斯    时间: 2023-10-27 09:50
进入休眠前你要判断所有满足休眠的条件是否全部满足,比说档位 显示时间 按键 充电等这些条件,有一个不满足就需要将休眠的计时清0,休眠之后你要关掉所有的外设AD ,PWM这些包括时钟,同时检查输入输出是否正确防止漏电,高低电平是否正确,开启唤醒引脚。
作者: Bikho    时间: 2023-10-27 10:01
本帖最后由 Bikho 于 2023-10-27 10:06 编辑
Y_G_G 发表于 2023-10-26 21:49
九齐没有描述单片机在进入休眠之后的IO电平,我认为是它会一直保持进入之前的电平状态
也正是因为这样,单片 ...

那如果唤醒了电平会是什么情况呢
作者: Bikho    时间: 2023-10-27 10:06
圣博朗西斯 发表于 2023-10-27 09:50
进入休眠前你要判断所有满足休眠的条件是否全部满足,比说档位 显示时间 按键 充电等这些条件,有一个不满 ...

九齐的这个不是可以自己设置进入休眠吗
作者: 圣博朗西斯    时间: 2023-10-27 11:09
Bikho 发表于 2023-10-27 10:06
九齐的这个不是可以自己设置进入休眠吗

进休眠之前你要保证满足条件的,你外设都没关休眠肯定功耗很大的
作者: Y_G_G    时间: 2023-10-27 12:51
Bikho 发表于 2023-10-27 10:01
那如果唤醒了电平会是什么情况呢

这取决于你的代码
要根据不同的唤醒源,来决定单片机要做什么
比如:我是做LED手电的,休眠就是关灯
唤醒源就两个:一个是充电时唤醒,这个时候是不开灯的,只要充电指示灯亮就行
一个是开关按键唤醒,这个时候是要开灯的,但充电指示灯不要亮
这些,都是要你自己去处理的,而不是让单片机默认值去处理
所以,我一般都不在乎默认值是什么的,我是都主动去改变IO状态的
作者: Bikho    时间: 2023-10-27 13:54
圣博朗西斯 发表于 2023-10-27 11:09
进休眠之前你要保证满足条件的,你外设都没关休眠肯定功耗很大的

好的,我先去试试,感谢
作者: Bikho    时间: 2023-10-27 13:56
Y_G_G 发表于 2023-10-27 12:51
这取决于你的代码
要根据不同的唤醒源,来决定单片机要做什么
比如:我是做LED手电的,休眠就是关灯

懂了,很感谢,我去尝试下,想问下开关键唤醒的话是针对引脚电平变化中断来实现的吗
作者: Y_G_G    时间: 2023-10-27 14:54
Bikho 发表于 2023-10-27 13:56
懂了,很感谢,我去尝试下,想问下开关键唤醒的话是针对引脚电平变化中断来实现的吗

请看这个单片机的数据手册,不是太深奥的东西,我不想完全说明白,最好是你自己去看资料,再验证,这是最好的学习方法
作者: Bikho    时间: 2023-10-27 18:21
Y_G_G 发表于 2023-10-27 14:54
请看这个单片机的数据手册,不是太深奥的东西,我不想完全说明白,最好是你自己去看资料,再验证,这是最好的 ...

好的好的,感谢




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1