
FAE training 2019 demo code
main.cpp
- Committer:
- EamonnWalsh
- Date:
- 2019-12-10
- Revision:
- 0:9830d14e7908
File content as of revision 0:9830d14e7908:
#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); } }