Simple Paint Demo - MBED + SmartGPU2 board

Dependencies:   SMARTGPU2 mbed

Committer:
emmanuelchio
Date:
Fri Apr 18 01:30:02 2014 +0000
Revision:
6:b7a024b9fc2d
Parent:
5:2318aa0508db
SmartGPU2 SimplePaint_SG2 demo- Please select(uncomment) your smartGPU2 board under SMARTGPU2.h file before compiling!!!

Who changed what in which revision?

UserRevisionLine numberNew contents of line
emmanuelchio 1:1111ecf2d67c 1 /**************************************************************************************/
emmanuelchio 0:b6d1a54b364d 2 /**************************************************************************************/
emmanuelchio 0:b6d1a54b364d 3 /*SMARTGPU2 intelligent embedded graphics processor unit
emmanuelchio 1:1111ecf2d67c 4 those examples are for using the SMARTGPU2 with the mbed microcontoller, just connect tx,rx,and reset
emmanuelchio 0:b6d1a54b364d 5 Board:
emmanuelchio 1:1111ecf2d67c 6 http://www.vizictechnologies.com/
emmanuelchio 0:b6d1a54b364d 7
emmanuelchio 0:b6d1a54b364d 8 www.vizictechnologies.com
emmanuelchio 1:1111ecf2d67c 9 Vizic Technologies copyright 2014 */
emmanuelchio 1:1111ecf2d67c 10 /**************************************************************************************/
emmanuelchio 0:b6d1a54b364d 11 /**************************************************************************************/
emmanuelchio 0:b6d1a54b364d 12
emmanuelchio 0:b6d1a54b364d 13 #include "mbed.h"
emmanuelchio 0:b6d1a54b364d 14 #include "SMARTGPU2.h"
emmanuelchio 0:b6d1a54b364d 15
emmanuelchio 0:b6d1a54b364d 16 SMARTGPU2 lcd(TXPIN,RXPIN,RESETPIN); //create our object called "lcd"
emmanuelchio 0:b6d1a54b364d 17
emmanuelchio 2:747505abb216 18 #define PENSIZE 3 //size of the drawing pen
emmanuelchio 0:b6d1a54b364d 19
emmanuelchio 0:b6d1a54b364d 20 /***************************************************/
emmanuelchio 0:b6d1a54b364d 21 /***************************************************/
emmanuelchio 0:b6d1a54b364d 22 void initializeSmartGPU2(void){ //Initialize SMARTGPU2 Board
emmanuelchio 0:b6d1a54b364d 23 lcd.reset(); //physically reset SMARTGPU2
emmanuelchio 0:b6d1a54b364d 24 lcd.start(); //initialize the SMARTGPU2 processor
emmanuelchio 0:b6d1a54b364d 25 }
emmanuelchio 0:b6d1a54b364d 26
emmanuelchio 0:b6d1a54b364d 27 /***************************************************/
emmanuelchio 0:b6d1a54b364d 28 /***************************************************/
emmanuelchio 0:b6d1a54b364d 29 /***************************************************/
emmanuelchio 0:b6d1a54b364d 30 /***************************************************/
emmanuelchio 0:b6d1a54b364d 31 int main() {
emmanuelchio 2:747505abb216 32 POINT point;
emmanuelchio 4:be44a445d990 33 NUMBEROFBYTES bytes;
emmanuelchio 2:747505abb216 34
emmanuelchio 6:b7a024b9fc2d 35 initializeSmartGPU2();
emmanuelchio 2:747505abb216 36 lcd.baudChange(BAUD6); // Set a fast baud!, always that we use touch functions is recommended to use fast baud rates
emmanuelchio 0:b6d1a54b364d 37
emmanuelchio 2:747505abb216 38 //front cover
emmanuelchio 2:747505abb216 39 lcd.setTextColour(YELLOW);
emmanuelchio 2:747505abb216 40 lcd.setTextSize(FONT4);
emmanuelchio 6:b7a024b9fc2d 41 lcd.string(LCD_WIDTH/8,LCD_HEIGHT/4,MAX_X_LANDSCAPE,MAX_Y_LANDSCAPE,"Mini Paint",&bytes);
emmanuelchio 2:747505abb216 42 lcd.setTextColour(BLUE);
emmanuelchio 2:747505abb216 43 lcd.setTextSize(FONT3);
emmanuelchio 6:b7a024b9fc2d 44 lcd.string(LCD_WIDTH/6,LCD_HEIGHT/2,MAX_X_LANDSCAPE,MAX_Y_LANDSCAPE,"Touch on corner \nto erase screen",&bytes);
emmanuelchio 2:747505abb216 45 lcd.setTextColour(MAGENTA);
emmanuelchio 2:747505abb216 46 lcd.setTextSize(FONT2);
emmanuelchio 6:b7a024b9fc2d 47 lcd.string(LCD_WIDTH/8,MAX_Y_LANDSCAPE-(LCD_HEIGHT/3),MAX_X_LANDSCAPE,MAX_Y_LANDSCAPE,"Touch screen to begin",&bytes);
emmanuelchio 2:747505abb216 48
emmanuelchio 2:747505abb216 49 while(lcd.touchScreen(&point)==INVALID); // Wait for a touch on the screen to start
emmanuelchio 2:747505abb216 50 lcd.erase();
emmanuelchio 2:747505abb216 51 lcd.objButton(MAX_X_LANDSCAPE-40,0,MAX_X_LANDSCAPE,25,DESELECTED,"clear");
emmanuelchio 5:2318aa0508db 52 wait_ms(500);
emmanuelchio 2:747505abb216 53
emmanuelchio 2:747505abb216 54 while(1){ // Loop forever
emmanuelchio 2:747505abb216 55 if(lcd.touchScreen(&point)==VALID){ // If we receive a touch on the screen
emmanuelchio 2:747505abb216 56 if((point.x > (MAX_X_LANDSCAPE-40)) && (point.y < 25)){ // if touch on clear button
emmanuelchio 2:747505abb216 57 lcd.erase();
emmanuelchio 2:747505abb216 58 lcd.objButton(MAX_X_LANDSCAPE-40,0,MAX_X_LANDSCAPE,25,DESELECTED,"clear");
emmanuelchio 5:2318aa0508db 59 wait_ms(200);
emmanuelchio 2:747505abb216 60 }else{ // touch anywhere on the screen
emmanuelchio 2:747505abb216 61 lcd.drawCircle(point.x,point.y,PENSIZE,YELLOW,FILL); // Draw circle on touched coordinates
emmanuelchio 2:747505abb216 62 }
emmanuelchio 2:747505abb216 63 }
emmanuelchio 2:747505abb216 64 }
emmanuelchio 0:b6d1a54b364d 65 }