Banana pipe tissue nose pizza pizza pizza

Committer:
mygore
Date:
Mon Sep 28 18:46:41 2020 +0000
Revision:
0:0c232b9b32bb
Lab4 pizza

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mygore 0:0c232b9b32bb 1 #include "mbed.h"
mygore 0:0c232b9b32bb 2
mygore 0:0c232b9b32bb 3 DigitalOut ROW1(PA_0);
mygore 0:0c232b9b32bb 4 DigitalOut ROW2(PA_5);
mygore 0:0c232b9b32bb 5 DigitalOut ROW3(PA_1);
mygore 0:0c232b9b32bb 6 DigitalOut ROW4(PA_2);
mygore 0:0c232b9b32bb 7 DigitalOut led1(LED1);
mygore 0:0c232b9b32bb 8
mygore 0:0c232b9b32bb 9 DigitalIn COL1(PA_3, PullUp);
mygore 0:0c232b9b32bb 10 DigitalIn COL2(PB_6, PullUp);
mygore 0:0c232b9b32bb 11 DigitalIn COL3(PB_7, PullUp);
mygore 0:0c232b9b32bb 12 DigitalIn COL4(PD_0, PullUp);
mygore 0:0c232b9b32bb 13
mygore 0:0c232b9b32bb 14 unsigned char keypad_scan(void);
mygore 0:0c232b9b32bb 15 int col_scan(void);
mygore 0:0c232b9b32bb 16
mygore 0:0c232b9b32bb 17 int main()
mygore 0:0c232b9b32bb 18 {
mygore 0:0c232b9b32bb 19 int row, col;
mygore 0:0c232b9b32bb 20 while(1)
mygore 0:0c232b9b32bb 21 {
mygore 0:0c232b9b32bb 22 unsigned char key1_map = keypad_scan();
mygore 0:0c232b9b32bb 23 printf("%c", key1_map);
mygore 0:0c232b9b32bb 24 }
mygore 0:0c232b9b32bb 25 }
mygore 0:0c232b9b32bb 26
mygore 0:0c232b9b32bb 27 unsigned char keypad_scan(void)
mygore 0:0c232b9b32bb 28 {
mygore 0:0c232b9b32bb 29 unsigned char key_map [4][4] =
mygore 0:0c232b9b32bb 30 {
mygore 0:0c232b9b32bb 31 {'1', '2', '3','A'},
mygore 0:0c232b9b32bb 32 {'4', '5', '6', 'B'},
mygore 0:0c232b9b32bb 33 {'7', '8', '9', 'C'},
mygore 0:0c232b9b32bb 34 {'*', '0', '#', 'D'},
mygore 0:0c232b9b32bb 35 };
mygore 0:0c232b9b32bb 36 int row, col;
mygore 0:0c232b9b32bb 37 unsigned char key = 0xFF;
mygore 0:0c232b9b32bb 38
mygore 0:0c232b9b32bb 39 for(row =0; row<4; row++)
mygore 0:0c232b9b32bb 40 {
mygore 0:0c232b9b32bb 41 ROW1 = 1;
mygore 0:0c232b9b32bb 42 ROW2 = 1;
mygore 0:0c232b9b32bb 43 ROW3 = 1;
mygore 0:0c232b9b32bb 44 ROW4 = 1;
mygore 0:0c232b9b32bb 45 if(row == 0)
mygore 0:0c232b9b32bb 46 {
mygore 0:0c232b9b32bb 47 ROW1 = 0;
mygore 0:0c232b9b32bb 48 wait(0.005);
mygore 0:0c232b9b32bb 49 col = col_scan();
mygore 0:0c232b9b32bb 50 wait(0.005);
mygore 0:0c232b9b32bb 51 }
mygore 0:0c232b9b32bb 52 else if(row == 1)
mygore 0:0c232b9b32bb 53 {
mygore 0:0c232b9b32bb 54 ROW2 = 0;
mygore 0:0c232b9b32bb 55 wait(0.005);
mygore 0:0c232b9b32bb 56 col = col_scan();
mygore 0:0c232b9b32bb 57 wait(0.005);
mygore 0:0c232b9b32bb 58 }
mygore 0:0c232b9b32bb 59 else if(row == 2)
mygore 0:0c232b9b32bb 60 {
mygore 0:0c232b9b32bb 61 ROW3 = 0;
mygore 0:0c232b9b32bb 62 wait(0.005);
mygore 0:0c232b9b32bb 63 col = col_scan();
mygore 0:0c232b9b32bb 64 wait(0.005);
mygore 0:0c232b9b32bb 65 }
mygore 0:0c232b9b32bb 66 else if(row == 3)
mygore 0:0c232b9b32bb 67 {
mygore 0:0c232b9b32bb 68 ROW4 = 0;
mygore 0:0c232b9b32bb 69 wait(0.005);
mygore 0:0c232b9b32bb 70 col = col_scan();
mygore 0:0c232b9b32bb 71 wait(0.005);
mygore 0:0c232b9b32bb 72 }
mygore 0:0c232b9b32bb 73 else
mygore 0:0c232b9b32bb 74 {
mygore 0:0c232b9b32bb 75 return key;
mygore 0:0c232b9b32bb 76 }
mygore 0:0c232b9b32bb 77 }
mygore 0:0c232b9b32bb 78 if(col == 0 || col == 1 || col == 2 || col == 3)
mygore 0:0c232b9b32bb 79 {
mygore 0:0c232b9b32bb 80 return key_map[row][col];
mygore 0:0c232b9b32bb 81 }
mygore 0:0c232b9b32bb 82 return key;
mygore 0:0c232b9b32bb 83 }
mygore 0:0c232b9b32bb 84
mygore 0:0c232b9b32bb 85 int col_scan(void)
mygore 0:0c232b9b32bb 86 {
mygore 0:0c232b9b32bb 87 unsigned char key = 0xFF;
mygore 0:0c232b9b32bb 88 if(COL1 == 0)
mygore 0:0c232b9b32bb 89 {
mygore 0:0c232b9b32bb 90 return 0;
mygore 0:0c232b9b32bb 91 }
mygore 0:0c232b9b32bb 92 else if(COL2 == 0)
mygore 0:0c232b9b32bb 93 {
mygore 0:0c232b9b32bb 94 return 1;
mygore 0:0c232b9b32bb 95 }
mygore 0:0c232b9b32bb 96 else if(COL3 == 0)
mygore 0:0c232b9b32bb 97 {
mygore 0:0c232b9b32bb 98 return 2;
mygore 0:0c232b9b32bb 99 }
mygore 0:0c232b9b32bb 100 else if(COL4 == 0)
mygore 0:0c232b9b32bb 101 {
mygore 0:0c232b9b32bb 102 return 3;
mygore 0:0c232b9b32bb 103 }
mygore 0:0c232b9b32bb 104 else
mygore 0:0c232b9b32bb 105 {
mygore 0:0c232b9b32bb 106 return key;
mygore 0:0c232b9b32bb 107 }
mygore 0:0c232b9b32bb 108 }