[PIC®/AVR®/dsPIC®产品] 电平变化中断的问题

[复制链接]
1211|10
 楼主| 1564564 发表于 2023-9-5 11:16 | 显示全部楼层 |阅读模式
我要实现的功能是俩小灯,俩按键,按键分为key+和key-,长按key-会关机,也就是进入了sleep模式,然后key+开启电平变化中断,用于唤醒mcu。
然后现在有时候会出现这种情况,关机之后,按key+开不了机了,这种情况出现的频率不高,几十次甚至上百次会出现一次,然后重新上电就又好了。
示波器看了按键是没问题的,mcu电源也没问题。这是什么情况呢?
还有就是用MPLAB X IDE进行仿真,好像不会出现上述情况,本来想仿真下看看是不是卡在哪里了,按了好久也不会出现。
请大佬解答。

对了,最后说一下,关机后测的电流是0.6uA,正常的;开机最低的正常电流是4.8uA;
然后按key+开机,如果没唤醒,电流会变为4.6uA,这是说明按键有反应的,但是不知道怎么没到正常工作的电流。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
lcczg 发表于 2023-9-5 11:22 | 显示全部楼层
你在唤醒中断里加个IO翻转,先看看唤醒中断是不是一直好的。
 楼主| 1564564 发表于 2023-9-5 14:22 | 显示全部楼层
lcczg 发表于 2023-9-5 11:22
你在唤醒中断里加个IO翻转,先看看唤醒中断是不是一直好的。

现在就是唤醒中断函数不把标志位清0,按下就可以一直反转。这个中断应该是没问题的。
xch 发表于 2023-9-5 18:25 | 显示全部楼层
Power_off(); 是啥代码?这段switch ... case ... 代码是在中断服务函数中还是后台处理函数中?
 楼主| 1564564 发表于 2023-9-6 09:06 | 显示全部楼层
xch 发表于 2023-9-5 18:25
Power_off(); 是啥代码?这段switch ... case ... 代码是在中断服务函数中还是后台处理函数中? ...

power_off()就是進入了sleep模式;switch就是正常循环运行的代码,不是在中断服务函数中。
zlf1208 发表于 2023-9-6 09:56 | 显示全部楼层
Power_off()运行后还能够break吗?这个函数应该放到外面才对吧?
wutaosamuel 发表于 2023-9-6 10:21 | 显示全部楼层
你怎么判断mcu开机了还是没开机
 楼主| 1564564 发表于 2023-9-6 11:34 | 显示全部楼层
wutaosamuel 发表于 2023-9-6 10:21
你怎么判断mcu开机了还是没开机

有小灯会点亮
wutaosamuel 发表于 2023-9-6 14:35 | 显示全部楼层
能用串口在关键地方printf打印一些文字出来,尤其是在控制小灯的代码那边
对比下异常和正常情况时,文字打印顺序对不对
 楼主| 1564564 发表于 2023-9-6 17:25 | 显示全部楼层
wutaosamuel 发表于 2023-9-6 14:35
能用串口在关键地方printf打印一些文字出来,尤其是在控制小灯的代码那边
对比下异常和正常情况时,文字打 ...

好的,謝謝,試一下看看。
 楼主| 1564564 发表于 2023-9-8 16:06 | 显示全部楼层
感谢各位大佬,最后解决问题的方式很奇特,我是一直认为是我写的中断部分代码有问题的,但是我又找不到问题所在,所以我就直接复制别人的代码,然后改引脚,调用的函数啥的,然后就好了,它就好了。虽然有点无语,但是问题解决了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

114

帖子

0

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