munuc_w 发表于 2021-8-24 08:20
按键消抖常用的两种方法,电容滤波,软件延时。和什么单片机无关。
lkc8210 发表于 2021-8-25 09:56
不明白你的代码为什么要这样写
根据你的代码,当按下PA0时
PB1会产生2.5Hz的方波(假设delay的时间是ms)
lkc8210 发表于 2021-8-25 09:56
不明白你的代码为什么要这样写
根据你的代码,当按下PA0时
PB1会产生2.5Hz的方波(假设delay的时间是ms)
灰小伙 发表于 2021-8-27 10:17
谢谢lkc8210大佬的指导,我明白了为什么会产生方波。
只是目前按键的灵敏度还是不够,10次有3-4次按下去 ...
lkc8210 发表于 2021-8-27 10:30
把delay(200);改短一点试试
灰小伙 发表于 2021-8-27 10:41
下面是最新的代码。
void delay (unsigned int ms);
int main(void)
lkc8210 发表于 2021-8-27 11:10
???
为什么还是要这样写?
虽然加了释放检测令PB1不会产生方波
灰小伙 发表于 2021-8-30 09:58
换了个思路,情况有所改善,但还是有20%的按键不被认识
代码如下:
int main(void)
lkc8210 发表于 2021-8-30 11:45
直接取反不香吗?
PORTB = PORTB ^ 0x02;
灰小伙 发表于 2021-8-30 12:39
大佬,你好~
因为我这个按键要循环4个状态,按1次 输出高。第2次 输出方波1,第3次输出方波2,第4次输出 ...
lkc8210 发表于 2021-8-30 13:39
方波1和方波2有什么分别?
另外,从你的代码来看
lkc8210 发表于 2021-8-30 13:39
方波1和方波2有什么分别?
另外,从你的代码来看
欢迎光临 (http://www.51hei.com/bbs/) | Powered by Discuz! X3.1 |