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

Dependencies:   mbed

Fork of LEDmatrix by Neel Shah

main.cpp

Committer:
mlabu11
Date:
2013-05-10
Revision:
2:4db46d73c01e
Parent:
1:0ca4d6b1e3d7

File content as of revision 2:4db46d73c01e:

#include "mbed.h"

void draw_pattern(int pattern);
DigitalOut myled(LED1);
SPI spi(p5, p6, p7); // mosi, miso, sclk
DigitalOut cs(p14);
SPI spi1(p11, p12, p13);
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,
};*/

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,
};

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,
};

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,
};

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,
};

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,
};

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,
};

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,
};

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,
};
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
    spi.format(8,3);
    spi.frequency(100000);
    /*cs = 0;
    wait(0.5);
    spi.write(0x25);
    spi.write(2);
    wait(0.5);
    cs=1;*/
    spi1.format(8,3);
    spi1.frequency(100000);
    //draw_pattern(0);
    //draw_pattern(1);
    // 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;
             }*/


        }
        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 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(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 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 {
                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 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(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
}