We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
I have a matrix for the keyboard layout in my program as follows:
code unsigned char buttons[BUTTON_COUNT][KEY_TABLE_WIDTH] = { {'8', 'u', 'ü', 'v', EMPTY_CODE}, {'7', 'r', 's', 'ş', 't'}, {'6', 'ö', 'p', 'q', EMPTY_CODE}, {'5', 'l', 'm', 'n', 'o'}, {'1', 'a', 'b', 'c', 'ç'}, {'2', 'd', 'e', 'f', EMPTY_CODE}, {'3', 'g', 'ğ', 'h', 'ı'}, {'4', 'i', 'j', 'k', EMPTY_CODE}, {'9', 'w', 'x', 'y', 'z'}, {'0', ' ', ':', '-', EMPTY_CODE}, {RIGHT_ARROW,EMPTY_CODE, EMPTY_CODE, EMPTY_CODE, EMPTY_CODE}, {LEFT_ARROW, EMPTY_CODE, EMPTY_CODE, EMPTY_CODE, EMPTY_CODE}, {ESC, EMPTY_CODE, EMPTY_CODE, EMPTY_CODE, EMPTY_CODE}, {DEL, EMPTY_CODE, EMPTY_CODE, EMPTY_CODE, EMPTY_CODE}, {CAPS, EMPTY_CODE, EMPTY_CODE, EMPTY_CODE, EMPTY_CODE}, {ENTER, EMPTY_CODE, EMPTY_CODE, EMPTY_CODE, EMPTY_CODE} };
As a test, I tried this:
#define EMPTY_CODE 'Z' #define RIGHT_ARROW 'R' #define LEFT_ARROW 'L' #define ESC 'E' #define DEL 'D' #define CAPS 'C' #define ENTER 'E' #define BUTTON_COUNT 16 #define KEY_TABLE_WIDTH 5 void list_buttons( void ) { unsigned char row; unsigned char col; for( row = 0; row < BUTTON_COUNT; ++row ) { for( col = 0; col < KEY_TABLE_WIDTH; ++col ) { printf( "buttons[%2d][%2d] = '%c'\n", (unsigned int)row, (unsigned int)col, buttons[row][col] ); } printf( "\n" ); } }
buttons[ 0][ 0] = '8' buttons[ 0][ 1] = 'u' buttons[ 0][ 2] = 'ü' buttons[ 0][ 3] = 'v' buttons[ 0][ 4] = 'Z' buttons[ 1][ 0] = '7' buttons[ 1][ 1] = 'r' buttons[ 1][ 2] = 's' buttons[ 1][ 3] = 's' buttons[ 1][ 4] = 't' buttons[ 2][ 0] = '6' buttons[ 2][ 1] = 'ö' buttons[ 2][ 2] = 'p' buttons[ 2][ 3] = 'q' buttons[ 2][ 4] = 'Z' buttons[ 3][ 0] = '5' buttons[ 3][ 1] = 'l' buttons[ 3][ 2] = 'm' buttons[ 3][ 3] = 'n' buttons[ 3][ 4] = 'o' etc