无锡矽杰微电子----XC8P9520C MCU之项目开发之问题总结补充

1.按键控制小灯,一共五个档位,发现会有跳档的情况出现。

        重复看了一下写的代码,发现唯有一种可能,那就是误触了。我的按键使用的是锅仔片,使用的应该都知道,这种按键。

        按键检测部分初始是这么执行的:首先按下,这里有个滤波处理,相信大家都是这样做的,然后确认按下了;松手之后就执行调档。我的猜测就是这里有问题,所以我多做了一些处理。

        按下的滤波时间加长,松手之后,再次滤波,此时才被认为是一次有效的按下。

        那么这么写会造成一种什么现象呢?快速按键会感觉到有时候按下无效,但是应该能够解决上述所说的跳档,实际也说了它并不是跳档,而是因为误触。

2.长按按键关机,松手之后有概率重新唤醒。

        长按按键关机,即执行SLEEP命令进入睡眠模式,同时开启引脚电平变化中断用于唤醒睡眠。进入睡眠模式之后,经过多次实验发现有概率会被唤醒。我不知道这是由于按键的硬件原因还是因为9520的处理中断的特殊机制所造成的。

        按键一般是低电平有效,即按下是低电平。猜测是因为按下按键之后关机,松手之后这个从低电平变化为高电平被认为是一次电平变化,然后引起中断,唤醒系统。

        有了上述的猜测,所以我就在中断里边做了一些处理,首先判断标志位是否触发中断,然后再判断是低电平才会去唤醒。

        为什么是低电平呢?是因为上面所说的是上升沿所造成的中断唤醒,低电平的话,只有再次按下才会有低电平出现,即把睡眠之后的松手认为是没用的,给滤掉。

        改写之后并未进行实际验证。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值