
FAE training 2019 demo code
main.cpp@0:9830d14e7908, 2019-12-10 (annotated)
- Committer:
- EamonnWalsh
- Date:
- Tue Dec 10 19:34:53 2019 +0000
- Revision:
- 0:9830d14e7908
Initial commit
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
EamonnWalsh | 0:9830d14e7908 | 1 | #include "mbed.h" |
EamonnWalsh | 0:9830d14e7908 | 2 | #include "SPI_TFT_ILI9341.h" |
EamonnWalsh | 0:9830d14e7908 | 3 | #include "FT6206.h" |
EamonnWalsh | 0:9830d14e7908 | 4 | |
EamonnWalsh | 0:9830d14e7908 | 5 | #include "ADXL362.h" |
EamonnWalsh | 0:9830d14e7908 | 6 | #include "Communication.h" |
EamonnWalsh | 0:9830d14e7908 | 7 | #include <SPI.h> |
EamonnWalsh | 0:9830d14e7908 | 8 | |
EamonnWalsh | 0:9830d14e7908 | 9 | #include "Arial12x12.h" |
EamonnWalsh | 0:9830d14e7908 | 10 | #include "Arial24x23.h" |
EamonnWalsh | 0:9830d14e7908 | 11 | #include "Arial28x28.h" |
EamonnWalsh | 0:9830d14e7908 | 12 | #include "font_big.h" |
EamonnWalsh | 0:9830d14e7908 | 13 | |
EamonnWalsh | 0:9830d14e7908 | 14 | //#include "ADT7420.h" |
EamonnWalsh | 0:9830d14e7908 | 15 | |
EamonnWalsh | 0:9830d14e7908 | 16 | #define PIN_XP A3 |
EamonnWalsh | 0:9830d14e7908 | 17 | #define PIN_XM A1 |
EamonnWalsh | 0:9830d14e7908 | 18 | #define PIN_YP A2 |
EamonnWalsh | 0:9830d14e7908 | 19 | #define PIN_YM A0 |
EamonnWalsh | 0:9830d14e7908 | 20 | #define PIN_SCLK D13 |
EamonnWalsh | 0:9830d14e7908 | 21 | #define PIN_MISO D12 |
EamonnWalsh | 0:9830d14e7908 | 22 | #define PIN_MOSI D11 |
EamonnWalsh | 0:9830d14e7908 | 23 | #define PIN_CS_TFT D10 // chip select pin |
EamonnWalsh | 0:9830d14e7908 | 24 | #define PIN_DC_TFT D9 // data/command select pin. |
EamonnWalsh | 0:9830d14e7908 | 25 | #define PIN_RESET_TFT D8 |
EamonnWalsh | 0:9830d14e7908 | 26 | //#define PIN_BL_TFT D7 |
EamonnWalsh | 0:9830d14e7908 | 27 | #define PIN_CS_SD D4 |
EamonnWalsh | 0:9830d14e7908 | 28 | |
EamonnWalsh | 0:9830d14e7908 | 29 | #define PORTRAIT 0 |
EamonnWalsh | 0:9830d14e7908 | 30 | #define LANDSCAPE 1 |
EamonnWalsh | 0:9830d14e7908 | 31 | |
EamonnWalsh | 0:9830d14e7908 | 32 | #define PIN_SCL_FT6206 D15 |
EamonnWalsh | 0:9830d14e7908 | 33 | #define PIN_SDA_FT6206 D14 |
EamonnWalsh | 0:9830d14e7908 | 34 | #define PIN_INT_FT6206 D7 |
EamonnWalsh | 0:9830d14e7908 | 35 | |
EamonnWalsh | 0:9830d14e7908 | 36 | #define ILI9341_TFTWIDTH 320 |
EamonnWalsh | 0:9830d14e7908 | 37 | #define ILI9341_TFTHEIGHT 240 |
EamonnWalsh | 0:9830d14e7908 | 38 | |
EamonnWalsh | 0:9830d14e7908 | 39 | #define EXTERNAL_I2C 0x49<<1 |
EamonnWalsh | 0:9830d14e7908 | 40 | #define INTERNAL_I2C 0x48<<1 |
EamonnWalsh | 0:9830d14e7908 | 41 | |
EamonnWalsh | 0:9830d14e7908 | 42 | #define I2C_SCL D15 |
EamonnWalsh | 0:9830d14e7908 | 43 | #define I2C_SDA D14 |
EamonnWalsh | 0:9830d14e7908 | 44 | |
EamonnWalsh | 0:9830d14e7908 | 45 | DigitalOut led1(LED1); |
EamonnWalsh | 0:9830d14e7908 | 46 | DigitalOut led2(LED2); |
EamonnWalsh | 0:9830d14e7908 | 47 | DigitalOut led3(LED3); |
EamonnWalsh | 0:9830d14e7908 | 48 | DigitalOut led4(LED4); |
EamonnWalsh | 0:9830d14e7908 | 49 | |
EamonnWalsh | 0:9830d14e7908 | 50 | //SPI_TFT_ILI9341 TFT(p5, p6, p7, p8, p9, p10,"TFT"); // mosi, miso, sclk, cs, reset, dc |
EamonnWalsh | 0:9830d14e7908 | 51 | SPI_TFT_ILI9341 TFT(PIN_MOSI, PIN_MISO, PIN_SCLK, PIN_CS_TFT, PIN_RESET_TFT, PIN_DC_TFT, "TFT"); // mosi, miso, sclk, cs, reset, dc |
EamonnWalsh | 0:9830d14e7908 | 52 | FT6206 FT6206(PIN_SDA_FT6206, PIN_SCL_FT6206, PIN_INT_FT6206); // sda, scl, int |
EamonnWalsh | 0:9830d14e7908 | 53 | |
EamonnWalsh | 0:9830d14e7908 | 54 | //Configure and instantiate the UART - PB10/11 |
EamonnWalsh | 0:9830d14e7908 | 55 | DigitalIn adxl_int(SDP_GPIO_1); |
EamonnWalsh | 0:9830d14e7908 | 56 | I2C i2c(I2C_SDA,I2C_SCL); |
EamonnWalsh | 0:9830d14e7908 | 57 | Serial pc(USBTX, USBRX, 115200); |
EamonnWalsh | 0:9830d14e7908 | 58 | |
EamonnWalsh | 0:9830d14e7908 | 59 | uint8_t ui8s[22]; |
EamonnWalsh | 0:9830d14e7908 | 60 | uint8_t ui8xu; |
EamonnWalsh | 0:9830d14e7908 | 61 | uint8_t ui8xd; |
EamonnWalsh | 0:9830d14e7908 | 62 | uint8_t ui8yu; |
EamonnWalsh | 0:9830d14e7908 | 63 | uint8_t ui8yd; |
EamonnWalsh | 0:9830d14e7908 | 64 | uint8_t ui8all; |
EamonnWalsh | 0:9830d14e7908 | 65 | uint8_t ui8awake; |
EamonnWalsh | 0:9830d14e7908 | 66 | |
EamonnWalsh | 0:9830d14e7908 | 67 | void initTFT(void) |
EamonnWalsh | 0:9830d14e7908 | 68 | { |
EamonnWalsh | 0:9830d14e7908 | 69 | //Configure the display driver |
EamonnWalsh | 0:9830d14e7908 | 70 | TFT.background(Black); |
EamonnWalsh | 0:9830d14e7908 | 71 | TFT.foreground(White); |
EamonnWalsh | 0:9830d14e7908 | 72 | wait(0.01) ; |
EamonnWalsh | 0:9830d14e7908 | 73 | TFT.cls(); |
EamonnWalsh | 0:9830d14e7908 | 74 | } |
EamonnWalsh | 0:9830d14e7908 | 75 | |
EamonnWalsh | 0:9830d14e7908 | 76 | |
EamonnWalsh | 0:9830d14e7908 | 77 | int main() |
EamonnWalsh | 0:9830d14e7908 | 78 | { |
EamonnWalsh | 0:9830d14e7908 | 79 | /* Initialize accelerometer */ |
EamonnWalsh | 0:9830d14e7908 | 80 | Sensor_Init(); |
EamonnWalsh | 0:9830d14e7908 | 81 | |
EamonnWalsh | 0:9830d14e7908 | 82 | /* Start accelerometer measurement mode */ |
EamonnWalsh | 0:9830d14e7908 | 83 | Sensor_Start(); |
EamonnWalsh | 0:9830d14e7908 | 84 | //connected = adt7420_init(&device, init_params); |
EamonnWalsh | 0:9830d14e7908 | 85 | |
EamonnWalsh | 0:9830d14e7908 | 86 | //Configure the display driver |
EamonnWalsh | 0:9830d14e7908 | 87 | TFT.claim(stdout); |
EamonnWalsh | 0:9830d14e7908 | 88 | TFT.background(Black); |
EamonnWalsh | 0:9830d14e7908 | 89 | TFT.foreground(White); |
EamonnWalsh | 0:9830d14e7908 | 90 | TFT.set_orientation(LANDSCAPE); |
EamonnWalsh | 0:9830d14e7908 | 91 | TFT.cls(); |
EamonnWalsh | 0:9830d14e7908 | 92 | |
EamonnWalsh | 0:9830d14e7908 | 93 | //Print a welcome message |
EamonnWalsh | 0:9830d14e7908 | 94 | TFT.set_font((unsigned char*) Arial24x23); |
EamonnWalsh | 0:9830d14e7908 | 95 | TFT.locate(0,0); |
EamonnWalsh | 0:9830d14e7908 | 96 | TFT.printf("\n Ready\n"); |
EamonnWalsh | 0:9830d14e7908 | 97 | wait(0.5); |
EamonnWalsh | 0:9830d14e7908 | 98 | TFT.cls(); |
EamonnWalsh | 0:9830d14e7908 | 99 | TFT.locate(0,0); |
EamonnWalsh | 0:9830d14e7908 | 100 | TFT.printf("\n Go"); |
EamonnWalsh | 0:9830d14e7908 | 101 | wait(0.5); |
EamonnWalsh | 0:9830d14e7908 | 102 | TFT.cls(); |
EamonnWalsh | 0:9830d14e7908 | 103 | // FT6206.begin(); |
EamonnWalsh | 0:9830d14e7908 | 104 | int X1, Y1, X2, Y2; |
EamonnWalsh | 0:9830d14e7908 | 105 | X2 = -100; |
EamonnWalsh | 0:9830d14e7908 | 106 | int i = 0; |
EamonnWalsh | 0:9830d14e7908 | 107 | int awake=0; |
EamonnWalsh | 0:9830d14e7908 | 108 | int register_value =0; |
EamonnWalsh | 0:9830d14e7908 | 109 | char cmd[2]; |
EamonnWalsh | 0:9830d14e7908 | 110 | char cmd2[2]; |
EamonnWalsh | 0:9830d14e7908 | 111 | char cmd3[2]; |
EamonnWalsh | 0:9830d14e7908 | 112 | while(1) |
EamonnWalsh | 0:9830d14e7908 | 113 | { |
EamonnWalsh | 0:9830d14e7908 | 114 | if(adxl_int) |
EamonnWalsh | 0:9830d14e7908 | 115 | { cmd[0]= 0x0B; |
EamonnWalsh | 0:9830d14e7908 | 116 | cmd2[0]= 0x00; |
EamonnWalsh | 0:9830d14e7908 | 117 | cmd3[0]= 0x01; |
EamonnWalsh | 0:9830d14e7908 | 118 | ui8awake =1; |
EamonnWalsh | 0:9830d14e7908 | 119 | TFT.cls(); |
EamonnWalsh | 0:9830d14e7908 | 120 | TFT.locate(0,0); |
EamonnWalsh | 0:9830d14e7908 | 121 | awake++; |
EamonnWalsh | 0:9830d14e7908 | 122 | |
EamonnWalsh | 0:9830d14e7908 | 123 | // Debug for temp sense and Accelermeter |
EamonnWalsh | 0:9830d14e7908 | 124 | /*Sensor_Scan(); |
EamonnWalsh | 0:9830d14e7908 | 125 | TFT.printf("\n\nx = %5d", i16SensorX); |
EamonnWalsh | 0:9830d14e7908 | 126 | TFT.printf("\ny = %5d", i16SensorY); |
EamonnWalsh | 0:9830d14e7908 | 127 | TFT.printf("\nz = %5d", i16SensorZ); |
EamonnWalsh | 0:9830d14e7908 | 128 | TFT.printf("\nawake %5d", awake); |
EamonnWalsh | 0:9830d14e7908 | 129 | i2c.write(INTERNAL_I2C,cmd,1,1); |
EamonnWalsh | 0:9830d14e7908 | 130 | i2c.read(INTERNAL_I2C,cmd,1,0); |
EamonnWalsh | 0:9830d14e7908 | 131 | int tmp = (float((cmd[0]<<8)|cmd[1])/256); |
EamonnWalsh | 0:9830d14e7908 | 132 | TFT.printf("\nID %5d",tmp);*/ |
EamonnWalsh | 0:9830d14e7908 | 133 | |
EamonnWalsh | 0:9830d14e7908 | 134 | // MSB temp reg |
EamonnWalsh | 0:9830d14e7908 | 135 | i2c.write(INTERNAL_I2C,cmd2,1,1); |
EamonnWalsh | 0:9830d14e7908 | 136 | i2c.read(INTERNAL_I2C,cmd2,1,0); |
EamonnWalsh | 0:9830d14e7908 | 137 | int tmp2 = (float((cmd2[0]<<8)|cmd2[1])/256); |
EamonnWalsh | 0:9830d14e7908 | 138 | // TFT.printf("\ntmp MSB %5d",tmp2); |
EamonnWalsh | 0:9830d14e7908 | 139 | // MSB temp reg |
EamonnWalsh | 0:9830d14e7908 | 140 | i2c.write(INTERNAL_I2C,cmd3,1,1); |
EamonnWalsh | 0:9830d14e7908 | 141 | i2c.read(INTERNAL_I2C,cmd3,1,0); |
EamonnWalsh | 0:9830d14e7908 | 142 | int tmp3 = (float((cmd3[0]<<8)|cmd3[1])/256); |
EamonnWalsh | 0:9830d14e7908 | 143 | // TFT.printf("\ntmp LSB %5d",tmp3); |
EamonnWalsh | 0:9830d14e7908 | 144 | |
EamonnWalsh | 0:9830d14e7908 | 145 | if((tmp2&0x8000)== 0) |
EamonnWalsh | 0:9830d14e7908 | 146 | { |
EamonnWalsh | 0:9830d14e7908 | 147 | uint16_t scale= (tmp2<<8) + tmp3; |
EamonnWalsh | 0:9830d14e7908 | 148 | scale = scale & 0x7F78; |
EamonnWalsh | 0:9830d14e7908 | 149 | scale = scale>>3; |
EamonnWalsh | 0:9830d14e7908 | 150 | float TempC = (float(scale*0.0625)); |
EamonnWalsh | 0:9830d14e7908 | 151 | TFT.printf("\n+ %4f",TempC); |
EamonnWalsh | 0:9830d14e7908 | 152 | } |
EamonnWalsh | 0:9830d14e7908 | 153 | else |
EamonnWalsh | 0:9830d14e7908 | 154 | { |
EamonnWalsh | 0:9830d14e7908 | 155 | uint16_t scale= (tmp2<<8) + tmp3; |
EamonnWalsh | 0:9830d14e7908 | 156 | scale = scale & 0x7F78; |
EamonnWalsh | 0:9830d14e7908 | 157 | scale = scale>>3; |
EamonnWalsh | 0:9830d14e7908 | 158 | float TempC = scale*0.0625; |
EamonnWalsh | 0:9830d14e7908 | 159 | TFT.printf("\n- %4f",TempC); |
EamonnWalsh | 0:9830d14e7908 | 160 | } |
EamonnWalsh | 0:9830d14e7908 | 161 | wait(10); |
EamonnWalsh | 0:9830d14e7908 | 162 | } |
EamonnWalsh | 0:9830d14e7908 | 163 | else |
EamonnWalsh | 0:9830d14e7908 | 164 | { |
EamonnWalsh | 0:9830d14e7908 | 165 | if(ui8awake ==1) |
EamonnWalsh | 0:9830d14e7908 | 166 | { |
EamonnWalsh | 0:9830d14e7908 | 167 | TFT.cls(); |
EamonnWalsh | 0:9830d14e7908 | 168 | // TFT.locate(0,0); |
EamonnWalsh | 0:9830d14e7908 | 169 | // TFT.printf("\nasleep :O"); |
EamonnWalsh | 0:9830d14e7908 | 170 | ui8awake = 0; |
EamonnWalsh | 0:9830d14e7908 | 171 | } |
EamonnWalsh | 0:9830d14e7908 | 172 | } |
EamonnWalsh | 0:9830d14e7908 | 173 | // float temp = adt7420_get_temperature(device); |
EamonnWalsh | 0:9830d14e7908 | 174 | } |
EamonnWalsh | 0:9830d14e7908 | 175 | } |
EamonnWalsh | 0:9830d14e7908 | 176 | |
EamonnWalsh | 0:9830d14e7908 | 177 |