FAE training 2019 demo code

Revision:
0:9830d14e7908
--- /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);
+    }
+}
+
+