Works
Dependencies: BMP180 BNO055_fusion Fonts GPSISR HTU21D SDFileSystem UniGraphic mbed uGUI
Fork of Bicycl_Computer_NUCLEO-F411RE by
Diff: main.cpp
- Revision:
- 8:8aa9cdab4a07
- Parent:
- 7:b78ff34209e5
- Child:
- 9:855884782f67
--- a/main.cpp Fri Jan 20 20:46:41 2017 +0000 +++ b/main.cpp Fri Feb 10 17:58:22 2017 +0000 @@ -26,27 +26,38 @@ #include "BNO055.h" #include "HTU21D.h" #include "BMP180.h" +#include "SDFileSystem.h" +#include "GPSISR.h" +#include "nmea.h" #include "Arial12x12.h" #include "Arial24x23.h" #include "Arial28x28.h" #include "Arial43x48_numb.h" -#define PIN_CS_TSC PA_9 -#define PIN_TSC_INTR PA_8 +//#define PIN_CS_TSC PA_9 +//#define PIN_TSC_INTR PA_8 #define PIN_RESET_TFT PC_13 /* place holder */ - +//ILI9341 SPI PINS #define PIN_XP A3 #define PIN_XM A1 #define PIN_YP A2 #define PIN_YM A0 -#define PIN_MOSI D11 -#define PIN_MISO D12 -#define PIN_SCLK D13 -#define PIN_CS_TFT D5 +#define PIN_MOSI_SPI1 D11 //SPI 1 MOSI +#define PIN_MISO_SPI1 D12 //SPI 1 MISO +#define PIN_SCLK_SPI1 D13 //SPI 1 SLCK +#define PIN_CS_SPI1 D5 // SPI CS D10 Was D5 #define PIN_DC_TFT D6 #define PIN_CS_SD D4 #define PIN_RESET D7 +// SD Card on GPS shield PINS +#define PIN_MOSI_SPI3 PB_15 //SPI 1 MOSI +#define PIN_MISO_SPI3 PB_14 //SPI 1 MISO +#define PIN_SCLK_SPI3 PB_13 //SPI 1 SLCK +#define PIN_CS_SPI3 D2 // SPI CS +#define PIN_RX_GPS PA_12 //GPS Shield RX pin +#define PIN_TX_GPS PA_11 //GPS Shield TX pin + BNO055_ID_INF_TypeDef bno055_id_inf; BNO055_EULER_TypeDef euler_angles; @@ -66,10 +77,12 @@ // DigitalOut tsc_cs(PA_9, 1) ; // DigitalOut tft_cs(PB_6, 1) ; +Serial pc(USBTX, USBRX); + // Display ILI9341 TFT(SPI_8, 10000000, - PIN_MOSI, PIN_MISO, PIN_SCLK, - PIN_CS_TFT, PIN_RESET_TFT, PIN_DC_TFT, "Adafruit2.8"); + PIN_MOSI_SPI1, PIN_MISO_SPI1, PIN_SCLK_SPI1, + PIN_CS_SPI1, PIN_RESET_TFT, PIN_DC_TFT, "Adafruit2.8") ; // TouchScreen TouchScreen TSC(PIN_XP, PIN_XM, PIN_YP, PIN_YM); @@ -83,6 +96,13 @@ // Pressure BMP180 bmp180(I2C_SDA, I2C_SCL); +// SD Card Reader On Adafruit GPS Shield +SDFileSystem sd(PIN_MOSI_SPI3, PIN_MISO_SPI3, PIN_SCLK_SPI3, PIN_CS_SPI3, "sd"); // the pinout on the mbed Cool Components workshop board + +// Adafruit GPS Shield +GPS MyGPS(PIN_TX_GPS,PIN_RX_GPS, 9600); +NMEA nmea; + int page = 0 ; int numPage = 2 ; @@ -110,7 +130,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") ; @@ -220,19 +240,37 @@ } } + int main() { + //MyGPS._gps.attach(&MyGPS,&GPS::Rx_interrupt, Serial::RxIrq); + //GPS myGPS(PIN_TX_GPS,PIN_RX_GPS); + Timer refresh_Timer; //sets up a timer for use in loop; how often do we print GPS info? + const int refresh_Time = 100; //refresh time in ms - if (bmp180.init() != 0) { - printf("Error communicating with BMP180\n"); - } else { - printf("Initialized BMP180\n"); - - } - wait(1); + refresh_Timer.start(); //starts the clock on the timer + TFT.BusEnable(true) ; + //backlight = 0 ; + TFT.background(White) ; + wait(0.1) ; + TFT.cls() ; + wait(0.1) ; + while (1) { + //check if we recieved a new message from GPS, if so, attempt to parse it, + if (refresh_Timer.read_ms() >= refresh_Time) { + refresh_Timer.reset(); + //pc.printf("Time: %f\n", myGPS.time); + //MyGPS.getline(); + //pc.printf("%s", MyGPS.msg[0]); + pc.printf("rx_int: %c ", MyGPS.rx_in); + TFT.set_font((unsigned char*) Arial12x12); + TFT.foreground(Blue); + TFT.locate(2, 2); + //TFT.printf("Time: %f\n", myGPS.time); + TFT.BusEnable(false) ; + } + } - - // uint16_t x, y, z ; int prevPage = 99 ; bool waitTouch = false ; @@ -269,15 +307,6 @@ // tft_cs = 1 ; do { TSC.getTouch(p); - - 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) ;