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@1:d8871919d781, 2013-04-29 (annotated)
- Committer:
- codeman
- Date:
- Mon Apr 29 03:04:30 2013 +0000
- Revision:
- 1:d8871919d781
- Parent:
- 0:b4366af9dee8
- Child:
- 2:839437baa4db
version .5
Who changed what in which revision?
User | Revision | Line number | New 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 | 1:d8871919d781 | 8 | #include "TSISensor.h" |
codeman | 0:b4366af9dee8 | 9 | #include "ezLCDLib.h" |
codeman | 1:d8871919d781 | 10 | #include "MMA8451Q.h" |
codeman | 1:d8871919d781 | 11 | |
codeman | 1:d8871919d781 | 12 | #define MMA8451_I2C_ADDRESS (0x1d<<1) |
codeman | 1:d8871919d781 | 13 | enum { BLACK, GRAY, SILVER, WHITE, RED, MAROON, YELLOW, OLIVE, LIME, GREEN, AQUA, TEAL, BLUE, NAVY, FUCHSIA, PURPLE }; |
codeman | 1:d8871919d781 | 14 | #define arLCD |
codeman | 1:d8871919d781 | 15 | //InterruptIn ezLCD3Int( PTD7); // interrupt instance for touch |
codeman | 1:d8871919d781 | 16 | //InterruptIn ezLCD3Int( PTA13); // interrupt instance for touch |
codeman | 1:d8871919d781 | 17 | #ifdef arLCD |
codeman | 1:d8871919d781 | 18 | InterruptIn ezLCD3Int( PTD4 ); // interrupt instance for touch |
codeman | 1:d8871919d781 | 19 | DigitalOut _nrst(PTC7); |
codeman | 1:d8871919d781 | 20 | ezLCD3 lcd(PTA2, PTA1); //rx,tx |
codeman | 1:d8871919d781 | 21 | TSISensor tsi; |
codeman | 1:d8871919d781 | 22 | AnalogIn adc1(PTB0); |
codeman | 1:d8871919d781 | 23 | MMA8451Q acc(PTE25, PTE24, MMA8451_I2C_ADDRESS); |
codeman | 1:d8871919d781 | 24 | #endif |
codeman | 1:d8871919d781 | 25 | |
codeman | 1:d8871919d781 | 26 | DigitalOut myled(LED_BLUE); |
codeman | 1:d8871919d781 | 27 | volatile bool ezLCD3Touch = false; |
codeman | 1:d8871919d781 | 28 | |
codeman | 1:d8871919d781 | 29 | int color = BLACK; |
codeman | 1:d8871919d781 | 30 | int temp; |
codeman | 1:d8871919d781 | 31 | int touch=0; |
codeman | 1:d8871919d781 | 32 | int adc1Count = 0; |
codeman | 1:d8871919d781 | 33 | float adc1Average = 0; |
codeman | 1:d8871919d781 | 34 | |
codeman | 1:d8871919d781 | 35 | char ezID[20]; |
codeman | 1:d8871919d781 | 36 | char ezVER[20]; |
codeman | 1:d8871919d781 | 37 | char adcBuf[20]; |
codeman | 1:d8871919d781 | 38 | void ezLCD3Isr( void ) |
codeman | 1:d8871919d781 | 39 | { |
codeman | 1:d8871919d781 | 40 | ezLCD3Touch = true; |
codeman | 1:d8871919d781 | 41 | } |
codeman | 1:d8871919d781 | 42 | |
codeman | 1:d8871919d781 | 43 | int main() |
codeman | 1:d8871919d781 | 44 | { |
codeman | 1:d8871919d781 | 45 | /* |
codeman | 1:d8871919d781 | 46 | _nrst=0; |
codeman | 1:d8871919d781 | 47 | wait(1); |
codeman | 1:d8871919d781 | 48 | _nrst=1; |
codeman | 1:d8871919d781 | 49 | */ |
codeman | 1:d8871919d781 | 50 | wait(3); |
codeman | 1:d8871919d781 | 51 | |
codeman | 1:d8871919d781 | 52 | while(!lcd.sync()); |
codeman | 1:d8871919d781 | 53 | ezLCD3Int.fall(&ezLCD3Isr); |
codeman | 1:d8871919d781 | 54 | ezLCD3Touch = false; |
codeman | 1:d8871919d781 | 55 | myled=1; |
codeman | 1:d8871919d781 | 56 | lcd.cls(BLACK); |
codeman | 1:d8871919d781 | 57 | //int EmbossDkColor, int EmbossLtColor, int TextColor0, int TextColor1, int TextColorDisabled, int Color0, int Color1, int ColorDisabled, int CommonBkColor, int Fontw |
codeman | 1:d8871919d781 | 58 | lcd.theme(0, 111, 106, 0, 130, 0, 13, 12, 101, 100, 0); |
codeman | 1:d8871919d781 | 59 | // lcd.touchZone(1,0,0,319,239,1); |
codeman | 1:d8871919d781 | 60 | lcd.xy(0,0);//11 |
codeman | 1:d8871919d781 | 61 | lcd.color(BLACK); //1 |
codeman | 1:d8871919d781 | 62 | lcd.box(319,239, 1 );//2 |
codeman | 1:d8871919d781 | 63 | lcd.color(155); |
codeman | 1:d8871919d781 | 64 | lcd.xy(1,1); |
codeman | 1:d8871919d781 | 65 | lcd.line(317,1); |
codeman | 1:d8871919d781 | 66 | lcd.xy(1,1); |
codeman | 1:d8871919d781 | 67 | lcd.line(1,237); |
codeman | 1:d8871919d781 | 68 | lcd.color(WHITE); |
codeman | 1:d8871919d781 | 69 | lcd.xy(2,237); |
codeman | 1:d8871919d781 | 70 | lcd.line(317,237); |
codeman | 1:d8871919d781 | 71 | lcd.line(317,2); |
codeman | 1:d8871919d781 | 72 | lcd.color(WHITE);//3 |
codeman | 1:d8871919d781 | 73 | lcd.xy(300,100);//4 |
codeman | 1:d8871919d781 | 74 | // lcd.circle(50,0);//5 |
codeman | 1:d8871919d781 | 75 | lcd.xy(300,200);//6 |
codeman | 1:d8871919d781 | 76 | // lcd.circle(50,1);//7 |
codeman | 1:d8871919d781 | 77 | lcd.light(50);//8 |
codeman | 1:d8871919d781 | 78 | lcd.xy(40,10);//9 |
codeman | 1:d8871919d781 | 79 | lcd.print("--==[\\[28m Hello \\[65mMBED\\[28m World \\[3m]==--");//10 |
codeman | 1:d8871919d781 | 80 | lcd.xy(20,100);//11 |
codeman | 1:d8871919d781 | 81 | lcd.color(YELLOW);//12 |
codeman | 1:d8871919d781 | 82 | lcd.setStringID( 2,"Button1"); |
codeman | 1:d8871919d781 | 83 | lcd.setStringID( 3,"Button2"); |
codeman | 1:d8871919d781 | 84 | //lcd.setStringID( 3,"AMeter"); |
codeman | 1:d8871919d781 | 85 | lcd.button(2,20,40,100,40,1,0,10,0,2); |
codeman | 1:d8871919d781 | 86 | lcd.button(3,200,40,100,40,1,0,10,0,3); |
codeman | 1:d8871919d781 | 87 | lcd.getStringID( 65,ezID); |
codeman | 1:d8871919d781 | 88 | lcd.getStringID( 66,ezVER); |
codeman | 1:d8871919d781 | 89 | lcd.print(ezID); |
codeman | 1:d8871919d781 | 90 | lcd.color(PURPLE); |
codeman | 1:d8871919d781 | 91 | lcd.xy(20,120);//11 |
codeman | 1:d8871919d781 | 92 | lcd.print(ezVER); |
codeman | 1:d8871919d781 | 93 | lcd.color(TEAL); |
codeman | 1:d8871919d781 | 94 | lcd.xy(20,140); |
codeman | 1:d8871919d781 | 95 | lcd.printf("MaxX %d MaxY %d", lcd.getXmax()+1, lcd.getYmax()+1); //13 14 |
codeman | 1:d8871919d781 | 96 | lcd.light(5);//15 |
codeman | 1:d8871919d781 | 97 | lcd.light(100);//16 |
codeman | 1:d8871919d781 | 98 | lcd.image(20,165,"0.gif"); |
codeman | 1:d8871919d781 | 99 | lcd.image(55,165,"1.gif"); |
codeman | 1:d8871919d781 | 100 | lcd.image(90,165,"2.gif"); |
codeman | 1:d8871919d781 | 101 | lcd.image(125,165,"3.gif"); |
codeman | 1:d8871919d781 | 102 | lcd.color(WHITE);//17 |
codeman | 1:d8871919d781 | 103 | lcd.setStringID(4, "meter"); |
codeman | 1:d8871919d781 | 104 | lcd.setStringID(5, "%"); |
codeman | 1:d8871919d781 | 105 | lcd.setStringID(6, "X"); |
codeman | 1:d8871919d781 | 106 | lcd.setStringID(7, "Y"); |
codeman | 1:d8871919d781 | 107 | lcd.setStringID(8, "Z"); |
codeman | 1:d8871919d781 | 108 | lcd.staticText( 4, 200, 210, 100, 25, 8, 0, 4); |
codeman | 1:d8871919d781 | 109 | lcd.progressBar( 5, 200, 180, 100, 25, 1, 0, 100, 0 , 5); |
codeman | 1:d8871919d781 | 110 | lcd.progressBar( 6, 200, 90, 100, 25, 1, 0, 100, 0 , 6); |
codeman | 1:d8871919d781 | 111 | lcd.progressBar( 7, 200, 120, 100, 25, 1, 0, 100, 0 , 7); |
codeman | 1:d8871919d781 | 112 | lcd.progressBar( 8, 200, 150, 100, 25, 1, 0, 100, 0 , 8); |
codeman | 1:d8871919d781 | 113 | // lcd.ameter(3, 50, 30, 200, 200, 1, 10, 0, 120, 0, 3, 0); |
codeman | 1:d8871919d781 | 114 | |
codeman | 1:d8871919d781 | 115 | while(1) { |
codeman | 1:d8871919d781 | 116 | if(ezLCD3Touch) { |
codeman | 1:d8871919d781 | 117 | ezLCD3Touch = false; |
codeman | 1:d8871919d781 | 118 | touch=lcd.wstack(LIFO); |
codeman | 1:d8871919d781 | 119 | myled = !myled; |
codeman | 1:d8871919d781 | 120 | lcd.xy(10,210); |
codeman | 1:d8871919d781 | 121 | lcd.color(BLACK); |
codeman | 1:d8871919d781 | 122 | lcd.box(180,20,1); |
codeman | 1:d8871919d781 | 123 | lcd.color(WHITE); |
codeman | 1:d8871919d781 | 124 | switch( touch ) { |
codeman | 1:d8871919d781 | 125 | case 240: |
codeman | 1:d8871919d781 | 126 | lcd.print("Button1 Pressed"); |
codeman | 1:d8871919d781 | 127 | break; |
codeman | 1:d8871919d781 | 128 | case 214: |
codeman | 1:d8871919d781 | 129 | lcd.print("Button1 Released"); |
codeman | 1:d8871919d781 | 130 | break; |
codeman | 1:d8871919d781 | 131 | case 224: |
codeman | 1:d8871919d781 | 132 | lcd.print("Button1 Cancel"); |
codeman | 1:d8871919d781 | 133 | break; |
codeman | 1:d8871919d781 | 134 | case 340: |
codeman | 1:d8871919d781 | 135 | lcd.print("Button2 Pressed"); |
codeman | 1:d8871919d781 | 136 | break; |
codeman | 1:d8871919d781 | 137 | case 314: |
codeman | 1:d8871919d781 | 138 | lcd.print("Button2 Released"); |
codeman | 1:d8871919d781 | 139 | break; |
codeman | 1:d8871919d781 | 140 | case 324: |
codeman | 1:d8871919d781 | 141 | lcd.print("Button2 Cancel"); |
codeman | 1:d8871919d781 | 142 | break; |
codeman | 1:d8871919d781 | 143 | default: |
codeman | 1:d8871919d781 | 144 | lcd.print("default"); |
codeman | 1:d8871919d781 | 145 | break; |
codeman | 1:d8871919d781 | 146 | } |
codeman | 1:d8871919d781 | 147 | } |
codeman | 1:d8871919d781 | 148 | adc1Average += adc1.read(); |
codeman | 1:d8871919d781 | 149 | adc1Count ++; |
codeman | 1:d8871919d781 | 150 | if (adc1Count == 500) { |
codeman | 1:d8871919d781 | 151 | adc1Count=0; |
codeman | 1:d8871919d781 | 152 | sprintf(adcBuf, "%1.3f V",(adc1Average/500)*3.3); |
codeman | 1:d8871919d781 | 153 | lcd.setStringID(4, adcBuf); |
codeman | 1:d8871919d781 | 154 | lcd.wstate(4,REDRAW); |
codeman | 1:d8871919d781 | 155 | adc1Average =0; |
codeman | 0:b4366af9dee8 | 156 | } |
codeman | 1:d8871919d781 | 157 | wait(0.1); |
codeman | 1:d8871919d781 | 158 | lcd.wvalue(5,abs( tsi.readPercentage()*100)); |
codeman | 1:d8871919d781 | 159 | lcd.wvalue(6,abs(acc.getAccX())*100); |
codeman | 1:d8871919d781 | 160 | lcd.wvalue(7,abs(acc.getAccY())*100); |
codeman | 1:d8871919d781 | 161 | lcd.wvalue(8,abs(acc.getAccZ())*100); |
codeman | 1:d8871919d781 | 162 | } |
codeman | 1:d8871919d781 | 163 | |
codeman | 1:d8871919d781 | 164 | } |