[PIC®/AVR®/dsPIC®产品] PIC单片机SLEEP无法唤醒

[复制链接]
 楼主| 钓鱼大师 发表于 2019-1-4 20:17 | 显示全部楼层 |阅读模式
代码如下:
        GIE = 1;
                        PEIE = 1;
                        INTE = 1;
                        INTF = 0;
                        INTEDG = 1;
                        IOCIE = 1;
                     SLEEP();
                        NOP();
                        PEIE = 0;
                        INTE = 0;
                        IOCIE = 0;
SLEEP时的电流为几百个微安,按按键电流一点变化都没有。
是哪里没设好吗?
gyxlzc 发表于 2019-1-5 10:33 来自手机 | 显示全部楼层
使用哪个端口产生中断,需要配置。程序里没有配啊。
 楼主| 钓鱼大师 发表于 2019-1-5 11:31 | 显示全部楼层
gyxlzc 发表于 2019-1-5 10:33
使用哪个端口产生中断,需要配置。程序里没有配啊。

PA口都是输入,都需要中断,并且相关功能已经实现,设置如下:
        TRISA0 = 1;
        TRISA1 = 1;                               
        TRISA3 = 1;
        TRISA4 = 1;
        TRISA5 = 1;
        ANSELA = 2;
oxygenzz 发表于 2019-1-5 12:00 | 显示全部楼层
楼主看一下这两个寄存器:IOCAP   IOCAN
 楼主| 钓鱼大师 发表于 2019-1-5 12:50 | 显示全部楼层
oxygenzz 发表于 2019-1-5 12:00
楼主看一下这两个寄存器:IOCAP   IOCAN

                        IOCAP = 0xFF;
                        IOCAN = 0XFF;
这样设置还是不行诶
 楼主| 钓鱼大师 发表于 2019-1-5 14:56 | 显示全部楼层
高手今天都出去浪了吗?
gyxlzc 发表于 2019-1-5 18:05 | 显示全部楼层
有点意思,前两天刚遇到类似问题。后来用MCC建立了程序,立刻好用。当时我的问题原因是ANSELA配置错了。IO上电后默认是模拟模式的,要使用数字功能,一定要通过代码将ANSEL相应bit清零。不知道你是不是也是这个问题。
捉虫天师 发表于 2019-1-7 16:12 | 显示全部楼层
代码不全啊。你的Sleep怎么进入的?
 楼主| 钓鱼大师 发表于 2019-1-7 16:23 | 显示全部楼层
捉虫天师 发表于 2019-1-7 16:12
代码不全啊。你的Sleep怎么进入的?

SLEEP();
捉虫天师 发表于 2019-1-7 16:27 | 显示全部楼层
大仙,你没懂我的意思, 你这段代码放哪儿了?
是while(1)里面还是之前了。
 楼主| 钓鱼大师 发表于 2019-1-8 15:51 | 显示全部楼层
捉虫天师 发表于 2019-1-7 16:27
大仙,你没懂我的意思, 你这段代码放哪儿了?
是while(1)里面还是之前了。 ...

可以休眠唤醒了,但是电流太大了,有70uA.怎么降到20几uA啊?
gyxlzc 发表于 2019-1-9 09:37 | 显示全部楼层
楼主查到SLEEP无法唤醒的原因了?能否分享一下?
 楼主| 钓鱼大师 发表于 2019-1-9 10:14 | 显示全部楼层
gyxlzc 发表于 2019-1-9 09:37
楼主查到SLEEP无法唤醒的原因了?能否分享一下?

GIE = 0;
                        PEIE = 1;
                        INTE = 1;
                        INTF = 0;
                        INTEDG = 1;
                        IOCIE = 1;
                        IOCAP = 0xFF;
                        IOCAN = 0XFF;
                        IOCAF = 0;
                        IOCIF = 0;                       
                        OSCCON = 0X02;
                        NOP();
                     SLEEP();
您需要登录后才可以回帖 登录 | 注册

本版积分规则

63

主题

289

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部