|
wince里编写矩阵键盘驱动。(7行*6列)矩阵键盘,引出13根线,6列的引线连接的GPIO设成外部中断口,7行的引线连接的GPIO方向为out输出口。
采用“行扫”的方式的话我想是不是要这样操作:
1. 等待键盘按下时,6列引线接口设成eint外部中断状态;7行引线接口方向设成out输出状态,输出低电平;
2. 有外部中断时,由中断口可判断哪一列有按键被按下;
3. 7行引线输出口分别输出:
0111111, 1011111, 1101111, 1110111, 1111011, 1111101, 1111110等状态,
6列的GPIO由eint外部中断功能转为方向为in的输入口,分别读取各个状态下列引线的电平状态,
从而判断哪一行的按键被按下。
4. 综合2和3可得出具体哪个按键被按下。
5. 6列的GPIO由方向为in的输入口转为eint外部中断功能,等待下一次中断
关键是在步骤3里,6列的GPIO原来是eint外部中断口,要转成in输入口读取引脚状态,中断处理完以后还要转回eint外部中断,这样允许吗?会不会影响其他的寄存器工作呢?
GPIO口在设成外部中断功能的情况下能否通过寄存器读取外部引脚的电平?如果能的话就不用转来转去了。谢谢
|
|