[8/16位单片机] PIC单片机SLEEP无法唤醒

[复制链接]
482|13
 楼主 | 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时的电流为几百个微安,按按键电流一点变化都没有。
是哪里没设好吗?
| 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;
| 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 | 显示全部楼层
高手今天都出去浪了吗?
| 2019-1-5 18:05 | 显示全部楼层
有点意思,前两天刚遇到类似问题。后来用MCC建立了程序,立刻好用。当时我的问题原因是ANSELA配置错了。IO上电后默认是模拟模式的,要使用数字功能,一定要通过代码将ANSEL相应bit清零。不知道你是不是也是这个问题。
| 2019-1-7 14:24 | 显示全部楼层
你先用一个IO做唤醒,一个IO做挂一个LED输出来测试吧。
IOC应该就是配置TRISC,ANSEL,IOCxP, IOCxN, IOCIE,看不到你程序的全貌也很难说再多
| 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啊?
| 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();
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

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