mbed library for earthlcd ezLCD3xx line of displays

Dependencies:   MMA8451Q SDFileSystem TSI ezLCDLib mbed

go here for library http://mbed.org/users/codeman/code/ezLCDLib/

main.cpp

Committer:
codeman
Date:
2013-05-13
Revision:
2:839437baa4db
Parent:
1:d8871919d781

File content as of revision 2:839437baa4db:

/**
*
*
*
*
*/
#include "mbed.h"
#include "ezLCDLib.h"

enum { BLACK, GRAY, SILVER, WHITE, RED, MAROON, YELLOW, OLIVE, LIME, GREEN, AQUA, TEAL, BLUE, NAVY, FUCHSIA, PURPLE };

#ifdef MKL25Z4_H_
#define MMA8451_I2C_ADDRESS (0x1d<<1)
#include "TSISensor.h"
#include "MMA8451Q.h"
#include "SDFileSystem.h"
SDFileSystem sd(PTD2, PTD3, PTD1, PTD5, "sd");
InterruptIn ezLCD3Int( PTD4 );   //  interrupt instance for touch
DigitalOut _nrst(PTC7);
DigitalOut rstVS(PTA13);
ezLCD3 lcd(PTA2, PTA1); //rx,tx
TSISensor tsi;
AnalogIn adc1(PTB0);
MMA8451Q acc(PTE25, PTE24, MMA8451_I2C_ADDRESS);
DigitalOut myled(LED_RED);
#endif

#ifdef __LPC17xx_H__
InterruptIn ezLCD3Int( p7 );   //  interrupt instance for touch
DigitalOut _nrst(p8);
ezLCD3 lcd(p9, p10); //rx,tx
AnalogIn adc1(p20);
DigitalOut myled1(LED1);
DigitalOut myled2(LED2);
DigitalOut myled3(LED3);
DigitalOut myled4(LED4);
#endif

// Serial for Debug
//Serial pc(USBTX, USBRX);

volatile bool ezLCD3Touch = false;

int color = BLACK;
int temp;
int touch=0;
int adc1Count = 0;
float adc1Average = 0;

char ezID[20];
char ezVER[20];
char adcBuf[20];
char buffer[80];
void ezLCD3Isr( void )
{
    ezLCD3Touch = true;
}
void drawKeyPad( int x, int y, int bs, int s, bool echo )
{
    lcd.setStringID(50,"0");
    lcd.setStringID(51,"1");
    lcd.setStringID(52,"2");
    lcd.setStringID(53,"3");
    lcd.setStringID(54,"4");
    lcd.setStringID(55,"5");
    lcd.setStringID(56,"6");
    lcd.setStringID(57,"7");
    lcd.setStringID(58,"8");
    lcd.setStringID(59,"9");
    lcd.setStringID(60,"<");
    lcd.setStringID(61,"0");
    lcd.setStringID(62,"EN");

    lcd.staticText(  50, x, y, (bs*3)-5, s, 8, 0, 4);
    y +=bs;
    lcd.button(51, x, y, s, s,1,0,10,0,51);
    lcd.button(52, x + bs, y, s, s,1,0,10,0,52);
    lcd.button(53, x + (bs*2), y, s, s,1,0,10,0,53);

    lcd.button(54, x, y + bs, s, s,1,0,10,0,54);
    lcd.button(55, x + bs ,y + bs, s, s,1,0,10,0,55);
    lcd.button(56, x + (bs*2), y + bs, s, s,1,0,10,0,56);

    lcd.button(57, x, y+(bs*2), s, s,1,0,10,0,57);
    lcd.button(58, x+bs, y+(bs*2), s, s,1,0,10,0,58);
    lcd.button(59, x+(bs*2), y+(bs*2), s, s,1,0,10,0,59);

    lcd.button(60, x, y+(bs*3), s, s,1,0,10,0,60);
    lcd.button(61, x+bs, y+(bs*3), s, s,1,0,10,0,61);
    lcd.button(62, x+(bs*2), y+(bs*3), s, s,1,0,10,0,62);

}
int main()
{
        //pc.baud(115200);
        _nrst=0;
        wait(0.1);
        _nrst=1;
//KL25Z    rstVS = 0;     
/*
    FILE *fp = fopen("/sd/sdtest.txt", "r");
    if(fp == NULL) {
        error("\r\nCould not open file for read\n");
    }
    */
    wait(4);
    while(!lcd.sync());
    ezLCD3Int.fall(&ezLCD3Isr);
    ezLCD3Touch = false;
    myled=0;
    lcd.cls(BLACK);
//    fgets(buffer, 64, fp);
//    lcd.print(buffer);
    lcd.font("0");
    lcd.fontw(0,0);
    lcd.theme(0, 111, 106, 3, 130, 0, 13, 12, 101, 100, 0);
    lcd.xy(0,0);//11
    lcd.color(WHITE);//3
    lcd.light(50);//8
    lcd.xy(40,10);//9
    lcd.print("--==[\\[28m Hello \\[65mMBED\\[28m World \\[3m]==--");//10
    lcd.xy(20,100);//11
    lcd.color(YELLOW);//12
    lcd.setStringID( 2,"Button1");
    lcd.setStringID( 3,"Button2");
    lcd.button(2,20,40,100,40,1,0,10,0,2);
    lcd.button(3,200,40,100,40,1,0,10,0,3);
    lcd.getStringID( 65,ezID);
    lcd.getStringID( 66,ezVER);
    lcd.print(ezID);
    lcd.color(PURPLE);
    lcd.xy(20,120);//11
    lcd.print(ezVER);
    lcd.color(TEAL);
    lcd.xy(20,140);
    lcd.printf("MaxX %d MaxY %d", lcd.getXmax()+1, lcd.getYmax()+1); //13 14
    lcd.light(5);//15
    lcd.light(100);//16
    lcd.image(20,165,"0.gif");
    lcd.image(55,165,"1.gif");
    lcd.image(90,165,"2.gif");
    lcd.image(125,165,"3.gif");
    lcd.color(WHITE);//17
    lcd.setStringID(4, "meter");
    lcd.setStringID(5, "%");
    lcd.setStringID(6, "X");
    lcd.setStringID(7, "Y");
    lcd.setStringID(8, "Z");
    lcd.wstack(CLEAR);

    lcd.staticText(  4, 200, 210, 100, 25, 8, 0, 4);
    lcd.progressBar( 5, 200, 180, 100, 25, 1, 0, 100, 0 , 5);
    lcd.progressBar( 6, 200, 90, 100, 25, 1, 0, 100, 0 , 6);
    lcd.progressBar( 7, 200, 120, 100, 25, 1, 0, 100, 0 , 7);
    lcd.progressBar( 8, 200, 150, 100, 25, 1, 0, 100, 0 , 8);

//    drawKeyPad(320,10,50,45,true);
    while(1) {
        if(ezLCD3Touch) {
            ezLCD3Touch = false;
            touch=lcd.wstack(LIFO);
            lcd.xy(10,210);
            lcd.color(BLACK);
            lcd.box(180,20,1);
            lcd.color(WHITE);
            switch( touch ) {
                case    240:
                    lcd.print("Button1 Pressed");
                    myled = 1;
                    break;
                case    214:
                    lcd.print("Button1 Released");
                    myled = 0;
                    break;
                case    224:
                    lcd.print("Button1 Cancel");
                    break;
                case    340:
                    lcd.print("Button2 Pressed");
                    myled = 1; 
                    break;
                case    314:
                    lcd.print("Button2 Released");
                    myled = 0;
                    break;
                case    324:
                    lcd.print("Button2 Cancel");
                    break;
/*
                case    5140:
                    lcd.print("1");
                    myled1 = 0;
                    break;
                case    5114:
                    lcd.print("1");
                    myled1 = 0;
                    break;
                case    5214:
                    lcd.print("2");
                    myled1 = 0;
                    break;
                case    5314:
                    lcd.print("3");
                    myled1 = 0;
                    break;
                case    5414:
                    lcd.print("4");
                    myled1 = 0;
                    break;
                case    5514:
                    lcd.print("5");
                    myled1 = 0;
                    break;
                case    5614:
                    lcd.print("6");
                    myled1 = 0;
                    break;
                case    5714:
                    lcd.print("7");
                    myled1 = 0;
                    break;
                case    5814:
                    lcd.print("8");
                    myled1 = 0;
                    break;
                case    5914:
                    lcd.print("9");
                    myled1 = 0;
                    break;
                case    6014:
                    lcd.print("<");
                    myled1 = 0;
                    break;
                case    6114:
                    lcd.print("0");
                    myled1 = 0;
                    break;
                case    6214:
                    lcd.print("EN");
                    myled1 = 0;
                    break;
*/
                default:
                    lcd.print("default");
                    break;
            }
        }
        adc1Average += adc1.read();
        adc1Count ++;
        if (adc1Count == 500) {
            adc1Count=0;
            sprintf(adcBuf, "%1.3f V",(adc1Average/500)*3.3);
            lcd.setStringID(4, adcBuf);
            lcd.wstate(4,REDRAW);
            adc1Average =0;
        }
        if(adc1Count ==250) {
           lcd.wvalue(5,abs( tsi.readPercentage()*100));
           lcd.wvalue(6,abs(acc.getAccX())*100);
           lcd.wvalue(7,abs(acc.getAccY())*100);
           lcd.wvalue(8,abs(acc.getAccZ())*100);
        }
    }

}