找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1668|回复: 13
打印 上一主题 下一主题
收起左侧

想请教各位大神九齐单片机的休眠及唤醒功能的实现,型号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;   

    }
}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:267932 发表于 2023-10-26 10:50 | 只看该作者
NY8BE62试过是没问题的。
回复

使用道具 举报

板凳
ID:1097287 发表于 2023-10-26 15:05 | 只看该作者
zhai1995 发表于 2023-10-26 10:50
NY8BE62试过是没问题的。

是试过我这个程序了吗请问
回复

使用道具 举报

地板
ID:1097287 发表于 2023-10-26 15:07 | 只看该作者
zhai1995 发表于 2023-10-26 10:50
NY8BE62试过是没问题的。

我是卡在PB2输出1后,感觉没进入休眠,因为我用灯来模拟的,灯没灭
回复

使用道具 举报

5#
ID:401564 发表于 2023-10-26 21:49 | 只看该作者
九齐没有描述单片机在进入休眠之后的IO电平,我认为是它会一直保持进入之前的电平状态
也正是因为这样,单片机在进入休眠之前,就应该先拉低或者拉高电平来降低工作电流
回复

使用道具 举报

6#
ID:1097455 发表于 2023-10-27 09:50 | 只看该作者
进入休眠前你要判断所有满足休眠的条件是否全部满足,比说档位 显示时间 按键 充电等这些条件,有一个不满足就需要将休眠的计时清0,休眠之后你要关掉所有的外设AD ,PWM这些包括时钟,同时检查输入输出是否正确防止漏电,高低电平是否正确,开启唤醒引脚。
回复

使用道具 举报

7#
ID:1097287 发表于 2023-10-27 10:01 | 只看该作者
本帖最后由 Bikho 于 2023-10-27 10:06 编辑
Y_G_G 发表于 2023-10-26 21:49
九齐没有描述单片机在进入休眠之后的IO电平,我认为是它会一直保持进入之前的电平状态
也正是因为这样,单片 ...

那如果唤醒了电平会是什么情况呢
回复

使用道具 举报

8#
ID:1097287 发表于 2023-10-27 10:06 | 只看该作者
圣博朗西斯 发表于 2023-10-27 09:50
进入休眠前你要判断所有满足休眠的条件是否全部满足,比说档位 显示时间 按键 充电等这些条件,有一个不满 ...

九齐的这个不是可以自己设置进入休眠吗
回复

使用道具 举报

9#
ID:1097455 发表于 2023-10-27 11:09 | 只看该作者
Bikho 发表于 2023-10-27 10:06
九齐的这个不是可以自己设置进入休眠吗

进休眠之前你要保证满足条件的,你外设都没关休眠肯定功耗很大的
回复

使用道具 举报

10#
ID:401564 发表于 2023-10-27 12:51 | 只看该作者
Bikho 发表于 2023-10-27 10:01
那如果唤醒了电平会是什么情况呢

这取决于你的代码
要根据不同的唤醒源,来决定单片机要做什么
比如:我是做LED手电的,休眠就是关灯
唤醒源就两个:一个是充电时唤醒,这个时候是不开灯的,只要充电指示灯亮就行
一个是开关按键唤醒,这个时候是要开灯的,但充电指示灯不要亮
这些,都是要你自己去处理的,而不是让单片机默认值去处理
所以,我一般都不在乎默认值是什么的,我是都主动去改变IO状态的
回复

使用道具 举报

11#
ID:1097287 发表于 2023-10-27 13:54 | 只看该作者
圣博朗西斯 发表于 2023-10-27 11:09
进休眠之前你要保证满足条件的,你外设都没关休眠肯定功耗很大的

好的,我先去试试,感谢
回复

使用道具 举报

12#
ID:1097287 发表于 2023-10-27 13:56 | 只看该作者
Y_G_G 发表于 2023-10-27 12:51
这取决于你的代码
要根据不同的唤醒源,来决定单片机要做什么
比如:我是做LED手电的,休眠就是关灯

懂了,很感谢,我去尝试下,想问下开关键唤醒的话是针对引脚电平变化中断来实现的吗
回复

使用道具 举报

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

请看这个单片机的数据手册,不是太深奥的东西,我不想完全说明白,最好是你自己去看资料,再验证,这是最好的学习方法
回复

使用道具 举报

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

好的好的,感谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表