#include "leds_matrix.h" char* get_button(int x) { switch(x) { case 0: return "\x01\x00"; case 1: return "\x02\x00"; case 2: return "\x04\x00"; case 3: return "\x08\x00"; case 4: return "\x10\x00"; case 5: return "\x20\x00"; case 6: return "\x40\x00"; case 7: return "\x80\x00"; case 8: return "\x00\x01"; case 9: return "\x00\x02"; } } void set_matrix(char* message,int x,int y) { switch(y) { case 0: led_enable(message, SELECT_1, get_button(x)); break; case 1: led_enable(message, UPPER_1, get_button(x)); break; case 2: led_enable(message, LOWER_1, get_button(x)); break; case 3: led_enable(message, SELECT_11, get_button(x)); break; case 4: led_enable(message, UPPER_11, get_button(x)); break; case 5: led_enable(message, LOWER_11, get_button(x)); break; } } void set_letter(char* message,char c1, char c2) { char *letter; int x,y; letter=get_letter(c1); for(y=0;y<3;y++) { for(x=0;x<10;x++) { if(letter[y*10+x]=='1') { msg("act led",LDEBUG,LLEVEL); set_matrix(message,x,y); } } } letter=get_letter(c2); for(y=0;y<3;y++) { for(x=0;x<10;x++) { if(letter[y*10+x]=='1') { msg("act led",LDEBUG,LLEVEL); set_matrix(message,x,y+3); } } } } char* get_letter(char c) { switch(c) { case 'a': case 'A': return "111111110000000100111111111100"; case 'u': case 'U': return "011111111110000000000111111111"; case 't': case 'T': return "000000000111111111110000000001"; case 'o': case 'O': return "011111111010000000010111111110"; case 'p': case 'P': return "111111111100000100010000001110"; case 'i': case 'I': return "000000000011111111110000000000"; case ' ': return "000000000000000000000000000000"; case 'v': case 'V': return "000111111111100000000001111111"; case 'e': case 'E': return "111111111110000100011000010001"; case 'c': case 'C': return "011111111010000000010100000010"; case 'r': case 'R': return "111111111100001100011111001110"; case 'h': case 'H': return "111111111100000100001111111111"; case 'k': case 'K': return "111111111100001110001111000111"; case 'd': case 'D': return "111111111110000000010111111110"; case 'b': case 'B': return "111111111110001100010111001110"; case 'y': case 'Y': return "000000111111111100000000001111"; case 'm': case 'M': return "111111100100000001101111111001"; case 'x': case 'X': return "111000011100011110001110000111"; case 's': case 'S': return "011000111010000100010111100010"; case '.': return "000000000010000000000000000000"; } }