turns internal LEDs on and off

Dependencies:   DmTouch_UniGraphic UniGraphic mbed

main.cpp

Committer:
jmiller18
Date:
2016-01-22
Revision:
1:699abdc72e3c
Parent:
0:448f8ee9d3f1

File content as of revision 1:699abdc72e3c:

#include "stdio.h"
#include "mbed.h"
#include "string"
#include "ILI932x.h"
#include "DmTouch.h"
#include "Arial24x23.h"

/* Configure the DisplayModule ILI9325 2.4" display for 8-bit bus communication

    mbed pin    display pin
    --------    -----------
    p15         CS (L15)
    p17         RST (L17)
    p16         RS (L4)
    p14         WR (L5)
    p20         RD (L6)
    
    p30         DB8 (L7)
    p29         DB9 (L8)
    p28         DB10 (L9)
    p27         DB11 (L10)
    p26         DB12 (L11)
    p25         DB13 (L12)
    p24         DB14 (L13)
    p23         DB15 (L14)
    
    p1          GND (L1)
    p40         Vin (L2)
    p40         LED Backlight (L19)
    
    Additional connections to add touch response

    mbed pin    display pin
    --------    -----------
    p5          T_MOSI (R11)
    p6          T_MISO (R13)
    p7          T_CLK (R9)
    p8          T_CS (R10)
    p9          T_IRQ (R14)
*/  

PinName dataBus[]= {p30, p29, p28, p27, p26, p25, p24, p23};
ILI932x myLCD(BUS_8, dataBus, p15, p17, p16, p14, p20, "myLCD", 240, 320); // Bus 8 bit, bus pin array, CS, RST, DC, WR, RD, name, xpixels, ypixels
DmTouch touch(DmTouch::DM_TFT24_104, p5, p6, p7, p8, p9);
char orient=3;              // orient horizontal is long axis
bool down, lastDown;        // keeps track of whether or not the screen is/was pressed
Timer t;
DigitalOut led1(LED1);
DigitalOut led2(LED2);
DigitalOut led3(LED3);
DigitalOut led4(LED4);
uint16_t tx,ty;         // coordinates for touch screen

int main(){
    
    touch.init();
    t.start();
    myLCD.set_orientation(orient);
    myLCD.background(Black);    // set background to Black
    myLCD.foreground(White);    // set chars to White
    myLCD.fillcircle(80,60,30,Blue);    //creating circles
    myLCD.fillcircle(240,60,30,Red);
    myLCD.fillcircle(80,180,30,Green);
    myLCD.fillcircle(240,180,30,Yellow);
    
   myLCD.set_font((unsigned char*) Arial24x23);
    myLCD.locate(70,50);
    myLCD.printf("1\t");
    myLCD.locate(230,50);
    myLCD.printf("2\t");
    myLCD.locate(70,170);
    myLCD.printf("3\t");
    myLCD.locate(230,170);
    myLCD.printf("4\t");
    
    // Touch screen demo

        touch.setOrientation(orient);       // orient LCD screen
        down = false;
        bool justDown = false;

        t.reset();                          // reset timer
        while (1) {
            
            touch.readTouchData(tx, ty, down);          // read if touch screen is pressed and where
            if (down){
                if(t.read_ms()>200){                    // "debounce
                    if ((110>tx) && (tx>50) && (90>ty) && (ty>30))  // if touch screen is pressed in circle 1
                        led1 = !led1;                               //toggle LED 1
                    if ((270>tx) && (tx>210) && (90>ty) && (ty>30)) // if touch screen is pressed in circle 2
                        led2 = !led2;                               //toggle LED 2
                    if ((110>tx) && (tx>50) && (210>ty) && (ty>150)) // if touch screen is pressed in circle 3
                        led3 = !led3;                               //toggle LED 3
                    if ((270>tx) && (tx>210) && (210>ty) && (ty>150)) // if touch screen is pressed in circle 4
                        led4 = !led4;                               //toggle LED 4
                    
                t.reset();                              // reset timer
                wait(0.04);
                
                }   
                else if (justDown) {                        // if it was just pressed but is no longer pressed
                    
                // necessary to prevent leds from blinking
                myLCD.locate(40, 20);
                myLCD.printf("     ");
                }
                justDown = down;                
            }
        }
                
}