自学2812 写了一个矩键扫描的程序 检测按键 然后用数码管显示 自己一步一步运行的时候 没有问题 但是全速运行的时候 按下去某个键 只能检测出所在行 检测不出所在列 就是不更新列值 一直是上次的列值 求解
- Uint16 Scan_KEY(void)
- {
- static Uint16 keyx,key;
- Uint16 keyy;
- Uint16 temp;
- RESET_ALL();
- temp=S1&0x0038;
- if(temp!=0x0038)
- {
- DSP28x_usDelay(5000);
- if(temp!=0x0038)
- {
- switch(temp)
- {
- case 0x18: keyx=0;break;
- case 0x28: keyx=1;break;
- case 0x30: keyx=2;break;
- default:break;
- }
- SET0;
- temp=S1&0x0038;
- if(temp==0x38)
- keyy=2;
- RESET_ALL();
- SET1;
- temp=S1&0x0038;
- if(temp==0x38)
- keyy=1;
- RESET_ALL();
- SET2;
- temp=S1&0x0038;
- if(temp==0x38)
- keyy=0;
- RESET_ALL();
- key=Keys[keyx][keyy];
- return key;
- keyx=0;
- keyy=0;
- }
- }
- }
|