This program test a Gauge bult in FT81x for Automotive SunTrip COmputer -- project undone

Dependencies:   DS1820 FT800_3 mbed

Files at this revision

API Documentation at this revision

Comitter:
SunRiver
Date:
Sat Jul 09 15:44:47 2016 +0000
Commit message:
no

Changed in this revision

DS1820.lib Show annotated file Show diff for this revision Revisions of this file
FT800_3.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/DS1820.lib	Sat Jul 09 15:44:47 2016 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/Sissors/code/DS1820/#51a5011dc0ad
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/FT800_3.lib	Sat Jul 09 15:44:47 2016 +0000
@@ -0,0 +1,1 @@
+http://developer.mbed.org/users/davidchilds/code/FT800_3/#a69ac4d39afd
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Sat Jul 09 15:44:47 2016 +0000
@@ -0,0 +1,212 @@
+/* Demo for mbed Library for FTDI FT800  Enbedded Video Engine "EVE"
+ * by Peter Drescher, DC2PD 2014
+ * Released under the MIT License: http://mbed.org/license/mit */
+
+#include "mbed.h"
+#include "FT_Platform.h"
+#include "FT_color.h"
+#include "stdio.h"
+#include "float.h"
+#include "DS1820.h"
+
+//#include "SDFileSystem.h"
+
+
+#define SAMAPP_DELAY_BTW_APIS (1000)
+#define SAMAPP_ENABLE_DELAY() Ft_Gpu_Hal_Sleep(SAMAPP_DELAY_BTW_APIS)
+#define SAMAPP_ENABLE_DELAY_VALUE(x) Ft_Gpu_Hal_Sleep(x)
+#define DATA_PIN A1
+FT800 TFT(D11,D12,D13,D9,D8,D14);
+
+
+
+
+
+// global Vars
+unsigned int r,b,g;
+char buffer[50];
+Ticker tick;
+unsigned int color = 0,bright = 0;
+
+
+
+Serial usart(D1, D0); 
+DS1820 probe(DATA_PIN);
+
+// function to convert hue , saturation and  value to RGB
+// see http://en.wikipedia.org/wiki/HSL_and_HSV
+
+void hsv2rgb(double H,double S, double V)
+{
+    double f,h,p,q,t;
+    int i;
+    if( S == 0.0) {
+        r = V * 255;  
+        g = V * 255;
+        b = V * 255;
+        return;
+    }
+    if(H > 480.0) H = 0.0;   // check values
+    if(S > 1.0) S = 1.0; 
+    if(S < 0.0) S = 0.0;
+    if(V > 1.0) V = 1.0;
+    if(V < 0.0) V = 0.0;
+    
+    h = H / 60.0;
+    i = (int) h;
+    f = h - i;
+    p = V * (1.0 - S);
+    q = V * (1.0 - (S * f));
+    t = V * (1.0 - (S * (1.0 - f)));
+ 
+    switch(i) {
+        case 0:
+            r = V * 255;  
+            g = t * 255;
+            b = p * 255;
+            break;
+        case 1:
+            r = q * 255;
+            g = V * 255;
+            b = p * 255;
+            break;
+        case 2:
+            r = p * 255;
+            g = V * 255;
+            b = t * 255;
+            break;
+        case 3:
+            r = p * 255;
+            g = q * 255;
+            b = V * 255;
+            break;
+        case 4:
+            r = t * 255;
+            g = p * 255;
+            b = V * 255;
+            break;
+        case 5:
+        default:
+            r = V * 255;
+            g = p * 255;
+            b = q * 255;
+            break;
+    }  
+}
+
+
+/***************************************************************************/
+// Rysowanie ekranu demonstracyjnego 
+/***************************************************************************/
+
+ft_void_t Trip_Comp(ft_char8_t *str, ft_float_t temp)
+{
+    //const char* str2 = "FT81x  EVE2 FRDM-K64F";
+    TFT.DLstart();                             // przygotowanie na nową listę nkomend 
+    TFT.DL(CLEAR_COLOR_RGB(255,255,255));      // kolor tła (biały)
+    TFT.DL(CLEAR(1,1,1));                      // czyszczenie buforów --> color, stencil, tag
+    
+    
+    
+    TFT.Button(580, 440, 67, 27, 27, OPT_FLAT, "MENU");
+    TFT.Button(650, 440, 67, 27, 27, OPT_FLAT | OPT_CENTER, "INFO");
+    TFT.Button(720, 440, 67, 27, 27, OPT_FLAT, "GUIDE");
+
+    //--------------opisy ekranu
+    TFT.DL(COLOR_RGB(0, 0, 0));
+    TFT.Text(400, 180, 28, OPT_CENTER, "KM/H");
+    TFT.Text(120, 119, 28, OPT_CENTER, "RPM /1000");
+    TFT.Text(680, 330, 28, OPT_CENTER, "Temp");
+    
+    //TFT.Text(378, 154, 27, OPT_CENTER, "KM:");
+    TFT.Text(680, 119, 28, OPT_CENTER, "Fuel");
+    TFT.Text(400, 30, 30, OPT_CENTER, str);
+    
+    TFT.DL(COLOR_RGB(255, 0, 0));
+    TFT.Text(400, 440, 27, OPT_CENTER, "ENGINE OFF");
+    TFT.DL(COLOR_RGB(0, 255, 0));
+    TFT.Text(400, 420, 27, OPT_CENTER, "LIGHT: ON");
+    
+    //GAUGE_0 = OPT_NOBACK | OPT_NOPOINTER;
+    //GAUGE_1 = OPT_NOBACK | OPT_NOTICKS;
+    
+    //--------------prędkosciomierz 
+    TFT.DL(COLOR_RGB(0, 0, 255));
+    TFT.Gauge((TFT.DispWidth/2), TFT.DispHeight/2, 208, OPT_NOBACK | OPT_NOPOINTER, 10, 10, 0, 250);
+    TFT.DL(COLOR_RGB(255, 0, 0));
+    TFT.Gauge((TFT.DispWidth/2), TFT.DispHeight/2, 208, OPT_NOBACK | OPT_NOTICKS, 10, 10, 0 , 250);
+    TFT.Number(400, 370, 31, OPT_CENTER, 0);
+    
+    //--------------zegarek
+    TFT.DL(COLOR_RGB(0, 0, 255));
+    TFT.Clock(130, 350, 100, OPT_NOBACK | OPT_NOPOINTER |  OPT_NOSECS, 19, 51, 17, 0);
+    TFT.DL(COLOR_RGB(255, 0, 0));
+    TFT.Clock(130, 350, 100, OPT_NOBACK | OPT_NOTICKS, 19, 51, 17, 0);
+    
+     
+    //-------------- RPM
+    TFT.DL(COLOR_RGB(0, 0, 255));
+    TFT.Gauge(120, 150, 130, OPT_NOBACK | OPT_NOPOINTER, 8, 5, 0, 100);
+    TFT.DL(COLOR_RGB(255, 0, 0));
+    TFT.Gauge(120, 150, 130, OPT_NOBACK | OPT_NOTICKS, 8, 5, 0, 100);
+    TFT.DL(COLOR_RGB(0, 255, 0));
+    TFT.Number(120, 220, 31, OPT_CENTER, 0);
+    
+    //-------------- FUELL  
+    TFT.DL(COLOR_RGB(0, 0, 255)); 
+    TFT.Gauge(680, 150, 130, OPT_NOBACK | OPT_NOPOINTER, 4, 5, 40, 100);
+    TFT.DL(COLOR_RGB(255, 0, 0));
+    TFT.Gauge(680, 150, 130, OPT_NOBACK | OPT_NOTICKS, 4, 5, 35, 100);
+    
+    TFT.DL(COLOR_RGB(0, 0, 0));
+    //TFT.Text(15, 257, 16, 0, str);
+    
+    
+    
+    //------------- TEmperatura 
+    TFT.DL(COLOR_RGB(0, 0, 255)); 
+    TFT.Gauge(680, 350, 100, OPT_NOBACK | OPT_NOPOINTER, 4, 5, 40, 125);
+    TFT.DL(COLOR_RGB(255, 0, 0));
+    TFT.Gauge(680, 350, 100, OPT_NOBACK | OPT_NOTICKS, 4, 5, temp, 125);
+    
+    TFT.DL(COLOR_RGB(0, 0, 0));
+    TFT.Number(680, 400, 31, OPT_CENTER, temp);
+
+    
+    
+    TFT.DL(DISPLAY());                         // Wyswietlamy przygotowany screen 
+    TFT.Swap();                                
+    TFT.Flush_Co_Buffer();                     // pobieramy komendy z FiFo
+
+    TFT.WaitCmdfifo_empty();                   // czekanie na zakończenie operacji
+    TFT.Sleep(5000);                          // koniec wyswietlania (15000 = 15sec)
+}
+
+
+
+
+int main()
+{
+    
+    
+    usart.baud(38400);  
+    TFT.Flush_Co_Buffer();                         
+    TFT.WaitCmdfifo_empty();                       
+                         
+     
+                            
+    while(1) 
+    {
+        probe.convertTemperature(true, DS1820::all_devices);         //Start temperature conversion, wait until ready
+        usart.printf("Temperatura to %3.3f Celsiusza\r\n", probe.temperature());
+        Trip_Comp("SunTRIP Computer", probe.temperature());
+        
+        //Demo_Screen2("Temperatura", probe.temperature());
+        //  wait(1);
+    }
+
+    
+}
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Sat Jul 09 15:44:47 2016 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/6c34061e7c34
\ No newline at end of file