![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
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); }*/ }