如图所示:扫一个3*4=12的键盘。如这里设key5端口带中断输入(因为要低功耗,所以不能不停扫)
那问题是如何分辨出是key1、key2、key3、key4端口呢?
之前有朋友说过,Key1~Key4设置低电平,然后Key5~Key7设置中断检测低电平就行了。
但我想过了,这样没办法分辨Key1~Key4阿?
正常应该是一组高电平,一组低电平。这样才能做出扫描键盘的吧?
然后我看了库设置,好像有点问题了。
按上面的设置。
中断要么只能设置“浮空”(非高或非低电平的无固定状态),要么是高电平(pull-up 强推?)。
1、这样看的话,是否我的Key5只能设置/*!< Input pull-up, external interrupt */这个呢?
2、如果真的只设置上面那个,是不是为了分辨Key1~Key4端,也只能/*!< Output open-drain, low level, 2MHz */这个了?
3、按上面库的话,有没有更好的选择?(其实我当初的设想Key1~Key4是开漏输出高电平,Key5~Key7低电平带中断。(为了省电)但问题是上面的库好像没有这个选项.......)
|