Optimized polling keybolard reading
Embed:
(wiki syntax)
Show/hide line numbers
Keypad3x4polling.cpp
00001 #include "mbed.h" 00002 #include "Keypad3x4polling.h" 00003 00004 using namespace mbed; 00005 00006 Keypad::Keypad(PinName col1,PinName col2,PinName col3,PinName row1,PinName row2,PinName row3,PinName row4):_cols(col1,col2,col3),_rows(row1,row2,row3,row4) 00007 { 00008 _cols.mode(PullUp); 00009 _rows.write(0); 00010 } 00011 char Keypad::read() 00012 { 00013 char key = 10; 00014 _rows.write(14);//1110b 00015 switch(_cols) 00016 { 00017 case 3: key = '3'; break;//011b 00018 case 5: key = '2'; break;//101b 00019 case 6: key = '1'; break;//110b 00020 } 00021 _rows.write(13);//1101b 00022 switch(_cols) 00023 { 00024 case 3: key = '6'; break; 00025 case 5: key = '5'; break; 00026 case 6: key = '4'; break; 00027 } 00028 _rows.write(11);//1011b 00029 switch(_cols) 00030 { 00031 case 3: key = '9'; break; 00032 case 5: key = '8'; break; 00033 case 6: key = '7'; break; 00034 } 00035 _rows.write(7);//0111b 00036 switch(_cols) 00037 { 00038 case 3: key = '#'; break; 00039 case 5: key = '0'; break; 00040 case 6: key = '*'; break; 00041 } 00042 return key; 00043 }
Generated on Thu Jul 28 2022 08:27:18 by 1.7.2