FAE training 2019 demo code

Committer:
EamonnWalsh
Date:
Tue Dec 10 19:34:53 2019 +0000
Revision:
0:9830d14e7908
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew 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