Eamonn Walsh
/
FAE_2019_demo
FAE training 2019 demo code
Diff: main.cpp
- Revision:
- 0:9830d14e7908
diff -r 000000000000 -r 9830d14e7908 main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Tue Dec 10 19:34:53 2019 +0000 @@ -0,0 +1,177 @@ +#include "mbed.h" +#include "SPI_TFT_ILI9341.h" +#include "FT6206.h" + +#include "ADXL362.h" +#include "Communication.h" +#include <SPI.h> + +#include "Arial12x12.h" +#include "Arial24x23.h" +#include "Arial28x28.h" +#include "font_big.h" + +//#include "ADT7420.h" + +#define PIN_XP A3 +#define PIN_XM A1 +#define PIN_YP A2 +#define PIN_YM A0 +#define PIN_SCLK D13 +#define PIN_MISO D12 +#define PIN_MOSI D11 +#define PIN_CS_TFT D10 // chip select pin +#define PIN_DC_TFT D9 // data/command select pin. +#define PIN_RESET_TFT D8 +//#define PIN_BL_TFT D7 +#define PIN_CS_SD D4 + +#define PORTRAIT 0 +#define LANDSCAPE 1 + +#define PIN_SCL_FT6206 D15 +#define PIN_SDA_FT6206 D14 +#define PIN_INT_FT6206 D7 + +#define ILI9341_TFTWIDTH 320 +#define ILI9341_TFTHEIGHT 240 + +#define EXTERNAL_I2C 0x49<<1 +#define INTERNAL_I2C 0x48<<1 + +#define I2C_SCL D15 +#define I2C_SDA D14 + +DigitalOut led1(LED1); +DigitalOut led2(LED2); +DigitalOut led3(LED3); +DigitalOut led4(LED4); + +//SPI_TFT_ILI9341 TFT(p5, p6, p7, p8, p9, p10,"TFT"); // mosi, miso, sclk, cs, reset, dc +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 +FT6206 FT6206(PIN_SDA_FT6206, PIN_SCL_FT6206, PIN_INT_FT6206); // sda, scl, int + +//Configure and instantiate the UART - PB10/11 +DigitalIn adxl_int(SDP_GPIO_1); +I2C i2c(I2C_SDA,I2C_SCL); +Serial pc(USBTX, USBRX, 115200); + +uint8_t ui8s[22]; +uint8_t ui8xu; +uint8_t ui8xd; +uint8_t ui8yu; +uint8_t ui8yd; +uint8_t ui8all; +uint8_t ui8awake; + +void initTFT(void) +{ + //Configure the display driver + TFT.background(Black); + TFT.foreground(White); + wait(0.01) ; + TFT.cls(); +} + + +int main() +{ + /* Initialize accelerometer */ + Sensor_Init(); + + /* Start accelerometer measurement mode */ + Sensor_Start(); + //connected = adt7420_init(&device, init_params); + + //Configure the display driver + TFT.claim(stdout); + TFT.background(Black); + TFT.foreground(White); + TFT.set_orientation(LANDSCAPE); + TFT.cls(); + + //Print a welcome message + TFT.set_font((unsigned char*) Arial24x23); + TFT.locate(0,0); + TFT.printf("\n Ready\n"); + wait(0.5); + TFT.cls(); + TFT.locate(0,0); + TFT.printf("\n Go"); + wait(0.5); + TFT.cls(); + // FT6206.begin(); + int X1, Y1, X2, Y2; + X2 = -100; + int i = 0; + int awake=0; + int register_value =0; + char cmd[2]; + char cmd2[2]; + char cmd3[2]; + while(1) + { + if(adxl_int) + { cmd[0]= 0x0B; + cmd2[0]= 0x00; + cmd3[0]= 0x01; + ui8awake =1; + TFT.cls(); + TFT.locate(0,0); + awake++; + + // Debug for temp sense and Accelermeter + /*Sensor_Scan(); + TFT.printf("\n\nx = %5d", i16SensorX); + TFT.printf("\ny = %5d", i16SensorY); + TFT.printf("\nz = %5d", i16SensorZ); + TFT.printf("\nawake %5d", awake); + i2c.write(INTERNAL_I2C,cmd,1,1); + i2c.read(INTERNAL_I2C,cmd,1,0); + int tmp = (float((cmd[0]<<8)|cmd[1])/256); + TFT.printf("\nID %5d",tmp);*/ + + // MSB temp reg + i2c.write(INTERNAL_I2C,cmd2,1,1); + i2c.read(INTERNAL_I2C,cmd2,1,0); + int tmp2 = (float((cmd2[0]<<8)|cmd2[1])/256); + // TFT.printf("\ntmp MSB %5d",tmp2); + // MSB temp reg + i2c.write(INTERNAL_I2C,cmd3,1,1); + i2c.read(INTERNAL_I2C,cmd3,1,0); + int tmp3 = (float((cmd3[0]<<8)|cmd3[1])/256); + // TFT.printf("\ntmp LSB %5d",tmp3); + + if((tmp2&0x8000)== 0) + { + uint16_t scale= (tmp2<<8) + tmp3; + scale = scale & 0x7F78; + scale = scale>>3; + float TempC = (float(scale*0.0625)); + TFT.printf("\n+ %4f",TempC); + } + else + { + uint16_t scale= (tmp2<<8) + tmp3; + scale = scale & 0x7F78; + scale = scale>>3; + float TempC = scale*0.0625; + TFT.printf("\n- %4f",TempC); + } + wait(10); + } + else + { + if(ui8awake ==1) + { + TFT.cls(); + // TFT.locate(0,0); + // TFT.printf("\nasleep :O"); + ui8awake = 0; + } + } + // float temp = adt7420_get_temperature(device); + } +} + +