This is a fork of a functional ILI9341 display with a functional Seeed touch screen library.

Dependencies:   BMP180 UniGraphic mbed BNO055_fusionI_fixed HTU21D GPSISR Compass Fonts uGUI

Fork of TFT_test_NUCLEO-F411RE by Motoo Tanaka

/media/uploads/trevieze/win_20170427_21_31_20_pro.jpg

Had to move sensors to a remote board because of interference. Added spi burst mode to supported displays.

To do.... ugui buttons are slow. will need to add rtos to project. Finish other way points screen. Will have to rewrite portions of the touch screen class. Sense touch, delay, read values and then average, touch released, is the sequence. Add cadence input and logic to program for computer screen.

Revision:
6:b78ff34209e5
Parent:
5:6eb4b9322931
Child:
7:8aa9cdab4a07
--- a/main.cpp	Thu Jan 19 20:46:26 2017 +0000
+++ b/main.cpp	Fri Jan 20 20:46:41 2017 +0000
@@ -61,26 +61,27 @@
 #define TARGET_NECLEO_F411RE 
 #endif
 
-DigitalOut backlight(PB_3) ;
+
+//DigitalOut backlight(PB_3) ;
 // DigitalOut tsc_cs(PA_9, 1) ;
 // DigitalOut tft_cs(PB_6, 1) ;
 
 // Display
 ILI9341 TFT(SPI_8, 10000000, 
     PIN_MOSI, PIN_MISO,  PIN_SCLK, 
-    PIN_CS_TFT, PIN_RESET_TFT, PIN_DC_TFT, "Adafruit2.8") ;
+    PIN_CS_TFT, PIN_RESET_TFT, PIN_DC_TFT, "Adafruit2.8");
     
 // TouchScreen
 TouchScreen TSC(PIN_XP, PIN_XM, PIN_YP, PIN_YM);
 
 // 3 Axis IMU
-BNO055 imu(i2c, PIN_RESET);  // Reset =D7, addr = BNO055_G_CHIP_ADDR, mode = MODE_NDOF <- as default
+BNO055 imu(I2C_SDA, I2C_SCL, PIN_RESET);  // Reset =D7, addr = BNO055_G_CHIP_ADDR, mode = MODE_NDOF <- as default
 
 // Humidity and Temperature
 HTU21D temphumid(I2C_SDA, I2C_SCL);
 
 // Pressure
-BMP180 bmp180; // initialize BMP-180 altimeter
+BMP180 bmp180(I2C_SDA, I2C_SCL);
 
 int page = 0 ;
 int numPage = 2 ;
@@ -100,7 +101,7 @@
 void screen1(void) // Welcome Screen
 {
     TFT.BusEnable(true) ;
-    backlight = 0 ;
+    //backlight = 0 ;
     TFT.background(White) ;
     wait(0.1) ;
     TFT.cls() ;
@@ -109,7 +110,7 @@
     TFT.set_font((unsigned char*) Arial24x23);
     TFT.foreground(Red) ;
     TFT.locate(80, 40) ;
-    TFT.printf("MBED") ;
+    TFT.printf("MBED");
     TFT.foreground(Blue);
     TFT.locate(60, 80) ;
     TFT.printf("2.8\"TFT") ; 
@@ -132,14 +133,14 @@
     TFT.locate(30, 300) ;
     TFT.printf("until the next screen starts") ;
     TFT.BusEnable(false) ;
-    backlight = 1 ;
+    //backlight = 1 ;
 }
 
 void screen2(void) // Graphics
 {
     //Draw some graphics
     int i, x[2], y[2] ;
-    backlight = 0 ;
+    //backlight = 0 ;
     TFT.BusEnable(true) ;
     TFT.background(Black);
     wait(0.1) ;
@@ -188,7 +189,7 @@
     TFT.locate(20, 290) ;
     TFT.printf("capability is provided") ;
     TFT.BusEnable(false) ;
-    backlight = 1 ;
+    //backlight = 1 ;
 }    
 
 double clip(double src)
@@ -221,22 +222,24 @@
     
 int main()
 {
+    
+    if (bmp180.init() != 0) {
+        printf("Error communicating with BMP180\n");
+    } else {
+            printf("Initialized BMP180\n");
+           
+    }
+    wait(1);
+   
+    
+    
     // uint16_t x, y, z ;
     int prevPage = 99 ;
     bool waitTouch = false ;
     point p;
     
     printf("Hello World\n") ;
-    
-    // tsc_cs = 1 ;
-    // tft_cs = 0 ;
-    // initTFT() ;
-    // tft_cs = 1 ;
-
-    // tsc_cs = 0 ;
-    // TSC.spi_format(8, 1) ; // for Nucleo F411RE
-    // tsc_cs = 1 ;
-    
+   
     // screen0() ;
         
     printf("Program Started!\n\r") ;
@@ -266,9 +269,18 @@
         // tft_cs = 1 ;
         do {
             TSC.getTouch(p);
-            printf("Touched X %d\n\r", p.x) ;
-            printf("Touched Y %d\n\r", p.y) ;
-            printf("Touched Z %d\n\r", p.z) ;
+           
+            bmp180.startTemperature();
+            wait_ms(5);     // Wait for conversion to complete
+            float temp;
+            if(bmp180.getTemperature(&temp) != 0) {
+                printf("Error getting temperature\n");
+            }    
+            printf("Temperature is -> %.2f\n", temp);
+            
+            //printf("Touched X %d\n\r", p.x) ;
+            //printf("Touched Y %d\n\r", p.y) ;
+            //printf("Touched Z %d\n\r", p.z) ;
             wait(3) ;
             if (p.z > __PRESURE) {
                 if (p.y < 30000) { // left