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} };
Did you look in your hex code for '8uüv.' ? Was it there before '7rsşt'? The micro cannot "find" the keys (8, ...). What did it find? Do you get overlay errors when you link?
Jon, Yes, I checked the matrix with debugger and 8uü were there before 7... And, with debugger there was not any problem. It works fine in the debugger.
and, yes there was no compiler/linker warnings. Also, I disabled overlaying using nooverlay flag of the linker.
Interesting, can I see the good and bad code?
Jon, I know that it sounds weird. And in fact there is no good code. :) The function may be a bit long to post here, so I can email it to you if you send an email to bahrio at yahoo dot com.