Advertisement
Guest User

Untitled

a guest
Mar 16th, 2019
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.34 KB | None | 0 0
  1. uint8_t lastkey = 0;
  2.  
  3. static char* _qwertzuiop = "qwertyuiop";
  4. static char* _asdfghjkl = "asdfghjkl";
  5. static char* _yxcvbnm = "zxcvbnm";
  6. static char* _num = "123456789";
  7.  
  8. static char* _caps_qwertzuiop = "QWERTYUIOP";
  9. static char* _caps_asdfghjkl = "ASDFGHJKL";
  10. static char* _caps_yxcvbnm = "ZXCVBNM";
  11.  
  12. uint8_t keyboard_to_ascii(uint8_t key) {
  13.     if(key == ENTER_PRESSED) return '\n';
  14.     if(key == SPACE_PRESSED) return ' ';
  15.     if(key == ENTER_PRESSED) return '\r';
  16.     if(key == POINT_RELEASED) return '.';
  17.     if(key == SLASH_RELEASED) return '/';
  18.     if(key == ZERO_PRESSED) return '0';
  19.     if(key >= ONE_PRESSED && key <= NINE_PRESSED)
  20.         return _num[key - ONE_PRESSED];
  21.     if(key >= Q_PRESSED && key <= ENTER_PRESSED)
  22.     {
  23.         if (lastkey == LSHIFT_PRESSED || lastkey == RSHIFT_PRESSED) {
  24.             return _caps_qwertzuiop[key - Q_PRESSED];
  25.         } else {
  26.             return _qwertzuiop[key - Q_PRESSED];
  27.         }
  28.     } else if(key >= A_PRESSED && key <= L_PRESSED)
  29.     {
  30.         if (lastkey == LSHIFT_PRESSED || lastkey == RSHIFT_PRESSED) {
  31.             return _caps_asdfghjkl[key - A_PRESSED];
  32.         } else {
  33.             return _asdfghjkl[key - A_PRESSED];
  34.         }
  35.     } else if(key >= Z_PRESSED && key <= M_PRESSED)
  36.     {
  37.         if (lastkey == LSHIFT_PRESSED || lastkey == RSHIFT_PRESSED) {
  38.             return _caps_yxcvbnm[key - Z_PRESSED];
  39.         } else {
  40.             return _yxcvbnm[key - Z_PRESSED];
  41.         }
  42.     }
  43.    
  44.     lastkey = key;
  45.  
  46.     return 0;
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement