Browse Source

stdio按键驱动完成

bfysop-v2
mr.zhangsan 1 year ago
parent
commit
37a6e348f0
  1. 3
      source/.vscode/settings.json
  2. 123
      source/bsp/bsp_key.c

3
source/.vscode/settings.json

@ -6,6 +6,7 @@
"type.h": "c", "type.h": "c",
"main.h": "c", "main.h": "c",
"bsp_config_delay.h": "c", "bsp_config_delay.h": "c",
"bsp_key.h": "c" "bsp_key.h": "c",
"stc_macro.H": "cpp"
} }
} }

123
source/bsp/bsp_key.c

@ -7,12 +7,15 @@ U8 bsp_key_init(void)
D_stdIO_P1(BITN7); D_stdIO_P1(BITN7);
D_stdIO_P0(BITN6); D_stdIO_P0(BITN6);
D_stdIO_P4(BITN3); D_stdIO_P4(BITN3);
D_HighR_P1(BITN0);
D_HighR_P0(BITN7); D_stdIO_P1(BITN0);
D_HighR_P1(BITN3); D_stdIO_P0(BITN7);
D_HighR_P2(BITN0); D_stdIO_P1(BITN3);
D_stdIO_P2(BITN0);
//初始化为高电平
KR1 = KR2 = KR3 = KR4 = 1; KR1 = KR2 = KR3 = KR4 = 1;
//初始化为高电平
KC1 = KC2 = KC3 = KC4 = 1; KC1 = KC2 = KC3 = KC4 = 1;
return 0; return 0;
@ -20,19 +23,19 @@ U8 bsp_key_init(void)
void scan_row(U8 r) void scan_row(U8 r)
{ {
KR1 = 0; KR1 = 1;
KR2 = 0; KR2 = 1;
KR3 = 0; KR3 = 1;
KR4 = 0; KR4 = 1;
switch(r){ switch(r){
case 1: case 1:
KR1 = 1;break; KR1 = 0;break;
case 2: case 2:
KR2 = 1;break; KR2 = 0;break;
case 3: case 3:
KR3 = 1;break; KR3 = 0;break;
case 4: case 4:
KR4 = 1;break; KR4 = 0;break;
default: default:
break; break;
} }
@ -42,45 +45,45 @@ U8 scan_col(U8 c)
{ {
if(c == 1) if(c == 1)
{ {
if(KC1 == 1) if(KC1 == 0)
{ {
delayInMs(10); delayInMs(10);
if(KC1 == 1) if(KC1 == 0)
{ {
while(KC1 == 1); while(KC1 == 0);
return 1; return 1;
} }
} }
} }
else if(c == 2){ else if(c == 2){
if(KC2 == 1) if(KC2 == 0)
{ {
delayInMs(10); delayInMs(10);
if(KC2 == 1) if(KC2 == 0)
{ {
while(KC2 == 1); while(KC2 == 0);
return 1; return 1;
} }
} }
} }
else if(c == 3){ else if(c == 3){
if(KC3 == 1) if(KC3 == 0)
{ {
delayInMs(10); delayInMs(10);
if(KC3 == 1) if(KC3 == 0)
{ {
while(KC3 == 1); while(KC3 == 0);
return 1; return 1;
} }
} }
} }
else if(c == 4){ else if(c == 4){
if(KC4 == 1) if(KC4 == 0)
{ {
delayInMs(10); delayInMs(10);
if(KC4 == 1) if(KC4 == 0)
{ {
while(KC4 == 1); while(KC4 == 0);
return 1; return 1;
} }
} }
@ -106,44 +109,44 @@ U8 bsp_key_scan(void)
return 3; return 3;
} }
// //扫描第2行 //扫描第2行
// scan_row(2); scan_row(2);
// if(scan_col(1) > 0){ if(scan_col(1) > 0){
// key = 4; key = 4;
// } }
// if(scan_col(2) > 0){ if(scan_col(2) > 0){
// key = 5; key = 5;
// } }
// if(scan_col(3) > 0){ if(scan_col(3) > 0){
// key = 6; key = 6;
// } }
// if(scan_col(4) > 0){ if(scan_col(4) > 0){
// key = 7; key = 7;
// } }
// //扫描第3行 //扫描第3行
// scan_row(3); scan_row(3);
// if(scan_col(1) > 0){ if(scan_col(1) > 0){
// key = 8; key = 8;
// } }
// if(scan_col(2) > 0){ if(scan_col(2) > 0){
// key = 9; key = 9;
// } }
// if(scan_col(3) > 0){ if(scan_col(3) > 0){
// key = 10; key = 10;
// } }
// if(scan_col(4) > 0){ if(scan_col(4) > 0){
// key = 11; key = 11;
// } }
// //扫描第4行 //扫描第4行
// scan_row(4); scan_row(4);
// if(scan_col(1) > 0){ if(scan_col(1) > 0){
// key = 12; key = 12;
// } }
// if(scan_col(2) > 0){ if(scan_col(2) > 0){
// key = 13; key = 13;
// } }
// if(scan_col(KC3) > 0){ // if(scan_col(KC3) > 0){
// key = 14; // key = 14;
// } // }

Loading…
Cancel
Save