Use a touchscreen display to select which sensor measurement to display
Dependencies: mbed DisplayModule24_demo_day10
main.cpp@8:a7b7edb66de5, 2017-01-17 (annotated)
- Committer:
- ldelaney17
- Date:
- Tue Jan 17 21:28:13 2017 +0000
- Revision:
- 8:a7b7edb66de5
- Parent:
- 7:b275c76de4ba
final commit; cleaned up debug code; added comments; set 10s ticker period
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ldelaney17 | 0:b1840c1fbeb8 | 1 | #include "mbed.h" |
ldelaney17 | 1:f2a5ea8ff543 | 2 | #include "acc.h" |
ldelaney17 | 3:4cd5469a146f | 3 | #include "tmp.h" |
ldelaney17 | 6:3ee97b2c012c | 4 | #include "display.h" |
ldelaney17 | 7:b275c76de4ba | 5 | #include "compass.h" |
ldelaney17 | 6:3ee97b2c012c | 6 | |
ldelaney17 | 6:3ee97b2c012c | 7 | |
ldelaney17 | 0:b1840c1fbeb8 | 8 | DigitalOut myled(LED1); |
ldelaney17 | 1:f2a5ea8ff543 | 9 | I2C connection(p9, p10); |
ldelaney17 | 1:f2a5ea8ff543 | 10 | Serial pc(USBTX, USBRX); |
ldelaney17 | 6:3ee97b2c012c | 11 | PinName dataBus[]= {p30, p29, p28, p27, p26, p25, p24, p23}; |
ldelaney17 | 6:3ee97b2c012c | 12 | 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 |
ldelaney17 | 6:3ee97b2c012c | 13 | extern DmTouch touch(DmTouch::DM_TFT24_104, p5, p6, p7, p8, p11); |
ldelaney17 | 6:3ee97b2c012c | 14 | Ticker tDisplay; |
ldelaney17 | 6:3ee97b2c012c | 15 | Ticker tTouch; |
ldelaney17 | 6:3ee97b2c012c | 16 | bool a, t, c; |
ldelaney17 | 2:1ab4c19b99d4 | 17 | |
ldelaney17 | 0:b1840c1fbeb8 | 18 | int main() { |
ldelaney17 | 8:a7b7edb66de5 | 19 | touch.init(); //initialize all connections |
ldelaney17 | 7:b275c76de4ba | 20 | temp_init(); |
ldelaney17 | 7:b275c76de4ba | 21 | acc_init(); |
ldelaney17 | 7:b275c76de4ba | 22 | compass_init(); |
ldelaney17 | 8:a7b7edb66de5 | 23 | a = false; //set the global flag variables to start false |
ldelaney17 | 6:3ee97b2c012c | 24 | t = false; |
ldelaney17 | 6:3ee97b2c012c | 25 | c = false; |
ldelaney17 | 8:a7b7edb66de5 | 26 | tDisplay.attach(&display, 10); //10s ticker, per spec, controls the display |
ldelaney17 | 8:a7b7edb66de5 | 27 | tTouch.attach(&update_touch, 0.07); //.07s ticker, updates the flags for what is selected |
ldelaney17 | 8:a7b7edb66de5 | 28 | while(1) { //loop doing nothing |
ldelaney17 | 6:3ee97b2c012c | 29 | } |
ldelaney17 | 6:3ee97b2c012c | 30 | } |
ldelaney17 | 6:3ee97b2c012c | 31 | |
ldelaney17 | 6:3ee97b2c012c | 32 | bool in_A(int x, int y){ |
ldelaney17 | 6:3ee97b2c012c | 33 | //circle: 150, 100 | r = 40 |
ldelaney17 | 6:3ee97b2c012c | 34 | x -= 150; |
ldelaney17 | 6:3ee97b2c012c | 35 | y -= 100; |
ldelaney17 | 6:3ee97b2c012c | 36 | if (x*x + y*y < 40*40) |
ldelaney17 | 6:3ee97b2c012c | 37 | return true; |
ldelaney17 | 6:3ee97b2c012c | 38 | else |
ldelaney17 | 6:3ee97b2c012c | 39 | return false; |
ldelaney17 | 6:3ee97b2c012c | 40 | } |
ldelaney17 | 6:3ee97b2c012c | 41 | |
ldelaney17 | 8:a7b7edb66de5 | 42 | //check if coord is in T's circle |
ldelaney17 | 6:3ee97b2c012c | 43 | bool in_T(int x, int y){ |
ldelaney17 | 6:3ee97b2c012c | 44 | //circle: 40, 100 | r = 40 |
ldelaney17 | 6:3ee97b2c012c | 45 | x -= 40; |
ldelaney17 | 6:3ee97b2c012c | 46 | y -= 100; |
ldelaney17 | 6:3ee97b2c012c | 47 | if (x*x + y*y < 40*40) |
ldelaney17 | 6:3ee97b2c012c | 48 | return true; |
ldelaney17 | 6:3ee97b2c012c | 49 | else |
ldelaney17 | 6:3ee97b2c012c | 50 | return false; |
ldelaney17 | 0:b1840c1fbeb8 | 51 | } |
ldelaney17 | 2:1ab4c19b99d4 | 52 | |
ldelaney17 | 6:3ee97b2c012c | 53 | bool in_C(int x, int y){ |
ldelaney17 | 6:3ee97b2c012c | 54 | //circle: 260, 100 | r = 40 |
ldelaney17 | 6:3ee97b2c012c | 55 | x -= 260; |
ldelaney17 | 6:3ee97b2c012c | 56 | y -= 100; |
ldelaney17 | 6:3ee97b2c012c | 57 | if (x*x + y*y < 40*40) |
ldelaney17 | 6:3ee97b2c012c | 58 | return true; |
ldelaney17 | 6:3ee97b2c012c | 59 | else |
ldelaney17 | 6:3ee97b2c012c | 60 | return false; |
ldelaney17 | 6:3ee97b2c012c | 61 | } |
ldelaney17 | 2:1ab4c19b99d4 | 62 |