A keypad library used in one of my projects.

Committer:
tgrgic1
Date:
Mon May 03 21:40:24 2021 +0000
Revision:
0:1ae25267abc0
Child:
1:b9458512717a
Moja keypad biblioteka

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tgrgic1 0:1ae25267abc0 1 #include "Keypad.h"
tgrgic1 0:1ae25267abc0 2 #include "mbed.h"
tgrgic1 0:1ae25267abc0 3
tgrgic1 0:1ae25267abc0 4 Keypad::Keypad(PinName row1, PinName row2, PinName row3, PinName row4,PinName col1, PinName col2, PinName col3, PinName col4)
tgrgic1 0:1ae25267abc0 5 : _col(col1,col2,col3,col4), _row(row1,row2,row3,row4){}
tgrgic1 0:1ae25267abc0 6
tgrgic1 0:1ae25267abc0 7 Timer t;
tgrgic1 0:1ae25267abc0 8
tgrgic1 0:1ae25267abc0 9 void Keypad::visokoStanje()
tgrgic1 0:1ae25267abc0 10 {
tgrgic1 0:1ae25267abc0 11 _col = 0b1111;
tgrgic1 0:1ae25267abc0 12 }
tgrgic1 0:1ae25267abc0 13
tgrgic1 0:1ae25267abc0 14 void Keypad::prviStupac()
tgrgic1 0:1ae25267abc0 15 {
tgrgic1 0:1ae25267abc0 16 _col = 0b1110;
tgrgic1 0:1ae25267abc0 17 }
tgrgic1 0:1ae25267abc0 18
tgrgic1 0:1ae25267abc0 19 void Keypad::drugiStupac()
tgrgic1 0:1ae25267abc0 20 {
tgrgic1 0:1ae25267abc0 21 _col = 0b1101;
tgrgic1 0:1ae25267abc0 22 }
tgrgic1 0:1ae25267abc0 23
tgrgic1 0:1ae25267abc0 24 void Keypad::treciStupac()
tgrgic1 0:1ae25267abc0 25 {
tgrgic1 0:1ae25267abc0 26 _col = 0b1011;
tgrgic1 0:1ae25267abc0 27 }
tgrgic1 0:1ae25267abc0 28
tgrgic1 0:1ae25267abc0 29 void Keypad::cetvrtiStupac()
tgrgic1 0:1ae25267abc0 30 {
tgrgic1 0:1ae25267abc0 31 _col = 0b0111;
tgrgic1 0:1ae25267abc0 32 }
tgrgic1 0:1ae25267abc0 33
tgrgic1 0:1ae25267abc0 34 char Keypad::keyscan()
tgrgic1 0:1ae25267abc0 35 {
tgrgic1 0:1ae25267abc0 36 t.stop();
tgrgic1 0:1ae25267abc0 37 t.reset();
tgrgic1 0:1ae25267abc0 38 char out = 'a';
tgrgic1 0:1ae25267abc0 39 bool state = true;
tgrgic1 0:1ae25267abc0 40 visokoStanje();
tgrgic1 0:1ae25267abc0 41 wait_ms(5);
tgrgic1 0:1ae25267abc0 42 t.start();
tgrgic1 0:1ae25267abc0 43
tgrgic1 0:1ae25267abc0 44 while(state == true && t.read()<30) {
tgrgic1 0:1ae25267abc0 45 prviStupac();
tgrgic1 0:1ae25267abc0 46 wait_ms(5);
tgrgic1 0:1ae25267abc0 47 if(_row == 0b1110) {
tgrgic1 0:1ae25267abc0 48 out = '1';
tgrgic1 0:1ae25267abc0 49 state = false;
tgrgic1 0:1ae25267abc0 50 } else if (_row == 0b1101) {
tgrgic1 0:1ae25267abc0 51 out = '4';
tgrgic1 0:1ae25267abc0 52 state = false;
tgrgic1 0:1ae25267abc0 53 } else if (_row == 0b1011) {
tgrgic1 0:1ae25267abc0 54 out = '7';
tgrgic1 0:1ae25267abc0 55 state = false;
tgrgic1 0:1ae25267abc0 56 } else if (_row == 0b0111) {
tgrgic1 0:1ae25267abc0 57 out = 'b';
tgrgic1 0:1ae25267abc0 58 state = false;
tgrgic1 0:1ae25267abc0 59 }
tgrgic1 0:1ae25267abc0 60
tgrgic1 0:1ae25267abc0 61 drugiStupac();
tgrgic1 0:1ae25267abc0 62 wait_ms(5);
tgrgic1 0:1ae25267abc0 63 if(_row == 0b1110) {
tgrgic1 0:1ae25267abc0 64 out = '2';
tgrgic1 0:1ae25267abc0 65 state = false;
tgrgic1 0:1ae25267abc0 66 } else if (_row == 0b1101) {
tgrgic1 0:1ae25267abc0 67 out = '5';
tgrgic1 0:1ae25267abc0 68 state = false;
tgrgic1 0:1ae25267abc0 69 } else if (_row == 0b1011) {
tgrgic1 0:1ae25267abc0 70 out = '8';
tgrgic1 0:1ae25267abc0 71 state = false;
tgrgic1 0:1ae25267abc0 72 } else if (_row == 0b0111) {
tgrgic1 0:1ae25267abc0 73 out = '0';
tgrgic1 0:1ae25267abc0 74 state = false;
tgrgic1 0:1ae25267abc0 75 }
tgrgic1 0:1ae25267abc0 76
tgrgic1 0:1ae25267abc0 77 treciStupac();
tgrgic1 0:1ae25267abc0 78 wait_ms(5);
tgrgic1 0:1ae25267abc0 79 if(_row == 0b1110) {
tgrgic1 0:1ae25267abc0 80 out = '3';
tgrgic1 0:1ae25267abc0 81 state = false;
tgrgic1 0:1ae25267abc0 82 } else if (_row == 0b1101) {
tgrgic1 0:1ae25267abc0 83 out = '6';
tgrgic1 0:1ae25267abc0 84 state = false;
tgrgic1 0:1ae25267abc0 85 } else if (_row == 0b1011) {
tgrgic1 0:1ae25267abc0 86 out = '9';
tgrgic1 0:1ae25267abc0 87 state = false;
tgrgic1 0:1ae25267abc0 88 } else if (_row == 0b0111) {
tgrgic1 0:1ae25267abc0 89 state = false;
tgrgic1 0:1ae25267abc0 90 return out;
tgrgic1 0:1ae25267abc0 91 }
tgrgic1 0:1ae25267abc0 92 }
tgrgic1 0:1ae25267abc0 93
tgrgic1 0:1ae25267abc0 94 if(t.read()>=29){
tgrgic1 0:1ae25267abc0 95 t.stop();
tgrgic1 0:1ae25267abc0 96 t.reset();
tgrgic1 0:1ae25267abc0 97 out ='c';
tgrgic1 0:1ae25267abc0 98 return out;
tgrgic1 0:1ae25267abc0 99 }
tgrgic1 0:1ae25267abc0 100
tgrgic1 0:1ae25267abc0 101 visokoStanje();
tgrgic1 0:1ae25267abc0 102 return out;
tgrgic1 0:1ae25267abc0 103 }
tgrgic1 0:1ae25267abc0 104
tgrgic1 0:1ae25267abc0 105