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

pic16f1939睡眠到唤醒问题

[复制链接]
3758|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
fchd123|  楼主 | 2013-8-2 21:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求助PIC单片机16F1939睡眠唤醒的时候,为什么RB口检测不了低电平?我用仿真器的时候发现,当我睡眠唤醒再进入按键扫瞄子程序的时候,RB0明明已经拉低了,但是就是检测不了,我后来在扫瞄的时候已经都重新设好了,自己加了外部上拉,但就是检测不了,而且正常工作的时候是没问题的。请问到底是什么问题造成的呢?
沙发
1521732588| | 2013-8-5 11:25 | 只看该作者
睡眠之前先读一下PORTB

使用特权

评论回复
板凳
yewuyi| | 2013-8-5 14:05 | 只看该作者
你把IO口用外部电阻上拉(上拉电阻10K左右),如下试试:
代码如下:
            TRISB=0xff;
            LATB=0xff;
            IOCBP=0xff;
            IOCBN=0xff;
            PORTB=PORTB;
            IOCBF=0x00;
            asm("sleep");
            asm("nop")
            PORTB=PORTB;

然后再唤醒后试试用高低电平触发相应IO口是否能进入中断。

使用特权

评论回复
地板
fchd123|  楼主 | 2013-8-7 12:22 | 只看该作者
1521732588 发表于 2013-8-5 11:25
睡眠之前先读一下PORTB

读一下PORTB有什么作用?我试过了都不行

使用特权

评论回复
5
fchd123|  楼主 | 2013-8-7 12:34 | 只看该作者
yewuyi 发表于 2013-8-5 14:05
你把IO口用外部电阻上拉(上拉电阻10K左右),如下试试:
代码如下:
            TRISB=0xff;

我原来的程序加外部上拉的时候就可以进入中断了,只是唤醒了之后第一次进入按键扫瞄的子程序的时候就检测不了,非得要等上一阵子才行,我排除问题的时候发现,如果将一段无关紧要的语句注释的话,就没问题了,可是这语句仅仅是一段延迟的程序,而且我用之前没有修改过的版本注释了同一个语句又不行了,啊。。。天啊!!!会不会是编译选项有问题?还是编译器有问题?还是要注意什么的???

使用特权

评论回复
6
yewuyi| | 2013-8-8 14:03 | 只看该作者
编译器有问题的概率要远远小于你应用代码出问题的概率。

别那么相信自己,而怀疑编译器作者。

使用特权

评论回复
7
opal11| | 2013-8-16 21:16 | 只看该作者

编译器有问题的概率要远远小于你应用代码出问题的概率。

别那么相信自己,而怀疑编译器作者。

使用特权

评论回复
8
DIYkuang| | 2016-12-6 16:41 | 只看该作者
    TRISB0=1;//作为输入   
    INTF=0;//INT外部中断标志位清零
    INTEDG=0;//设置为下降沿
    INTE=1;//使能INT
我用的跟你片子差不多   我也遇到这个问题 现在解决  按照上面开启就行了   外部中断位先清零

使用特权

评论回复
9
NE5532| | 2016-12-7 10:00 | 只看该作者
RB是通过RB口变化中断唤醒的,读RB是确认“上次”状态,详细请读数据手册。

使用特权

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

本版积分规则

6

主题

10

帖子

0

粉丝