打印
[PIC®/AVR®/dsPIC®产品]

PIC单片机SLEEP无法唤醒

[复制链接]
1908|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
钓鱼大师|  楼主 | 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

使用特权

评论回复
5
钓鱼大师|  楼主 | 2019-1-5 12:50 | 只看该作者
oxygenzz 发表于 2019-1-5 12:00
楼主看一下这两个寄存器:IOCAP   IOCAN

                        IOCAP = 0xFF;
                        IOCAN = 0XFF;
这样设置还是不行诶

使用特权

评论回复
6
钓鱼大师|  楼主 | 2019-1-5 14:56 | 只看该作者
高手今天都出去浪了吗?

使用特权

评论回复
7
gyxlzc| | 2019-1-5 18:05 | 只看该作者
有点意思,前两天刚遇到类似问题。后来用MCC建立了程序,立刻好用。当时我的问题原因是ANSELA配置错了。IO上电后默认是模拟模式的,要使用数字功能,一定要通过代码将ANSEL相应bit清零。不知道你是不是也是这个问题。

使用特权

评论回复
8
捉虫天师| | 2019-1-7 16:12 | 只看该作者
代码不全啊。你的Sleep怎么进入的?

使用特权

评论回复
9
钓鱼大师|  楼主 | 2019-1-7 16:23 | 只看该作者
捉虫天师 发表于 2019-1-7 16:12
代码不全啊。你的Sleep怎么进入的?

SLEEP();

使用特权

评论回复
10
捉虫天师| | 2019-1-7 16:27 | 只看该作者
大仙,你没懂我的意思, 你这段代码放哪儿了?
是while(1)里面还是之前了。

使用特权

评论回复
11
钓鱼大师|  楼主 | 2019-1-8 15:51 | 只看该作者
捉虫天师 发表于 2019-1-7 16:27
大仙,你没懂我的意思, 你这段代码放哪儿了?
是while(1)里面还是之前了。 ...

可以休眠唤醒了,但是电流太大了,有70uA.怎么降到20几uA啊?

使用特权

评论回复
12
gyxlzc| | 2019-1-9 09:37 | 只看该作者
楼主查到SLEEP无法唤醒的原因了?能否分享一下?

使用特权

评论回复
13
钓鱼大师|  楼主 | 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();

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

29

主题

170

帖子

0

粉丝