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/

Committer:
codeman
Date:
Mon May 13 18:01:07 2013 +0000
Revision:
2:839437baa4db
Parent:
1:d8871919d781
Public Beta;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
codeman 1:d8871919d781 1 /**
codeman 1:d8871919d781 2 *
codeman 1:d8871919d781 3 *
codeman 1:d8871919d781 4 *
codeman 1:d8871919d781 5 *
codeman 1:d8871919d781 6 */
codeman 0:b4366af9dee8 7 #include "mbed.h"
codeman 0:b4366af9dee8 8 #include "ezLCDLib.h"
codeman 1:d8871919d781 9
codeman 2:839437baa4db 10 enum { BLACK, GRAY, SILVER, WHITE, RED, MAROON, YELLOW, OLIVE, LIME, GREEN, AQUA, TEAL, BLUE, NAVY, FUCHSIA, PURPLE };
codeman 2:839437baa4db 11
codeman 2:839437baa4db 12 #ifdef MKL25Z4_H_
codeman 1:d8871919d781 13 #define MMA8451_I2C_ADDRESS (0x1d<<1)
codeman 2:839437baa4db 14 #include "TSISensor.h"
codeman 2:839437baa4db 15 #include "MMA8451Q.h"
codeman 2:839437baa4db 16 #include "SDFileSystem.h"
codeman 2:839437baa4db 17 SDFileSystem sd(PTD2, PTD3, PTD1, PTD5, "sd");
codeman 1:d8871919d781 18 InterruptIn ezLCD3Int( PTD4 ); // interrupt instance for touch
codeman 1:d8871919d781 19 DigitalOut _nrst(PTC7);
codeman 2:839437baa4db 20 DigitalOut rstVS(PTA13);
codeman 1:d8871919d781 21 ezLCD3 lcd(PTA2, PTA1); //rx,tx
codeman 1:d8871919d781 22 TSISensor tsi;
codeman 1:d8871919d781 23 AnalogIn adc1(PTB0);
codeman 1:d8871919d781 24 MMA8451Q acc(PTE25, PTE24, MMA8451_I2C_ADDRESS);
codeman 2:839437baa4db 25 DigitalOut myled(LED_RED);
codeman 1:d8871919d781 26 #endif
codeman 1:d8871919d781 27
codeman 2:839437baa4db 28 #ifdef __LPC17xx_H__
codeman 2:839437baa4db 29 InterruptIn ezLCD3Int( p7 ); // interrupt instance for touch
codeman 2:839437baa4db 30 DigitalOut _nrst(p8);
codeman 2:839437baa4db 31 ezLCD3 lcd(p9, p10); //rx,tx
codeman 2:839437baa4db 32 AnalogIn adc1(p20);
codeman 2:839437baa4db 33 DigitalOut myled1(LED1);
codeman 2:839437baa4db 34 DigitalOut myled2(LED2);
codeman 2:839437baa4db 35 DigitalOut myled3(LED3);
codeman 2:839437baa4db 36 DigitalOut myled4(LED4);
codeman 2:839437baa4db 37 #endif
codeman 2:839437baa4db 38
codeman 2:839437baa4db 39 // Serial for Debug
codeman 2:839437baa4db 40 //Serial pc(USBTX, USBRX);
codeman 2:839437baa4db 41
codeman 1:d8871919d781 42 volatile bool ezLCD3Touch = false;
codeman 1:d8871919d781 43
codeman 1:d8871919d781 44 int color = BLACK;
codeman 1:d8871919d781 45 int temp;
codeman 1:d8871919d781 46 int touch=0;
codeman 1:d8871919d781 47 int adc1Count = 0;
codeman 1:d8871919d781 48 float adc1Average = 0;
codeman 1:d8871919d781 49
codeman 1:d8871919d781 50 char ezID[20];
codeman 1:d8871919d781 51 char ezVER[20];
codeman 1:d8871919d781 52 char adcBuf[20];
codeman 2:839437baa4db 53 char buffer[80];
codeman 1:d8871919d781 54 void ezLCD3Isr( void )
codeman 1:d8871919d781 55 {
codeman 1:d8871919d781 56 ezLCD3Touch = true;
codeman 1:d8871919d781 57 }
codeman 2:839437baa4db 58 void drawKeyPad( int x, int y, int bs, int s, bool echo )
codeman 2:839437baa4db 59 {
codeman 2:839437baa4db 60 lcd.setStringID(50,"0");
codeman 2:839437baa4db 61 lcd.setStringID(51,"1");
codeman 2:839437baa4db 62 lcd.setStringID(52,"2");
codeman 2:839437baa4db 63 lcd.setStringID(53,"3");
codeman 2:839437baa4db 64 lcd.setStringID(54,"4");
codeman 2:839437baa4db 65 lcd.setStringID(55,"5");
codeman 2:839437baa4db 66 lcd.setStringID(56,"6");
codeman 2:839437baa4db 67 lcd.setStringID(57,"7");
codeman 2:839437baa4db 68 lcd.setStringID(58,"8");
codeman 2:839437baa4db 69 lcd.setStringID(59,"9");
codeman 2:839437baa4db 70 lcd.setStringID(60,"<");
codeman 2:839437baa4db 71 lcd.setStringID(61,"0");
codeman 2:839437baa4db 72 lcd.setStringID(62,"EN");
codeman 1:d8871919d781 73
codeman 2:839437baa4db 74 lcd.staticText( 50, x, y, (bs*3)-5, s, 8, 0, 4);
codeman 2:839437baa4db 75 y +=bs;
codeman 2:839437baa4db 76 lcd.button(51, x, y, s, s,1,0,10,0,51);
codeman 2:839437baa4db 77 lcd.button(52, x + bs, y, s, s,1,0,10,0,52);
codeman 2:839437baa4db 78 lcd.button(53, x + (bs*2), y, s, s,1,0,10,0,53);
codeman 2:839437baa4db 79
codeman 2:839437baa4db 80 lcd.button(54, x, y + bs, s, s,1,0,10,0,54);
codeman 2:839437baa4db 81 lcd.button(55, x + bs ,y + bs, s, s,1,0,10,0,55);
codeman 2:839437baa4db 82 lcd.button(56, x + (bs*2), y + bs, s, s,1,0,10,0,56);
codeman 2:839437baa4db 83
codeman 2:839437baa4db 84 lcd.button(57, x, y+(bs*2), s, s,1,0,10,0,57);
codeman 2:839437baa4db 85 lcd.button(58, x+bs, y+(bs*2), s, s,1,0,10,0,58);
codeman 2:839437baa4db 86 lcd.button(59, x+(bs*2), y+(bs*2), s, s,1,0,10,0,59);
codeman 2:839437baa4db 87
codeman 2:839437baa4db 88 lcd.button(60, x, y+(bs*3), s, s,1,0,10,0,60);
codeman 2:839437baa4db 89 lcd.button(61, x+bs, y+(bs*3), s, s,1,0,10,0,61);
codeman 2:839437baa4db 90 lcd.button(62, x+(bs*2), y+(bs*3), s, s,1,0,10,0,62);
codeman 2:839437baa4db 91
codeman 2:839437baa4db 92 }
codeman 1:d8871919d781 93 int main()
codeman 1:d8871919d781 94 {
codeman 2:839437baa4db 95 //pc.baud(115200);
codeman 1:d8871919d781 96 _nrst=0;
codeman 2:839437baa4db 97 wait(0.1);
codeman 1:d8871919d781 98 _nrst=1;
codeman 2:839437baa4db 99 //KL25Z rstVS = 0;
codeman 2:839437baa4db 100 /*
codeman 2:839437baa4db 101 FILE *fp = fopen("/sd/sdtest.txt", "r");
codeman 2:839437baa4db 102 if(fp == NULL) {
codeman 2:839437baa4db 103 error("\r\nCould not open file for read\n");
codeman 2:839437baa4db 104 }
codeman 2:839437baa4db 105 */
codeman 2:839437baa4db 106 wait(4);
codeman 1:d8871919d781 107 while(!lcd.sync());
codeman 1:d8871919d781 108 ezLCD3Int.fall(&ezLCD3Isr);
codeman 1:d8871919d781 109 ezLCD3Touch = false;
codeman 2:839437baa4db 110 myled=0;
codeman 1:d8871919d781 111 lcd.cls(BLACK);
codeman 2:839437baa4db 112 // fgets(buffer, 64, fp);
codeman 2:839437baa4db 113 // lcd.print(buffer);
codeman 2:839437baa4db 114 lcd.font("0");
codeman 2:839437baa4db 115 lcd.fontw(0,0);
codeman 2:839437baa4db 116 lcd.theme(0, 111, 106, 3, 130, 0, 13, 12, 101, 100, 0);
codeman 1:d8871919d781 117 lcd.xy(0,0);//11
codeman 1:d8871919d781 118 lcd.color(WHITE);//3
codeman 1:d8871919d781 119 lcd.light(50);//8
codeman 1:d8871919d781 120 lcd.xy(40,10);//9
codeman 1:d8871919d781 121 lcd.print("--==[\\[28m Hello \\[65mMBED\\[28m World \\[3m]==--");//10
codeman 1:d8871919d781 122 lcd.xy(20,100);//11
codeman 1:d8871919d781 123 lcd.color(YELLOW);//12
codeman 1:d8871919d781 124 lcd.setStringID( 2,"Button1");
codeman 1:d8871919d781 125 lcd.setStringID( 3,"Button2");
codeman 1:d8871919d781 126 lcd.button(2,20,40,100,40,1,0,10,0,2);
codeman 1:d8871919d781 127 lcd.button(3,200,40,100,40,1,0,10,0,3);
codeman 1:d8871919d781 128 lcd.getStringID( 65,ezID);
codeman 1:d8871919d781 129 lcd.getStringID( 66,ezVER);
codeman 1:d8871919d781 130 lcd.print(ezID);
codeman 1:d8871919d781 131 lcd.color(PURPLE);
codeman 1:d8871919d781 132 lcd.xy(20,120);//11
codeman 1:d8871919d781 133 lcd.print(ezVER);
codeman 1:d8871919d781 134 lcd.color(TEAL);
codeman 1:d8871919d781 135 lcd.xy(20,140);
codeman 1:d8871919d781 136 lcd.printf("MaxX %d MaxY %d", lcd.getXmax()+1, lcd.getYmax()+1); //13 14
codeman 1:d8871919d781 137 lcd.light(5);//15
codeman 1:d8871919d781 138 lcd.light(100);//16
codeman 2:839437baa4db 139 lcd.image(20,165,"0.gif");
codeman 2:839437baa4db 140 lcd.image(55,165,"1.gif");
codeman 2:839437baa4db 141 lcd.image(90,165,"2.gif");
codeman 2:839437baa4db 142 lcd.image(125,165,"3.gif");
codeman 1:d8871919d781 143 lcd.color(WHITE);//17
codeman 1:d8871919d781 144 lcd.setStringID(4, "meter");
codeman 1:d8871919d781 145 lcd.setStringID(5, "%");
codeman 1:d8871919d781 146 lcd.setStringID(6, "X");
codeman 1:d8871919d781 147 lcd.setStringID(7, "Y");
codeman 2:839437baa4db 148 lcd.setStringID(8, "Z");
codeman 2:839437baa4db 149 lcd.wstack(CLEAR);
codeman 2:839437baa4db 150
codeman 1:d8871919d781 151 lcd.staticText( 4, 200, 210, 100, 25, 8, 0, 4);
codeman 1:d8871919d781 152 lcd.progressBar( 5, 200, 180, 100, 25, 1, 0, 100, 0 , 5);
codeman 1:d8871919d781 153 lcd.progressBar( 6, 200, 90, 100, 25, 1, 0, 100, 0 , 6);
codeman 2:839437baa4db 154 lcd.progressBar( 7, 200, 120, 100, 25, 1, 0, 100, 0 , 7);
codeman 2:839437baa4db 155 lcd.progressBar( 8, 200, 150, 100, 25, 1, 0, 100, 0 , 8);
codeman 1:d8871919d781 156
codeman 2:839437baa4db 157 // drawKeyPad(320,10,50,45,true);
codeman 1:d8871919d781 158 while(1) {
codeman 1:d8871919d781 159 if(ezLCD3Touch) {
codeman 1:d8871919d781 160 ezLCD3Touch = false;
codeman 1:d8871919d781 161 touch=lcd.wstack(LIFO);
codeman 1:d8871919d781 162 lcd.xy(10,210);
codeman 1:d8871919d781 163 lcd.color(BLACK);
codeman 1:d8871919d781 164 lcd.box(180,20,1);
codeman 1:d8871919d781 165 lcd.color(WHITE);
codeman 1:d8871919d781 166 switch( touch ) {
codeman 1:d8871919d781 167 case 240:
codeman 1:d8871919d781 168 lcd.print("Button1 Pressed");
codeman 2:839437baa4db 169 myled = 1;
codeman 1:d8871919d781 170 break;
codeman 1:d8871919d781 171 case 214:
codeman 1:d8871919d781 172 lcd.print("Button1 Released");
codeman 2:839437baa4db 173 myled = 0;
codeman 1:d8871919d781 174 break;
codeman 1:d8871919d781 175 case 224:
codeman 1:d8871919d781 176 lcd.print("Button1 Cancel");
codeman 1:d8871919d781 177 break;
codeman 1:d8871919d781 178 case 340:
codeman 1:d8871919d781 179 lcd.print("Button2 Pressed");
codeman 2:839437baa4db 180 myled = 1;
codeman 1:d8871919d781 181 break;
codeman 1:d8871919d781 182 case 314:
codeman 1:d8871919d781 183 lcd.print("Button2 Released");
codeman 2:839437baa4db 184 myled = 0;
codeman 1:d8871919d781 185 break;
codeman 1:d8871919d781 186 case 324:
codeman 1:d8871919d781 187 lcd.print("Button2 Cancel");
codeman 1:d8871919d781 188 break;
codeman 2:839437baa4db 189 /*
codeman 2:839437baa4db 190 case 5140:
codeman 2:839437baa4db 191 lcd.print("1");
codeman 2:839437baa4db 192 myled1 = 0;
codeman 2:839437baa4db 193 break;
codeman 2:839437baa4db 194 case 5114:
codeman 2:839437baa4db 195 lcd.print("1");
codeman 2:839437baa4db 196 myled1 = 0;
codeman 2:839437baa4db 197 break;
codeman 2:839437baa4db 198 case 5214:
codeman 2:839437baa4db 199 lcd.print("2");
codeman 2:839437baa4db 200 myled1 = 0;
codeman 2:839437baa4db 201 break;
codeman 2:839437baa4db 202 case 5314:
codeman 2:839437baa4db 203 lcd.print("3");
codeman 2:839437baa4db 204 myled1 = 0;
codeman 2:839437baa4db 205 break;
codeman 2:839437baa4db 206 case 5414:
codeman 2:839437baa4db 207 lcd.print("4");
codeman 2:839437baa4db 208 myled1 = 0;
codeman 2:839437baa4db 209 break;
codeman 2:839437baa4db 210 case 5514:
codeman 2:839437baa4db 211 lcd.print("5");
codeman 2:839437baa4db 212 myled1 = 0;
codeman 2:839437baa4db 213 break;
codeman 2:839437baa4db 214 case 5614:
codeman 2:839437baa4db 215 lcd.print("6");
codeman 2:839437baa4db 216 myled1 = 0;
codeman 2:839437baa4db 217 break;
codeman 2:839437baa4db 218 case 5714:
codeman 2:839437baa4db 219 lcd.print("7");
codeman 2:839437baa4db 220 myled1 = 0;
codeman 2:839437baa4db 221 break;
codeman 2:839437baa4db 222 case 5814:
codeman 2:839437baa4db 223 lcd.print("8");
codeman 2:839437baa4db 224 myled1 = 0;
codeman 2:839437baa4db 225 break;
codeman 2:839437baa4db 226 case 5914:
codeman 2:839437baa4db 227 lcd.print("9");
codeman 2:839437baa4db 228 myled1 = 0;
codeman 2:839437baa4db 229 break;
codeman 2:839437baa4db 230 case 6014:
codeman 2:839437baa4db 231 lcd.print("<");
codeman 2:839437baa4db 232 myled1 = 0;
codeman 2:839437baa4db 233 break;
codeman 2:839437baa4db 234 case 6114:
codeman 2:839437baa4db 235 lcd.print("0");
codeman 2:839437baa4db 236 myled1 = 0;
codeman 2:839437baa4db 237 break;
codeman 2:839437baa4db 238 case 6214:
codeman 2:839437baa4db 239 lcd.print("EN");
codeman 2:839437baa4db 240 myled1 = 0;
codeman 2:839437baa4db 241 break;
codeman 2:839437baa4db 242 */
codeman 1:d8871919d781 243 default:
codeman 1:d8871919d781 244 lcd.print("default");
codeman 1:d8871919d781 245 break;
codeman 1:d8871919d781 246 }
codeman 1:d8871919d781 247 }
codeman 2:839437baa4db 248 adc1Average += adc1.read();
codeman 2:839437baa4db 249 adc1Count ++;
codeman 2:839437baa4db 250 if (adc1Count == 500) {
codeman 2:839437baa4db 251 adc1Count=0;
codeman 2:839437baa4db 252 sprintf(adcBuf, "%1.3f V",(adc1Average/500)*3.3);
codeman 2:839437baa4db 253 lcd.setStringID(4, adcBuf);
codeman 2:839437baa4db 254 lcd.wstate(4,REDRAW);
codeman 2:839437baa4db 255 adc1Average =0;
codeman 2:839437baa4db 256 }
codeman 2:839437baa4db 257 if(adc1Count ==250) {
codeman 2:839437baa4db 258 lcd.wvalue(5,abs( tsi.readPercentage()*100));
codeman 2:839437baa4db 259 lcd.wvalue(6,abs(acc.getAccX())*100);
codeman 2:839437baa4db 260 lcd.wvalue(7,abs(acc.getAccY())*100);
codeman 2:839437baa4db 261 lcd.wvalue(8,abs(acc.getAccZ())*100);
codeman 2:839437baa4db 262 }
codeman 1:d8871919d781 263 }
codeman 1:d8871919d781 264
codeman 1:d8871919d781 265 }