lib_LCD_oem_example

Dependencies:   lib_LCD_oem mbed

main.cpp

Committer:
YSI
Date:
2017-06-06
Revision:
1:1c9519da56a0
Parent:
0:c8a2590c2f2e

File content as of revision 1:1c9519da56a0:

#include "mbed.h"
#include "lib_LCD_oem_ELCD.h"

bool acolade = false;
bool escape = false;

LCD_OEM LCD;
Serial pc(USBTX, USBRX);

int X_pos = 0;
int Y_pos = 0;

void reception_serie(void);

int main() 
{
    pc.attach(&reception_serie);
    LCD.shift_line_cursor();
//    pc.printf("X_pos %2d Y_pos %d\r\n", LCD.get_X_position_cursor(), LCD.get_Y_position_cursor());

    while(1) 
    {
    }
}

void reception_serie(void)
{
    char c = pc.getc();
    char l1 = 0,l2 = 0,l3 = 0,l4 = 0,l5 = 0,l6 = 0,l7 = 0,l8 = 0;
    switch(c)
    {
        case 27:
            acolade = true;
        break;
        case 91:
            if(acolade) escape = true;
        break;
        case 'A':
            if(acolade && escape)
            {
//                X_pos = LCD.get_X_position_cursor();
//                Y_pos = LCD.get_Y_position_cursor() - 1;
//                LCD.set_position_cursor(X_pos,Y_pos);
                LCD.set_position_cursor(LCD.get_X_position_cursor(), LCD.get_Y_position_cursor() - 1);
                pc.printf("X_pos %2d Y_pos %d\r\n", LCD.get_X_position_cursor(), LCD.get_Y_position_cursor());
            }else{
                pc.printf("%d\r\n",c);
                LCD.print((int)c);
                acolade = false;
                escape = false;
            }
        break;
        case 'B':
            if(acolade && escape)
            {
//                X_pos = LCD.get_X_position_cursor();
//                Y_pos = LCD.get_Y_position_cursor() + 1;
//                LCD.set_position_cursor(X_pos,Y_pos);
                LCD.set_position_cursor(LCD.get_X_position_cursor(), LCD.get_Y_position_cursor() + 1);
                pc.printf("X_pos %2d Y_pos %d\r\n", LCD.get_X_position_cursor(), LCD.get_Y_position_cursor());
            }else{
                pc.printf("%d\r\n",c);
                LCD.print((int)c);
                acolade = false;
                escape = false;
            }
        break;
        case 'C':
            if(acolade && escape)
            {
//                X_pos = LCD.get_X_position_cursor() + 1;
//                Y_pos = LCD.get_Y_position_cursor();
//                LCD.set_position_cursor(X_pos,Y_pos);
                LCD.set_position_cursor(LCD.get_X_position_cursor() + 1, LCD.get_Y_position_cursor());
                pc.printf("X_pos %2d Y_pos %d\r\n", LCD.get_X_position_cursor(), LCD.get_Y_position_cursor());
            }else{
                pc.printf("%d\r\n",c);
                LCD.print((int)c);
                acolade = false;
                escape = false;
            }
        break;
        case 'D':
            if(acolade && escape)
            {
//                X_pos = LCD.get_X_position_cursor() - 1;
//                Y_pos = LCD.get_Y_position_cursor();
//                LCD.set_position_cursor(X_pos,Y_pos);
                LCD.set_position_cursor(LCD.get_X_position_cursor() - 1, LCD.get_Y_position_cursor());
                pc.printf("X_pos %2d Y_pos %d\r\n", LCD.get_X_position_cursor(), LCD.get_Y_position_cursor());
            }else{
                pc.printf("%d\r\n",c);
                LCD.print((int)c);
                acolade = false;
                escape = false;
            }
        break;
        case 'w':
            for(int i=0;i<4;i++)
            {
                LCD.set_position_cursor(0,i);
                for(int j=8;j<16;j++)
                {
                    LCD.print("%c", j);
                    pc.printf("X_pos %2d Y_pos %d\r\n", LCD.get_X_position_cursor(), LCD.get_Y_position_cursor());
//                    wait(0.25);
                }
            }
            
            for(int k=8;k<16;k++)
            {
                l1 = l2 = l3 = l3 = l4 = l5 = l6 = l7 = l8 = 0;
                for(int i=0;i<8;i++)
                {
                    for(int j=1;j<32;j*=2)
                    {
                        if(i == 0)      l1 += j;
                        else if(i == 1) l2 += j;
                        else if(i == 2) l3 += j;
                        else if(i == 3) l4 += j;
                        else if(i == 4) l5 += j;
                        else if(i == 5) l6 += j;
                        else if(i == 6) l7 += j;
                        else if(i == 7) l8 += j;
                        LCD.define_caractere(k,l1,l2,l3,l4,l5,l6,l7,l8);
//                        wait(0.1);
                    }
                }
            }
            for(int k=8;k<16;k++)
            {
                l1 = l2 = l3 = l3 = l4 = l5 = l6 = l7 = l8 = 31;
                for(int i=0;i<8;i++)
                {
                    for(int j=1;j<32;j*=2)
                    {
                        if(i == 0)      l1 -= j;
                        else if(i == 1) l2 -= j;
                        else if(i == 2) l3 -= j;
                        else if(i == 3) l4 -= j;
                        else if(i == 4) l5 -= j;
                        else if(i == 5) l6 -= j;
                        else if(i == 6) l7 -= j;
                        else if(i == 7) l8 -= j;
                        LCD.define_caractere(k,l1,l2,l3,l4,l5,l6,l7,l8);
//                        wait(0.1);
                    }
                }
            }
        break;
        case 'x':
//            LCD.set_position_cursor(0,0);
            LCD.define_and_print_caractere(8,1,2,4,8,8,4,2,1);
            LCD.define_caractere(8,16,8,4,2,2,4,8,16);
            LCD.print((char)8);
//            LCD.print((char)8);
//            LCD.define_caractere(8,1,2,4,8,8,4,2,1);
/*            for(int k=8;k<16;k++)
            {
                l1 = l2 = l3 = l3 = l4 = l5 = l6 = l7 = l8 = 0;
                for(int i=0;i<8;i++)
                {
                    for(int j=1;j<32;j*=2)
                    {
                        if(i == 0)      l1 += j;
                        else if(i == 1) l2 += j;
                        else if(i == 2) l3 += j;
                        else if(i == 3) l4 += j;
                        else if(i == 4) l5 += j;
                        else if(i == 5) l6 += j;
                        else if(i == 6) l7 += j;
                        else if(i == 7) l8 += j;
                        LCD.define_and_print_caractere(k,l1,l2,l3,l4,l5,l6,l7,l8);
//                        wait(0.1);
                    }
                }
            }
            for(int k=8;k<16;k++)
            {
                l1 = l2 = l3 = l3 = l4 = l5 = l6 = l7 = l8 = 31;
                for(int i=0;i<8;i++)
                {
                    for(int j=1;j<32;j*=2)
                    {
                        if(i == 0)      l1 -= j;
                        else if(i == 1) l2 -= j;
                        else if(i == 2) l3 -= j;
                        else if(i == 3) l4 -= j;
                        else if(i == 4) l5 -= j;
                        else if(i == 5) l6 -= j;
                        else if(i == 6) l7 -= j;
                        else if(i == 7) l8 -= j;
                        LCD.define_and_print_caractere(k,l1,l2,l3,l4,l5,l6,l7,l8);
//                        wait(0.1);
                    }
                }
            }
*/        break;
        default:
            LCD.print(c);
            pc.printf("X_pos %2d Y_pos %d\r\n", LCD.get_X_position_cursor(), LCD.get_Y_position_cursor());
        break;
    }
}