Contains the main execution of the clock uses headers to import functions
Dependencies: RTC-DS1307 SPI_TFT_ILI9341 TFT_fonts mbed tsi_sensor
Fork of TFT_Mikroelectronika_IL9341_sketchpad by
poll.h@31:3255668e6b08, 2017-05-25 (annotated)
- Committer:
- mlin
- Date:
- Thu May 25 15:32:20 2017 +0000
- Revision:
- 31:3255668e6b08
- Parent:
- 13:e74e09de81e4
- Child:
- 40:05798eeadd02
.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mlin | 10:9d9b3b9b28b8 | 1 | #include "stdio.h" |
mlin | 31:3255668e6b08 | 2 | #define PinXm A1 |
mlin | 31:3255668e6b08 | 3 | #define PinXp A0 |
mlin | 31:3255668e6b08 | 4 | #define PinYm A3 |
mlin | 31:3255668e6b08 | 5 | #define PinYp A2 |
mlin | 10:9d9b3b9b28b8 | 6 | |
mlin | 10:9d9b3b9b28b8 | 7 | #include "SPI_TFT_ILI9341.h" |
mlin | 10:9d9b3b9b28b8 | 8 | |
mlin | 10:9d9b3b9b28b8 | 9 | |
mlin | 10:9d9b3b9b28b8 | 10 | |
mlin | 10:9d9b3b9b28b8 | 11 | |
mlin | 10:9d9b3b9b28b8 | 12 | |
mlin | 10:9d9b3b9b28b8 | 13 | |
mlin | 10:9d9b3b9b28b8 | 14 | // example to test the TFT Display from Mikroelectronika |
mlin | 10:9d9b3b9b28b8 | 15 | |
mlin | 10:9d9b3b9b28b8 | 16 | |
mlin | 10:9d9b3b9b28b8 | 17 | |
mlin | 10:9d9b3b9b28b8 | 18 | // the display has a backlight switch on board |
mlin | 10:9d9b3b9b28b8 | 19 | //DigitalOut LCD_LED(PTA4); // may not be needed on mikroelectronika board |
mlin | 10:9d9b3b9b28b8 | 20 | //DigitalOut pwr(PTD7); // ditto |
mlin | 10:9d9b3b9b28b8 | 21 | |
mlin | 10:9d9b3b9b28b8 | 22 | // the TFT is connected to SPI pin 5-7 |
mlin | 10:9d9b3b9b28b8 | 23 | //SPI_TFT_ILI9341 TFT(p5, p6, p7, p8, p9, p10,"TFT"); // mosi, miso, sclk, cs, reset, dc for lpc1768 |
mlin | 31:3255668e6b08 | 24 | SPI_TFT_ILI9341 TFT(PTA16, PTA17, PTA15, PTD2, PTD4, PTA13, "TFT"); // mosi, miso, sclk, cs, reset, dc for frdmkl25z |
mlin | 10:9d9b3b9b28b8 | 25 | //NB better combination to use a coherent 2x4 block for lcd |
mlin | 10:9d9b3b9b28b8 | 26 | // SPI_TFT_ILI9341 TFT(PTD2, PTD3, PTD1, PTA16, PTA17, PTC16,"TFT"); // mosi, miso, sclk, cs, reset, dc for frdmkl25z |
mlin | 10:9d9b3b9b28b8 | 27 | // DigitalOut LCD_LED(PTC17); |
mlin | 10:9d9b3b9b28b8 | 28 | int touching = 0; |
mlin | 10:9d9b3b9b28b8 | 29 | |
mlin | 10:9d9b3b9b28b8 | 30 | // Subroutine to read the x location of the touch point |
mlin | 10:9d9b3b9b28b8 | 31 | // need to set x+ to 3V and ground x- then read analogue voltage on ym |
mlin | 10:9d9b3b9b28b8 | 32 | //nb need to add a check for actual touch as opposed to random crap |
mlin | 10:9d9b3b9b28b8 | 33 | |
mlin | 10:9d9b3b9b28b8 | 34 | |
mlin | 10:9d9b3b9b28b8 | 35 | |
mlin | 10:9d9b3b9b28b8 | 36 | |
mlin | 10:9d9b3b9b28b8 | 37 | |
Owenmatthewmcgowan | 13:e74e09de81e4 | 38 | int readY() |
mlin | 10:9d9b3b9b28b8 | 39 | { |
mlin | 10:9d9b3b9b28b8 | 40 | int delta = 0, xv1 = 0, xv2 = 0, k = 0; |
mlin | 10:9d9b3b9b28b8 | 41 | int temp1 = 0, temp2 = 0; |
mlin | 10:9d9b3b9b28b8 | 42 | |
mlin | 31:3255668e6b08 | 43 | AnalogIn yp(PinYp); |
mlin | 31:3255668e6b08 | 44 | AnalogIn ym(PinYm); |
mlin | 31:3255668e6b08 | 45 | DigitalOut xp(PinXp); |
mlin | 31:3255668e6b08 | 46 | DigitalOut xm(PinXm); |
mlin | 10:9d9b3b9b28b8 | 47 | |
mlin | 11:1da15361a35b | 48 | xp = 1; // set positive side of x high |
mlin | 10:9d9b3b9b28b8 | 49 | xm = 0; |
mlin | 10:9d9b3b9b28b8 | 50 | // dont need to do anyhting to set low side as it should be fine. |
mlin | 10:9d9b3b9b28b8 | 51 | // but do need to disconnect yp |
mlin | 10:9d9b3b9b28b8 | 52 | //yp.PinMode(PullNone) |
mlin | 10:9d9b3b9b28b8 | 53 | delta = 0; |
mlin | 10:9d9b3b9b28b8 | 54 | for(k = 0; k < 10; k++) { // make 10 readings to average |
mlin | 10:9d9b3b9b28b8 | 55 | temp1 = (int)ym.read_u16(); |
mlin | 10:9d9b3b9b28b8 | 56 | temp2 = (int)yp.read_u16(); |
mlin | 10:9d9b3b9b28b8 | 57 | xv1 += temp1; // get value |
mlin | 10:9d9b3b9b28b8 | 58 | xv2 += temp2; // get other value |
mlin | 10:9d9b3b9b28b8 | 59 | delta += abs(temp1 - temp2) / 10; //gets individual differences |
mlin | 11:1da15361a35b | 60 | // pc.printf("val1 = %d - val2 = %d-diff = %d\n\r",temp1,temp2,temp1-temp2); |
mlin | 10:9d9b3b9b28b8 | 61 | //observing behaviour when touching / nt touching |
mlin | 11:1da15361a35b | 62 | |
mlin | 10:9d9b3b9b28b8 | 63 | } |
mlin | 10:9d9b3b9b28b8 | 64 | //delta=abs(xv2-xv1)/10; |
mlin | 10:9d9b3b9b28b8 | 65 | if(delta < 300) touching = 1; |
mlin | 10:9d9b3b9b28b8 | 66 | else touching = 0; |
mlin | 11:1da15361a35b | 67 | //pc.printf("delta=%d \t %d\n\r",delta,touching); |
mlin | 10:9d9b3b9b28b8 | 68 | xp = 0; |
mlin | 10:9d9b3b9b28b8 | 69 | xm = 0; |
mlin | 10:9d9b3b9b28b8 | 70 | return (240 - (240 * ((xv2) / 1 / 10 - 5800)) / 51200); //returns the average of both |
mlin | 10:9d9b3b9b28b8 | 71 | //return(xv2/10); //maybe better to return the average of both.... |
mlin | 10:9d9b3b9b28b8 | 72 | } |
mlin | 10:9d9b3b9b28b8 | 73 | // subroutine to read y values - has different pin functions .. |
Owenmatthewmcgowan | 13:e74e09de81e4 | 74 | int readX() |
mlin | 10:9d9b3b9b28b8 | 75 | { |
mlin | 31:3255668e6b08 | 76 | DigitalOut yp(PinYp); |
mlin | 31:3255668e6b08 | 77 | DigitalOut ym(PinYm); |
mlin | 31:3255668e6b08 | 78 | AnalogIn xp(PinXp); |
mlin | 31:3255668e6b08 | 79 | AnalogIn xm(PinXm); |
mlin | 10:9d9b3b9b28b8 | 80 | int delta = 0, yv1 = 0, yv2 = 0, k = 0; |
mlin | 10:9d9b3b9b28b8 | 81 | int temp1 = 0, temp2 = 0; |
mlin | 10:9d9b3b9b28b8 | 82 | yp = 1; // set positive sdie of x high |
mlin | 10:9d9b3b9b28b8 | 83 | ym = 0; |
mlin | 10:9d9b3b9b28b8 | 84 | // dont need to do anyhting to set low side as it should be fine. |
mlin | 10:9d9b3b9b28b8 | 85 | // but do need to disconnect yp |
mlin | 10:9d9b3b9b28b8 | 86 | //yp.PinMode(PullNone) |
mlin | 10:9d9b3b9b28b8 | 87 | delta = 0; |
mlin | 10:9d9b3b9b28b8 | 88 | for(k = 0; k < 10; k++) { // make 10 readings to average |
mlin | 10:9d9b3b9b28b8 | 89 | temp1 = (int)xm.read_u16(); |
mlin | 10:9d9b3b9b28b8 | 90 | temp2 = (int)xp.read_u16(); |
mlin | 10:9d9b3b9b28b8 | 91 | yv1 += temp1; // get value |
mlin | 10:9d9b3b9b28b8 | 92 | yv2 += temp2; // get other value |
mlin | 10:9d9b3b9b28b8 | 93 | delta += abs(temp1 - temp2) / 10; |
mlin | 10:9d9b3b9b28b8 | 94 | //pc.printf("val1 = %d - val2 = %d-diff = %d\n\r",temp1,temp2,temp1-temp2); |
mlin | 10:9d9b3b9b28b8 | 95 | } |
mlin | 10:9d9b3b9b28b8 | 96 | //int yval=(int)xm.read_u16(); // get value |
mlin | 10:9d9b3b9b28b8 | 97 | //pc.printf("yval=%d",yval); |
mlin | 10:9d9b3b9b28b8 | 98 | yp = 0; |
mlin | 10:9d9b3b9b28b8 | 99 | ym = 0; |
mlin | 31:3255668e6b08 | 100 | return ((320 * ((yv2) / 1 / 10 - 3000)) / 58300); // returns X |
mlin | 10:9d9b3b9b28b8 | 101 | // return(yval); |
mlin | 10:9d9b3b9b28b8 | 102 | |
mlin | 10:9d9b3b9b28b8 | 103 | } |
mlin | 10:9d9b3b9b28b8 | 104 | |
mlin | 10:9d9b3b9b28b8 | 105 | |
mlin | 10:9d9b3b9b28b8 | 106 | |
mlin | 11:1da15361a35b | 107 | void poll() |
mlin | 11:1da15361a35b | 108 | { |
mlin | 10:9d9b3b9b28b8 | 109 | int xp,yp = 0; |
mlin | 10:9d9b3b9b28b8 | 110 | xp=readX(); |
mlin | 10:9d9b3b9b28b8 | 111 | yp=readY(); |
mlin | 10:9d9b3b9b28b8 | 112 | } |