Mini Project 10: Displaying stuff from day 7

Dependencies:   DmTouch_UniGraphic UniGraphic mbed

main.cpp

Committer:
swescott17
Date:
2017-01-17
Revision:
9:0f4c86e7218a
Parent:
8:bbe3e332fe94
Child:
10:ee5708e7a36a

File content as of revision 9:0f4c86e7218a:

//MiniProject Day 7
//If tapped, the mbed will either read from a temperature sensor or the compass
#include "stdio.h"
#include "mbed.h"
#include "string"
#include "ILI932x.h"
#include "DmTouch.h"


#include "Arial12x12.h"
#include "Arial24x23.h"
//#include "pavement_48x34.h"
#include "mbed.h"
#include "compass_sensor.h"
#include "temp_sensor.h"
#include "acceler_sensor.h"
char orient=3;
Serial pc(USBTX, USBRX);
I2C i2c_port(p9, p10);                             // configures pins 9,10 for I2C communication with external sensors
float temp2;
int avg;
int choice = 0; //choice for the buttons on the touch screen
//const int addr1 = 0x53<<1;
DigitalOut led1(LED1);                             // configures mbed internal LED 1
DigitalOut led2(LED2);                             // configures mbed internal LED 2 
DigitalIn interupt(p20);     // sets accelerometer interupt as digital input at pin 20;
Timer sensor_timer;
DmTouch touch(DmTouch::DM_TFT24_104, p5, p6, p7, p8, p9);    
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
bool down, lastDown;
uint16_t tx, ty;
Timer t;

void UI()
{
                myLCD.set_font((unsigned char*) Arial24x23);
                myLCD.locate(60, 100);
                myLCD.printf("A");
                myLCD.circle(60,100,30,Blue);
                myLCD.locate(160, 100);
                myLCD.printf("C");
                myLCD.circle(160,100,30,Green);
                myLCD.locate(260, 100);
                myLCD.printf("T");
                myLCD.circle(260,100,30,Red);
}
  
int main() {
         myLCD.set_orientation(orient);
         myLCD.set_font((unsigned char*) Arial24x23);
        touch.setOrientation(orient);
        down = false;
        lastDown = false;
        tx = (uint16_t)0;
        ty = (uint16_t)0;
        //char sensorData[1];
        led1 = 0;
        led2 = 0;
        UI();
        touch.init();
        t.start();
        //avg = compass_config();
        //temperature_config();
        //configure_acceleration();
        while(1){
            //myLCD.foreground(Black);
             //myLCD.background(White);
             t.reset();
             while (t.read()<10)
             {
                touch.readTouchData(tx, ty, down);
                if (down)
                {
                    if(tx >= 30 && tx <= 90 && ty >= 70 && ty <= 130)
                    {
                            if (choice == 2 || choice == 3)
                            {
                                myLCD.cls();
                                UI();
                            }
                            myLCD.fillcircle(60,100,30,Blue);
                            myLCD.locate(60, 100);
                            myLCD.printf("A");
                            choice = 1;
                    }
                    if(tx >= 130 && tx <= 190 && ty >= 70 && ty <= 130)
                    {
                            if (choice == 1 || choice == 3)
                            {
                                myLCD.cls();
                                UI();
                            }
                            myLCD.fillcircle(160,100,30,Green);
                            myLCD.locate(160, 100);
                            myLCD.printf("C");
                            choice = 2;
                            
                    }
                    if(tx >= 230 && tx <= 290 && ty >= 70 && ty <= 130)
                    {
                            if (choice == 1 || choice == 2)
                            {
                                myLCD.cls();
                                UI();
                            }
                            myLCD.fillcircle(260,100,30,Red);
                            myLCD.locate(260, 100);
                            myLCD.printf("T");
                            choice = 3;
                    }
                }
                else if (lastDown)
                {
                    if (choice == 1)
                    {
                            myLCD.locate(60, 100);
                            myLCD.printf("A");
                            myLCD.fillcircle(60,100,30,Blue);
                        }
                    if (choice == 2)
                    {
                            myLCD.locate(160, 100);
                            myLCD.printf("C");
                            myLCD.fillcircle(160,100,30,Green);
                        }
                    if (choice == 3)
                    {
                            myLCD.locate(260, 100);
                            myLCD.printf("T");
                            myLCD.fillcircle(260,100,30,Red);
                        }
                }
            wait(0.040);
            lastDown = down;
            }
            }
                //getacceleration();
            /*wait(1);
            i2c_port.start();                        // forces start condition
            if (interupt == 1){
                i2c_port.start();
                i2c_port.write(addr1);
                i2c_port.write(0x30|0x80);
                i2c_port.stop();
                i2c_port.read(addr1,sensorData,1);
                wait(1);                        //checks for interupt signal from accelerometer
                if (sensorData[0] & 0x40){              //if one tap
                    led1 = 1;         
                    temp2 = temperature();
                    pc.printf("%f", temp2);
                    }
                if (sensorData[0] & 0x20) {             //if two taps
                    led2 = 1;
                    compass_n(avg);
                 }*/
                }