一个O 发表于 2024-5-14 10:10:51

长按按键,程序可能哪没写对,关机未实现,软件求支援

实际测得的现象是:现象是松手后小灯又会亮。
想要的是长按按键关机,小灯熄灭,然后用另外一个按键唤醒,即对应的INT0。
还有就是如果用这个按键关机还要用这个按键唤醒怎么实现,我想象的是会不会误触发,关机后立马唤醒,这部分如何处理?

电子DIY小家 发表于 2024-5-14 11:09:56

还有就是如果用这个按键关机还要用这个按键唤醒怎么实现,
我想象的是会不会误触发,关机后立马唤醒,这部分如何处理?
这部分监测到按键长按之后先关闭所有的外设,按下松开在彻底进入休眠即可。

晓飛飛 发表于 2024-5-14 11:11:03

首先,你的标题措辞不合适“stc8h1k24长按按键无法关机的情况” 好像说stc8h1k24有问题,
实则是你的程序逻辑比较混乱,你的长按检测本身没什么问题,
但长按超时flag标记后,只要按键不释放,仍然在判断按键的while(P33==0)循环里无法退出,
倒不如直接把关机操作的代码段安排到打标记那里,


一般来说,不建议用while循环检测长按键,这会阻碍其它代码的运行,
建议在定时器终端中或大循环中周期查询按键的方式去累加一个变量,
再通过比较变量触发关机代码


神农鼎 发表于 2024-5-14 11:19:39

帮他改了标题,那标题影响STC8H1K24的光辉形象,真想对他禁言1周

【长按按键,程序可能哪没写对,关机未实现,软件求支援】

一个O 发表于 2024-5-14 11:31:50

电子DIY小家 发表于 2024-5-14 11:09
还有就是如果用这个按键关机还要用这个按键唤醒怎么实现,
我想象的是会不会误触发,关机后立马唤醒,这部 ...

好的,谢谢。

一个O 发表于 2024-5-14 15:16:34

本帖最后由 kite 于 2024-5-15 09:53 编辑

晓飛飛 发表于 2024-5-14 11:11
首先,你的标题措辞不合适“stc8h1k24长按按键无法关机的情况” 好像说stc8h1k24有问题,
实则是你的程序逻 ...
还是不行,大佬能看下我下面回复的吗?这个触发应该不是软件问题吧,是不是我这板子电路哪里有问题?

Lkck8210 发表于 2024-5-14 17:58:32

请提供全部代码

乘风飞扬 发表于 2024-5-14 18:28:45

写了个测试程序,供参考

一个O 发表于 2024-5-15 09:50:23

本帖最后由 kite 于 2024-5-15 09:59 编辑

Lkck8210 发表于 2024-5-14 17:58
请提供全部代码
这个是我用来测试的一个程序,现在能够进入睡眠了,用串口助手发现是被误触发了中断,代码是长按p33关机,然后开启p32--INT0中断用于唤醒。现在实测发现是长按p33然后松手关机,立马就进入INT0了,然后唤醒。

一个O 发表于 2024-5-15 09:52:37

乘风飞扬 发表于 2024-5-14 18:28
写了个测试程序,供参考

谢谢大佬的参考代码,好像找到问题了。我感觉是不是我们的板子电路哪里有问题了,明明没有按下另外一个按键但是却触发了中断。
页: [1] 2
查看完整版本: 长按按键,程序可能哪没写对,关机未实现,软件求支援