Generates Braille Text and has it display on an RGB LED Matrix

Dependencies:   mbed

Fork of LEDmatrix by Neel Shah

Revision:
1:0ca4d6b1e3d7
Parent:
0:ad2e87d4b20e
--- a/main.cpp	Sat Apr 20 20:05:35 2013 +0000
+++ b/main.cpp	Fri May 10 17:34:39 2013 +0000
@@ -8,93 +8,401 @@
 DigitalOut cs1(p18);
 
 /*volatile uint8_t arrow_green_right[] = {
-    0, 0, 0, 1, 1, 1, 0, 0,    
-    0, 0, 0, 1, 1, 1, 0, 0, 
-    0, 0, 0, 1, 1, 1, 0, 0, 
-    0, 0, 0, 1, 1, 1, 0, 0,    
-    0, 0, 0, 1, 1, 1, 0, 0, 
-    0, 1, 0, 1, 1, 1, 0, 1, 
-    0, 0, 1, 1, 1, 1, 1, 0, 
-    0, 0, 0, 1, 1, 1, 0, 0, 
+    0, 0, 0, 1, 1, 1, 0, 0,
+    0, 0, 0, 1, 1, 1, 0, 0,
+    0, 0, 0, 1, 1, 1, 0, 0,
+    0, 0, 0, 1, 1, 1, 0, 0,
+    0, 0, 0, 1, 1, 1, 0, 0,
+    0, 1, 0, 1, 1, 1, 0, 1,
+    0, 0, 1, 1, 1, 1, 1, 0,
+    0, 0, 0, 1, 1, 1, 0, 0,
 };*/
 
 volatile uint8_t arrow_red_left[] = {
-    0, 0, 0, 224, 224, 224, 0, 0,    
-    0, 0, 224, 224, 224, 224, 224, 0, 
-    0, 224, 0, 224, 224, 224, 0, 224, 
-    0, 0, 0, 224, 224, 224, 0, 0,    
-    0, 0, 0, 224, 224, 224, 0, 0, 
-    0, 0, 0, 224, 224, 224, 0, 0, 
-    0, 0, 0, 224, 224, 224, 0, 0, 
-    0, 0, 0, 224, 224, 224, 0, 0, 
+    0, 0, 0, 224, 224, 224, 0, 0,
+    0, 0, 224, 224, 224, 224, 224, 0,
+    0, 224, 0, 224, 224, 224, 0, 224,
+    0, 0, 0, 224, 224, 224, 0, 0,
+    0, 0, 0, 224, 224, 224, 0, 0,
+    0, 0, 0, 224, 224, 224, 0, 0,
+    0, 0, 0, 224, 224, 224, 0, 0,
+    0, 0, 0, 224, 224, 224, 0, 0,
 };
 
 volatile uint8_t arrow_blue_left[] = {
-    0, 0, 0, 3, 3, 3, 0, 0,    
-    0, 0, 3, 3, 3, 3, 3, 0, 
-    0, 3, 0, 3, 3, 3, 0, 3, 
-    0, 0, 0, 3, 3, 3, 0, 0,    
-    0, 0, 0, 3, 3, 3, 0, 0, 
-    0, 0, 0, 3, 3, 3, 0, 0, 
-    0, 0, 0, 3, 3, 3, 0, 0, 
-    0, 0, 0, 3, 3, 3, 0, 0, 
+    0, 0, 0, 3, 3, 3, 0, 0,
+    0, 0, 3, 3, 3, 3, 3, 0,
+    0, 3, 0, 3, 3, 3, 0, 3,
+    0, 0, 0, 3, 3, 3, 0, 0,
+    0, 0, 0, 3, 3, 3, 0, 0,
+    0, 0, 0, 3, 3, 3, 0, 0,
+    0, 0, 0, 3, 3, 3, 0, 0,
+    0, 0, 0, 3, 3, 3, 0, 0,
 };
 
 volatile uint8_t arrow_white_left[] = {
-    0, 0, 0, 95, 95, 95, 0, 0,    
-    0, 0, 95, 95, 95, 95, 95, 0, 
-    0, 95, 0, 95, 95, 95, 0, 95, 
-    0, 0, 0, 95, 95, 95, 0, 0,    
-    0, 0, 0, 95, 95, 95, 0, 0, 
-    0, 0, 0, 95, 95, 95, 0, 0, 
-    0, 0, 0, 95, 95, 95, 0, 0, 
-    0, 0, 0, 95, 95, 95, 0, 0, 
+    0, 0, 0, 95, 95, 95, 0, 0,
+    0, 0, 95, 95, 95, 95, 95, 0,
+    0, 95, 0, 95, 95, 95, 0, 95,
+    0, 0, 0, 95, 95, 95, 0, 0,
+    0, 0, 0, 95, 95, 95, 0, 0,
+    0, 0, 0, 95, 95, 95, 0, 0,
+    0, 0, 0, 95, 95, 95, 0, 0,
+    0, 0, 0, 95, 95, 95, 0, 0,
 };
 
 volatile uint8_t arrow_white_up[] = {
-    0, 0, 0, 0, 0, 0, 0, 0,    
-    0, 0, 0, 0, 0, 95, 0, 0, 
-    0, 0, 0, 0, 0, 0, 95, 0, 
-    0, 95, 95, 95, 95, 95, 95, 95,    
-    0, 95, 95, 95, 95, 95, 95, 95, 
-    95, 95, 95, 95, 95, 95, 95, 95, 
-    0, 0, 0, 0, 0, 0, 95, 0, 
-    0, 0, 0, 0, 0, 95, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 95, 0, 0,
+    0, 0, 0, 0, 0, 0, 95, 0,
+    0, 95, 95, 95, 95, 95, 95, 95,
+    0, 95, 95, 95, 95, 95, 95, 95,
+    95, 95, 95, 95, 95, 95, 95, 95,
+    0, 0, 0, 0, 0, 0, 95, 0,
+    0, 0, 0, 0, 0, 95, 0, 0,
 };
 
 volatile uint8_t arrow_blue_up[] = {
-    0, 0, 0, 0, 0, 0, 0, 0,    
-    0, 0, 0, 0, 0, 3, 0, 0, 
-    0, 0, 0, 0, 0, 0, 3, 0, 
-    0, 3, 3, 3, 3, 3, 3, 3,    
-    0, 3, 3, 3, 3, 3, 3, 3, 
-    3, 3, 3, 3, 3, 3, 3, 3, 
-    0, 0, 0, 0, 0, 0, 3, 0, 
-    0, 0, 0, 0, 0, 3, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 3, 0, 0,
+    0, 0, 0, 0, 0, 0, 3, 0,
+    0, 3, 3, 3, 3, 3, 3, 3,
+    0, 3, 3, 3, 3, 3, 3, 3,
+    3, 3, 3, 3, 3, 3, 3, 3,
+    0, 0, 0, 0, 0, 0, 3, 0,
+    0, 0, 0, 0, 0, 3, 0, 0,
 };
 
 volatile uint8_t arrow_white_down[] = {
-     0, 0, 0, 0, 95, 0, 0, 0,   
-     0, 0, 0, 95, 0, 0, 0, 0,
-     0, 0, 95, 95, 95, 95, 95, 95,
-     95, 95, 95, 95, 95, 95, 95, 95,    
-     95, 0, 95, 95, 95, 95, 95, 95,
-     95, 0, 0, 95, 0, 0, 0, 0,
-     0, 0, 0, 0, 95, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 95, 0, 0, 0,
+    0, 0, 0, 95, 0, 0, 0, 0,
+    0, 0, 95, 95, 95, 95, 95, 95,
+    95, 95, 95, 95, 95, 95, 95, 95,
+    95, 0, 95, 95, 95, 95, 95, 95,
+    95, 0, 0, 95, 0, 0, 0, 0,
+    0, 0, 0, 0, 95, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
 };
 
 volatile uint8_t arrow_blue_down[] = {
-     0, 0, 0, 0, 3, 0, 0, 0,   
-     0, 0, 0, 3, 0, 0, 0, 0,
-     0, 0, 3, 3, 3, 3, 3, 3,
-     3, 3, 3, 3, 3, 3, 3, 3,    
-     3, 0, 3, 3, 3, 3, 3, 3,
-     3, 0, 0, 3, 0, 0, 0, 0,
-     0, 0, 0, 0, 3, 0, 0, 0,
-     0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 3, 0, 0, 0,
+    0, 0, 0, 3, 0, 0, 0, 0,
+    0, 0, 3, 3, 3, 3, 3, 3,
+    3, 3, 3, 3, 3, 3, 3, 3,
+    3, 0, 3, 3, 3, 3, 3, 3,
+    3, 0, 0, 3, 0, 0, 0, 0,
+    0, 0, 0, 0, 3, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+};
+
+volatile uint8_t smiley_face[] = {
+    0, 0, 0, 95, 95, 95, 0, 0,
+    0, 0, 95, 95, 0, 95, 95, 0,
+    0, 0, 95, 95, 0, 95, 95, 0,
+    0, 0, 95, 95, 0, 0, 0, 0,
+    0, 0, 0, 95, 95, 0, 0, 0,
+    0, 0, 0, 95, 95, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 95, 95, 0, 0, 0,
+};
+
+volatile uint8_t smiley_smiley[] = {
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 95, 0, 0, 95, 0, 0,
+    0, 0, 95, 0, 0, 95, 0, 0,
+    0, 0, 95, 0, 0, 95, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 95, 0, 0, 0, 0, 95, 0,
+    0, 95, 0, 0, 0, 0, 95, 0,
+    0, 95, 95, 95, 95, 95, 95, 0,
+};
+
+volatile uint8_t blank[] = {
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+};
+
+volatile uint8_t letter_a[] = {
+    25, 25, 25, 25, 25, 25, 25, 25,
+    25, 25, 25, 255, 255, 25, 25, 25,
+    25, 25, 255, 25, 25, 255, 25, 25,
+    25, 25, 255, 25, 25, 255, 25, 25,
+    25, 25, 255, 255, 255, 255, 25, 25,
+    25, 25, 255, 25, 25, 255, 25, 25,
+    25, 25, 255, 25, 25, 255, 25, 25,
+    25, 25, 255, 25, 25, 255, 25, 25,
+};
+
+volatile uint8_t letter_b[] = {
+    25, 25, 25, 25, 25, 25, 25, 25,
+    25, 25, 25, 25, 25, 255, 25, 25,
+    25, 25, 25, 25, 25, 255, 25, 25,
+    25, 25, 25, 25, 25, 255, 25, 25,
+    25, 25, 255, 255, 255, 255, 25, 25,
+    25, 25, 255, 25, 25, 255, 25, 25,
+    25, 25, 255, 25, 25, 255, 25, 25,
+    25, 25, 255, 255, 255, 255, 25, 25,
+};
+
+volatile uint8_t letter_c[] = {
+    25, 25, 25, 25, 25, 25, 25, 25,
+    25, 25, 25, 255, 255, 255, 25, 25,
+    25, 25, 255, 25, 25, 25, 255, 25,
+    25, 25, 25, 25, 25, 25, 255, 25,
+    25, 25, 25, 25, 25, 25, 255, 25,
+    25, 25, 255, 25, 25, 25, 255, 25,
+    25, 25, 25, 255, 255, 255, 25, 25,
+    25, 25, 25, 25, 25, 25, 25, 25,
+};
+
+volatile uint8_t letter_d[] = {
+    25, 25, 25, 255, 25, 25, 25, 25,
+    25, 25, 25, 255, 25, 25, 25, 25,
+    25, 25, 25, 255, 25, 25, 25, 25,
+    25, 25, 25, 255, 25, 25, 25, 25,
+    25, 25, 25, 255, 255, 255, 255, 25,
+    25, 25, 25, 255, 25, 25, 255, 25,
+    25, 25, 25, 255, 25, 25, 255, 25,
+    25, 25, 25, 255, 255, 255, 255, 25,
+};
+
+volatile uint8_t letter_e[] = {
+    25, 25, 25, 25, 25, 25, 25, 25,
+    25, 25, 25, 25, 255, 255, 255, 25,
+    25, 25, 25, 25, 25, 25, 255, 25,
+    25, 25, 25, 25, 25, 25, 255, 25,
+    25, 25, 25, 25, 255, 255, 255, 25,
+    25, 25, 25, 25, 25, 25, 255, 25,
+    25, 25, 25, 25, 25, 25, 255, 25,
+    25, 25, 25, 25, 255, 255, 255, 25,
+};
+
+volatile uint8_t letter_f[] = {
+    25, 25, 25, 25, 25, 25, 25, 25,
+    25, 25, 25, 25, 255, 255, 255, 25,
+    25, 25, 25, 25, 25, 25, 255, 25,
+    25, 25, 25, 25, 25, 25, 255, 25,
+    25, 25, 25, 25, 255, 255, 255, 25,
+    25, 25, 25, 25, 25, 25, 255, 25,
+    25, 25, 25, 25, 25, 25, 255, 25,
+    25, 25, 25, 25, 25, 25, 255, 25,
+};
+
+volatile uint8_t letter_g[] = {
+    25, 25, 25, 25, 25, 25, 25, 25,
+    25, 25, 25, 255, 255, 255, 25, 25,
+    25, 25, 25, 255, 25, 255, 25, 25,
+    25, 25, 25, 255, 255, 255, 25, 25,
+    25, 25, 25, 255, 25, 25, 25, 25,
+    25, 25, 25, 255, 25, 25, 25, 25,
+    25, 25, 25, 255, 25, 255, 25, 25,
+    25, 25, 25, 255, 255, 255, 25, 25,
+};
+volatile uint8_t letter_h[] = {
+    25, 25, 25, 25, 25, 25, 25, 25,
+    25, 255, 25, 25, 255, 25, 25, 25,
+    25, 255, 25, 25, 255, 25, 25, 25,
+    25, 255, 25, 25, 255, 25, 25, 25,
+    25, 255, 255, 255, 255, 25, 25, 25,
+    25, 255, 25, 25, 255, 25, 25, 25,
+    25, 255, 25, 25, 255, 25, 25, 25,
+    25, 255, 25, 25, 255, 25, 25, 25,
+};
+volatile uint8_t letter_i[] = {
+    25, 25, 25, 25, 25, 25, 25, 25,
+    25, 25, 255, 255, 255, 25, 25, 25,
+    25, 25, 25, 255, 25, 25, 25, 25,
+    25, 25, 25, 255, 25, 25, 25, 25,
+    25, 25, 25, 255, 25, 25, 25, 25,
+    25, 25, 25, 255, 25, 25, 25, 25,
+    25, 25, 25, 255, 25, 25, 25, 25,
+    25, 25, 255, 255, 255, 25, 25, 25,
+};
+volatile uint8_t letter_j[] = {
+    25, 25, 25, 25, 25, 25, 25, 25,
+    25, 255, 255, 255, 255, 255, 25, 25,
+    25, 25, 25, 255, 25, 25, 25, 25,
+    25, 25, 25, 255, 25, 25, 25, 25,
+    25, 25, 25, 255, 25, 25, 25, 25,
+    25, 25, 25, 255, 25, 25, 25, 25,
+    25, 25, 25, 255, 25, 255, 25, 25,
+    25, 25, 25, 255, 255, 255, 25, 25,
+};
+volatile uint8_t letter_k[] = {
+    25, 25, 25, 25, 25, 25, 25, 25,
+    25, 25, 255, 25, 25, 255, 25, 25,
+    25, 25, 25, 255, 25, 255, 25, 25,
+    25, 25, 25, 25, 255, 255, 25, 25,
+    25, 25, 25, 25, 255, 255, 25, 25,
+    25, 25, 25, 255, 25, 255, 25, 25,
+    25, 25, 255, 25, 25, 255, 25, 25,
+    25, 25, 25, 25, 25, 25, 25, 25,
 };
-int main() 
+volatile uint8_t letter_l[] = {
+    25, 25, 25, 25, 25, 25, 25, 25,
+    25, 25, 25, 25, 25, 255, 25, 25,
+    25, 25, 25, 25, 25, 255, 25, 25,
+    25, 25, 25, 25, 25, 255, 25, 25,
+    25, 25, 25, 25, 25, 255, 25, 25,
+    25, 25, 25, 25, 25, 255, 25, 25,
+    25, 25, 25, 255, 255, 255, 25, 25,
+    25, 25, 25, 25, 25, 25, 25, 25,
+};
+volatile uint8_t letter_m[] = {
+    25, 25, 25, 25, 25, 25, 25, 25,
+    25, 25, 25, 25, 25, 25, 25, 25,
+    25, 255, 255, 255, 255, 255, 255, 255,
+    25, 255, 25, 25, 255, 25, 25, 255,
+    25, 255, 25, 25, 255, 25, 25, 255,
+    25, 255, 25, 25, 255, 25, 25, 255,
+    25, 255, 25, 25, 25, 25, 25, 255,
+    25, 25, 25, 25, 25, 25, 25, 25,
+};
+volatile uint8_t letter_n[] = {
+    25, 25, 25, 25, 25, 25, 25, 25,
+    25, 25, 255, 25, 25, 25, 255, 25,
+    25, 25, 255, 25, 25, 255, 255, 25,
+    25, 25, 255, 25, 255, 25, 255, 25,
+    25, 25, 255, 255, 25, 25, 255, 25,
+    25, 25, 255, 25, 25, 25, 255, 25,
+    25, 25, 25, 25, 25, 25, 25, 25,
+    25, 25, 25, 25, 25, 25, 25, 25,
+};
+volatile uint8_t letter_o[] = {
+    25, 25, 25, 25, 25, 25, 25, 25,
+    25, 25, 255, 255, 255, 255, 25, 25,
+    25, 255, 25, 25, 25, 25, 255, 25,
+    25, 255, 25, 25, 25, 25, 255, 25,
+    25, 255, 25, 25, 25, 25, 255, 25,
+    25, 255, 25, 25, 25, 25, 255, 25,
+    25, 25, 255, 255, 255, 255, 25, 25,
+    25, 25, 25, 25, 25, 25, 25, 25,
+};
+volatile uint8_t letter_p[] = {
+    25, 25, 25, 25, 25, 25, 25, 25,
+    25, 25, 255, 255, 255, 25, 25, 25,
+    25, 25, 255, 25, 255, 25, 25, 25,
+    25, 25, 255, 255, 255, 25, 25, 25,
+    25, 25, 255, 25, 25, 25, 25, 25,
+    25, 25, 255, 25, 25, 25, 25, 25,
+    25, 25, 255, 25, 25, 25, 25, 25,
+    25, 25, 25, 25, 25, 25, 25, 25,
+};
+volatile uint8_t letter_q[] = {
+    25, 25, 25, 25, 25, 25, 25, 25,
+    25, 25, 255, 255, 255, 25, 25, 25,
+    25, 25, 255, 25, 255, 25, 25, 25,
+    25, 25, 255, 255, 255, 25, 25, 25,
+    25, 25, 255, 25, 25, 25, 25, 25,
+    25, 25, 255, 25, 25, 25, 25, 25,
+    25, 255, 255, 255, 25, 25, 25, 25,
+    25, 25, 25, 25, 25, 25, 25, 25,
+};
+volatile uint8_t letter_r[] = {
+    25, 25, 25, 25, 25, 25, 25, 25,
+    25, 25, 255, 255, 255, 255, 25, 25,
+    25, 25, 255, 25, 25, 255, 25, 25,
+    25, 25, 25, 25, 25, 255, 25, 25,
+    25, 25, 25, 25, 25, 255, 25, 25,
+    25, 25, 25, 25, 25, 255, 25, 25,
+    25, 25, 25, 25, 25, 255, 25, 25,
+    25, 25, 25, 25, 25, 25, 25, 25,
+};
+volatile uint8_t letter_s[] = {
+    25, 25, 25, 25, 25, 25, 25, 25,
+    25, 25, 255, 255, 255, 255, 25, 25,
+    25, 25, 255, 25, 25, 25, 255, 25,
+    25, 25, 25, 25, 25, 25, 255, 25,
+    25, 25, 255, 255, 255, 255, 255, 25,
+    25, 25, 255, 25, 25, 25, 25, 25,
+    25, 25, 255, 255, 255, 255, 255, 25,
+    25, 25, 25, 25, 25, 25, 25, 25,
+};
+volatile uint8_t letter_t[] = {
+    25, 25, 25, 25, 25, 25, 25, 25,
+    25, 25, 255, 255, 255, 255, 255, 25,
+    25, 25, 25, 25, 255, 25, 25, 25,
+    25, 25, 25, 25, 255, 25, 25, 25,
+    25, 25, 25, 25, 255, 25, 25, 25,
+    25, 25, 25, 25, 255, 25, 25, 25,
+    25, 25, 25, 25, 255, 25, 25, 25,
+    25, 25, 25, 25, 25, 25, 25, 25,
+};
+
+volatile uint8_t letter_u[] = {
+    25, 25, 25, 25, 25, 25, 25, 25,
+    25, 25, 255, 25, 25, 255, 25, 25,
+    25, 25, 255, 25, 25, 255, 25, 25,
+    25, 25, 255, 25, 25, 255, 25, 25,
+    25, 25, 255, 25, 25, 255, 25, 25,
+    25, 25, 255, 25, 25, 255, 25, 25,
+    25, 25, 255, 255, 255, 255, 25, 25,
+    25, 25, 25, 25, 25, 25, 25, 25,
+};
+
+volatile uint8_t letter_v[] = {
+    25, 25, 25, 25, 25, 25, 25, 25,
+    25, 25, 255, 25, 25, 25, 255, 25,
+    25, 25, 255, 25, 25, 25, 255, 25,
+    25, 25, 255, 25, 25, 25, 255, 25,
+    25, 25, 255, 25, 25, 25, 255, 25,
+    25, 25, 25, 255, 25, 255, 25, 25,
+    25, 25, 25, 25, 255, 25, 25, 25,
+    25, 25, 25, 25, 25, 25, 25, 25,
+};
+
+volatile uint8_t letter_w[] = {
+    25, 25, 25, 25, 25, 25, 25, 25,
+    25, 25, 25, 25, 25, 25, 25, 25,
+    25, 255, 25, 25, 25, 255, 25, 25,
+    25, 255, 25, 25, 25, 255, 25, 25,
+    25, 255, 25, 255, 25, 255, 25, 25,
+    25, 255, 25, 255, 25, 255, 25, 25,
+    25, 255, 255, 255, 255, 25, 25, 25,
+    25, 25, 25, 25, 25, 25, 25, 25,
+};
+
+volatile uint8_t letter_x[] = {
+    25, 25, 25, 25, 25, 25, 25, 25,
+    25, 255, 25, 25, 25, 25, 255, 25,
+    25, 25, 255, 25, 25, 255, 25, 25,
+    25, 25, 25, 255, 255, 25, 25, 25,
+    25, 25, 25, 255, 255, 25, 25, 25,
+    25, 25, 255, 25, 25, 255, 25, 25,
+    25, 255, 25, 25, 25, 25, 255, 25,
+    25, 25, 25, 25, 25, 25, 25, 25,
+};
+
+volatile uint8_t letter_y[] = {
+    25, 25, 25, 25, 25, 25, 25, 25,
+    25, 25, 255, 25, 25, 25, 255, 25,
+    25, 25, 25, 255, 25, 255, 25, 25,
+    25, 25, 25, 25, 255, 25, 25, 25,
+    25, 25, 25, 25, 255, 25, 25, 25,
+    25, 25, 25, 25, 255, 25, 25, 25,
+    25, 25, 25, 25, 255, 25, 25, 25,
+    25, 25, 25, 25, 25, 25, 25, 25,
+};
+
+volatile uint8_t letter_z[] = {
+    25, 25, 25, 25, 25, 25, 25, 25,
+    25, 255, 255, 255, 255, 255, 25, 25,
+    25, 25, 255, 25, 25, 25, 25, 25,
+    25, 25, 25, 255, 25, 25, 25, 25,
+    25, 25, 25, 25, 255, 25, 25, 25,
+    25, 25, 25, 25, 25, 255, 25, 25,
+    25, 255, 255, 255, 255, 255, 255, 25,
+    25, 25, 25, 25, 25, 25, 25, 25,
+};
+
+
+int main()
 {
     // Setup the spi for 8 bit data, high steady state clock,
     // second edge capture, with a 100kHz clock rate
@@ -110,116 +418,646 @@
     spi1.frequency(100000);
     //draw_pattern(0);
     //draw_pattern(1);
-    draw_pattern(2);
-    draw_pattern(3);
+    // draw_pattern(2);
+
+    while(1) {
+        draw_pattern(5);
+        //wait(2);
+        draw_pattern(6);
+        // wait(2);
+        draw_pattern(7);
+        //wait(2);
+        draw_pattern(8);
+        draw_pattern(9);
+        draw_pattern(10);
+        draw_pattern(11);
+        draw_pattern(12);
+        draw_pattern(13);
+        draw_pattern(14);
+        draw_pattern(15);
+        draw_pattern(16);
+        draw_pattern(17);
+        draw_pattern(18);
+        draw_pattern(19);
+        draw_pattern(20);
+        draw_pattern(21);
+        draw_pattern(22);
+        draw_pattern(23);
+        draw_pattern(24);
+        draw_pattern(25);
+        draw_pattern(26);
+        draw_pattern(27);
+        draw_pattern(28);
+        draw_pattern(29);
+        draw_pattern(30);
+    }
 }
 
 
 void draw_pattern(int pattern)
 {
-    switch(pattern)
-    {
-        case 0:
-        {
-            while(1)
-              {
-              cs = 0;
-              //cs1 = 0;
-              myled = 0;
-              wait_ms(0.5); 
-              for(int k = 0; k<65;k++ )
-              {
-                spi.write(arrow_blue_down[k+1]);
-                //spi1.write(arrow_blue_up[k+1]);
-              }
-              wait_ms(0.5);
-              cs = 1;
-              //cs1 = 1;
-              }
-              
-             /* {
-              cs = 0;
-              //cs1 = 0;
-              myled = 0;
-              wait_ms(0.5); 
-              for(int k = 0; k<65;k++ )
-              {
-                spi.write(arrow_blue_up[k+1]);
-                //spi1.write(arrow_blue_up[k+1]);
-              }
-              wait_ms(0.5);
-              cs = 1;
-              //cs1 = 1;
-              }*/
-              
-              
+    switch(pattern) {
+        case 0: {
+            while(1) {
+                cs = 0;
+                //cs1 = 0;
+                myled = 0;
+                wait_ms(0.5);
+                for(int k = 0; k<65; k++ ) {
+                    spi.write(arrow_blue_down[k+1]);
+                    //spi1.write(arrow_blue_up[k+1]);
+                }
+                wait_ms(0.5);
+                cs = 1;
+                //cs1 = 1;
+            }
+
+            /* {
+             cs = 0;
+             //cs1 = 0;
+             myled = 0;
+             wait_ms(0.5);
+             for(int k = 0; k<65;k++ )
+             {
+               spi.write(arrow_blue_up[k+1]);
+               //spi1.write(arrow_blue_up[k+1]);
+             }
+             wait_ms(0.5);
+             cs = 1;
+             //cs1 = 1;
+             }*/
+
+
+        }
+        case 1: {
+            int i=0;
+            do {
+                cs = 0;
+                //cs1 = 0;
+                myled = 1;
+                wait_ms(0.5);
+                for(int k=0; k<65; k++) {
+                    spi.write(arrow_red_left[k+1]);
+                    //spi1.write(image[k+1]);
+                }
+                wait_ms(0.5);
+                cs = 1;
+                myled=0;
+                wait(1);
+                i++;
+            } while(i<10);
+            break;
+        }
+        case 2: {
+            int i=0;
+            do {
+                cs1 = 0;
+                //cs1 = 0;
+                myled = 1;
+                wait_ms(0.5);
+                for(int k=0; k<65; k++) {
+                    spi1.write(arrow_white_up[k+1]);
+                    //spi1.write(image[k+1]);
+                }
+                wait_ms(0.5);
+                cs1 = 1;
+                myled=0;
+                wait(1);
+                i++;
+            } while(i<10);
+            break;
+        }
+        case 3: {
+            int i=0;
+            do {
+                cs = 0;
+                //cs1 = 0;
+                myled = 1;
+                wait_ms(0.5);
+                for(int k=0; k<65; k++) {
+                    spi.write(arrow_white_down[k+1]);
+                    //spi1.write(image[k+1]);
+                }
+                wait_ms(0.5);
+                cs = 1;
+                myled=0;
+                wait(1);
+                i++;
+            } while(i<10);
+            break;
+        }
+        case 4: {
+            int i=0;
+            do {
+                cs = 0;
+                //cs1 = 0;
+                myled = 1;
+                wait_ms(0.5);
+                for(int k=0; k<65; k++) {
+                    spi.write(smiley_smiley[k+1]);
+                    //spi1.write(image[k+1]);
+                }
+                wait_ms(0.5);
+                cs = 1;
+                myled=0;
+                wait(1);
+                i++;
+            } while(i<10);
+            break;
+        }
+        case 5: {
+            int i=0;
+            do {
+                cs = 0;
+                //cs1 = 0;
+                myled = 1;
+                wait_ms(0.5);
+                for(int k=0; k<65; k++) {
+                    spi.write(letter_a[k+1]);
+                    //spi1.write(image[k+1]);
+                }
+                wait_ms(0.5);
+                cs = 1;
+                myled=0;
+                wait(0.5);
+                i++;
+            } while(i<4);
+            break;
+        }
+        case 6: {
+            int i=0;
+            do {
+                cs = 0;
+                //cs1 = 0;
+                myled = 1;
+                wait_ms(0.5);
+                for(int k=0; k<65; k++) {
+                    spi.write(letter_b[k+1]);
+                    //spi1.write(image[k+1]);
+                }
+                wait_ms(0.5);
+                cs = 1;
+                myled=0;
+                wait(0.5);
+                i++;
+            } while(i<4);
+            break;
         }
-        case 1:
-        {
+        case 7: {
+            int i=0;
+            do {
+                cs = 0;
+                //cs1 = 0;
+                myled = 1;
+                wait_ms(0.5);
+                for(int k=0; k<65; k++) {
+                    spi.write(letter_c[k+1]);
+                    //spi1.write(image[k+1]);
+                }
+                wait_ms(0.5);
+                cs = 1;
+                myled=0;
+                wait(0.5);
+                i++;
+            } while(i<4);
+            break;
+        }
+        case 8: {
+            int i=0;
+            do {
+                cs = 0;
+                //cs1 = 0;
+                myled = 1;
+                wait_ms(0.5);
+                for(int k=0; k<65; k++) {
+                    spi.write(letter_d[k+1]);
+                    //spi1.write(image[k+1]);
+                }
+                wait_ms(0.5);
+                cs = 1;
+                myled=0;
+                wait(0.5);
+                i++;
+            } while(i<4);
+            break;
+        }
+        case 9: {
+            int i=0;
+            do {
+                cs = 0;
+                //cs1 = 0;
+                myled = 1;
+                wait_ms(0.5);
+                for(int k=0; k<65; k++) {
+                    spi.write(letter_e[k+1]);
+                    //spi1.write(image[k+1]);
+                }
+                wait_ms(0.5);
+                cs = 1;
+                myled=0;
+                wait(0.5);
+                i++;
+            } while(i<4);
+            break;
+        }
+        case 10: {
             int i=0;
-            do
-            {
-              cs = 0;
-              //cs1 = 0;
-              myled = 1;
-              wait_ms(0.5); 
-              for(int k=0;k<65;k++)
-              {
-                spi.write(arrow_red_left[k+1]);
-                //spi1.write(image[k+1]);
-              }
-              wait_ms(0.5);
-              cs = 1;
-              myled=0;
-              wait(1);
-              i++;
-            }while(i<10);
+            do {
+                cs = 0;
+                //cs1 = 0;
+                myled = 1;
+                wait_ms(0.5);
+                for(int k=0; k<65; k++) {
+                    spi.write(letter_f[k+1]);
+                    //spi1.write(image[k+1]);
+                }
+                wait_ms(0.5);
+                cs = 1;
+                myled=0;
+                wait(0.5);
+                i++;
+            } while(i<4);
+            break;
+        }
+        case 11: {
+            int i=0;
+            do {
+                cs = 0;
+                //cs1 = 0;
+                myled = 1;
+                wait_ms(0.5);
+                for(int k=0; k<65; k++) {
+                    spi.write(letter_g[k+1]);
+                    //spi1.write(image[k+1]);
+                }
+                wait_ms(0.5);
+                cs = 1;
+                myled=0;
+                wait(0.5);
+                i++;
+            } while(i<4);
+            break;
+        }
+        case 12: {
+            int i=0;
+            do {
+                cs = 0;
+                //cs1 = 0;
+                myled = 1;
+                wait_ms(0.5);
+                for(int k=0; k<65; k++) {
+                    spi.write(letter_h[k+1]);
+                    //spi1.write(image[k+1]);
+                }
+                wait_ms(0.5);
+                cs = 1;
+                myled=0;
+                wait(0.5);
+                i++;
+            } while(i<4);
+            break;
+        }
+        case 13: {
+            int i=0;
+            do {
+                cs = 0;
+                //cs1 = 0;
+                myled = 1;
+                wait_ms(0.5);
+                for(int k=0; k<65; k++) {
+                    spi.write(letter_i[k+1]);
+                    //spi1.write(image[k+1]);
+                }
+                wait_ms(0.5);
+                cs = 1;
+                myled=0;
+                wait(0.5);
+                i++;
+            } while(i<4);
+            break;
+        }
+        case 14: {
+            int i=0;
+            do {
+                cs = 0;
+                //cs1 = 0;
+                myled = 1;
+                wait_ms(0.5);
+                for(int k=0; k<65; k++) {
+                    spi.write(letter_j[k+1]);
+                    //spi1.write(image[k+1]);
+                }
+                wait_ms(0.5);
+                cs = 1;
+                myled=0;
+                wait(0.5);
+                i++;
+            } while(i<4);
             break;
         }
-        case 2:
-        {
+        case 15: {
+            int i=0;
+            do {
+                cs = 0;
+                //cs1 = 0;
+                myled = 1;
+                wait_ms(0.5);
+                for(int k=0; k<65; k++) {
+                    spi.write(letter_k[k+1]);
+                    //spi1.write(image[k+1]);
+                }
+                wait_ms(0.5);
+                cs = 1;
+                myled=0;
+                wait(0.5);
+                i++;
+            } while(i<4);
+            break;
+        }
+        case 16: {
+            int i=0;
+            do {
+                cs = 0;
+                //cs1 = 0;
+                myled = 1;
+                wait_ms(0.5);
+                for(int k=0; k<65; k++) {
+                    spi.write(letter_l[k+1]);
+                    //spi1.write(image[k+1]);
+                }
+                wait_ms(0.5);
+                cs = 1;
+                myled=0;
+                wait(0.5);
+                i++;
+            } while(i<4);
+            break;
+        }
+        case 17: {
+            int i=0;
+            do {
+                cs = 0;
+                //cs1 = 0;
+                myled = 1;
+                wait_ms(0.5);
+                for(int k=0; k<65; k++) {
+                    spi.write(letter_m[k+1]);
+                    //spi1.write(image[k+1]);
+                }
+                wait_ms(0.5);
+                cs = 1;
+                myled=0;
+                wait(0.5);
+                i++;
+            } while(i<4);
+            break;
+        }
+        case 18: {
             int i=0;
-            do
-            {
-              cs1 = 0;
-              //cs1 = 0;
-              myled = 1;
-              wait_ms(0.5); 
-              for(int k=0;k<65;k++)
-              {
-                spi1.write(arrow_white_up[k+1]);
-                //spi1.write(image[k+1]);
-              }
-              wait_ms(0.5);
-              cs1 = 1;
-              myled=0;
-              wait(1);
-              i++;
-            }while(i<10);
+            do {
+                cs = 0;
+                //cs1 = 0;
+                myled = 1;
+                wait_ms(0.5);
+                for(int k=0; k<65; k++) {
+                    spi.write(letter_n[k+1]);
+                    //spi1.write(image[k+1]);
+                }
+                wait_ms(0.5);
+                cs = 1;
+                myled=0;
+                wait(0.5);
+                i++;
+            } while(i<4);
+            break;
+        }
+        case 19: {
+            int i=0;
+            do {
+                cs = 0;
+                //cs1 = 0;
+                myled = 1;
+                wait_ms(0.5);
+                for(int k=0; k<65; k++) {
+                    spi.write(letter_o[k+1]);
+                    //spi1.write(image[k+1]);
+                }
+                wait_ms(0.5);
+                cs = 1;
+                myled=0;
+                wait(0.5);
+                i++;
+            } while(i<4);
+            break;
+        }
+        case 20: {
+            int i=0;
+            do {
+                cs = 0;
+                //cs1 = 0;
+                myled = 1;
+                wait_ms(0.5);
+                for(int k=0; k<65; k++) {
+                    spi.write(letter_p[k+1]);
+                    //spi1.write(image[k+1]);
+                }
+                wait_ms(0.5);
+                cs = 1;
+                myled=0;
+                wait(0.5);
+                i++;
+            } while(i<4);
+            break;
+        }
+        case 21: {
+            int i=0;
+            do {
+                cs = 0;
+                //cs1 = 0;
+                myled = 1;
+                wait_ms(0.5);
+                for(int k=0; k<65; k++) {
+                    spi.write(letter_q[k+1]);
+                    //spi1.write(image[k+1]);
+                }
+                wait_ms(0.5);
+                cs = 1;
+                myled=0;
+                wait(0.5);
+                i++;
+            } while(i<4);
+            break;
+        }
+        case 22: {
+            int i=0;
+            do {
+                cs = 0;
+                //cs1 = 0;
+                myled = 1;
+                wait_ms(0.5);
+                for(int k=0; k<65; k++) {
+                    spi.write(letter_r[k+1]);
+                    //spi1.write(image[k+1]);
+                }
+                wait_ms(0.5);
+                cs = 1;
+                myled=0;
+                wait(0.5);
+                i++;
+            } while(i<4);
             break;
         }
-        
-        case 3:
-        {
+        case 23: {
+            int i=0;
+            do {
+                cs = 0;
+                //cs1 = 0;
+                myled = 1;
+                wait_ms(0.5);
+                for(int k=0; k<65; k++) {
+                    spi.write(letter_s[k+1]);
+                    //spi1.write(image[k+1]);
+                }
+                wait_ms(0.5);
+                cs = 1;
+                myled=0;
+                wait(0.5);
+                i++;
+            } while(i<4);
+            break;
+        }
+        case 24: {
             int i=0;
-            do
-            {
-              cs = 0;
-              //cs1 = 0;
-              myled = 1;
-              wait_ms(0.5); 
-              for(int k=0;k<65;k++)
-              {
-                spi.write(arrow_white_down[k+1]);
-                //spi1.write(image[k+1]);
-              }
-              wait_ms(0.5);
-              cs = 1;
-              myled=0;
-              wait(1);
-              i++;
-            }while(i<10);
+            do {
+                cs = 0;
+                //cs1 = 0;
+                myled = 1;
+                wait_ms(0.5);
+                for(int k=0; k<65; k++) {
+                    spi.write(letter_t[k+1]);
+                    //spi1.write(image[k+1]);
+                }
+                wait_ms(0.5);
+                cs = 1;
+                myled=0;
+                wait(0.5);
+                i++;
+            } while(i<4);
+            break;
+        }
+        case 25: {
+            int i=0;
+            do {
+                cs = 0;
+                //cs1 = 0;
+                myled = 1;
+                wait_ms(0.5);
+                for(int k=0; k<65; k++) {
+                    spi.write(letter_u[k+1]);
+                    //spi1.write(image[k+1]);
+                }
+                wait_ms(0.5);
+                cs = 1;
+                myled=0;
+                wait(0.5);
+                i++;
+            } while(i<4);
+            break;
+        }
+        case 26: {
+            int i=0;
+            do {
+                cs = 0;
+                //cs1 = 0;
+                myled = 1;
+                wait_ms(0.5);
+                for(int k=0; k<65; k++) {
+                    spi.write(letter_v[k+1]);
+                    //spi1.write(image[k+1]);
+                }
+                wait_ms(0.5);
+                cs = 1;
+                myled=0;
+                wait(0.5);
+                i++;
+            } while(i<4);
             break;
         }
-     }
+        case 27: {
+            int i=0;
+            do {
+                cs = 0;
+                //cs1 = 0;
+                myled = 1;
+                wait_ms(0.5);
+                for(int k=0; k<65; k++) {
+                    spi.write(letter_w[k+1]);
+                    //spi1.write(image[k+1]);
+                }
+                wait_ms(0.5);
+                cs = 1;
+                myled=0;
+                wait(0.5);
+                i++;
+            } while(i<4);
+            break;
+        }
+        case 28: {
+            int i=0;
+            do {
+                cs = 0;
+                //cs1 = 0;
+                myled = 1;
+                wait_ms(0.5);
+                for(int k=0; k<65; k++) {
+                    spi.write(letter_x[k+1]);
+                    //spi1.write(image[k+1]);
+                }
+                wait_ms(0.5);
+                cs = 1;
+                myled=0;
+                wait(0.5);
+                i++;
+            } while(i<4);
+            break;
+        }
+        case 29: {
+            int i=0;
+            do {
+                cs = 0;
+                //cs1 = 0;
+                myled = 1;
+                wait_ms(0.5);
+                for(int k=0; k<65; k++) {
+                    spi.write(letter_y[k+1]);
+                    //spi1.write(image[k+1]);
+                }
+                wait_ms(0.5);
+                cs = 1;
+                myled=0;
+                wait(0.5);
+                i++;
+            } while(i<4);
+            break;
+        }
+        case 30: {
+            int i=0;
+            do {
+                cs = 0;
+                //cs1 = 0;
+                myled = 1;
+                wait_ms(0.5);
+                for(int k=0; k<65; k++) {
+                    spi.write(letter_z[k+1]);
+                    //spi1.write(image[k+1]);
+                }
+                wait_ms(0.5);
+                cs = 1;
+                myled=0;
+                wait(0.5);
+                i++;
+            } while(i<4);
+            break;
+        }
+    }//ACTUAL END
 }