EMSY-Projekt / Mbed 2 deprecated EMSY-Projekt_Lagesensor

Dependencies:   TextLCD mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers LCD.cpp Source File

LCD.cpp

00001 /********************************************************************************** 
00002 * File name:    LCD.cpp
00003 * Zweck:        Beinhaltet alle Funktionen zur Ausgabe von Informationen
00004                 auf dem LCD-Display, sowie Funktionen zum Debuggen des Projektes
00005 * Author:       Simon Rutzen, Nils Kemmer
00006 * Changes:      
00007     19.05.16    Erstellung File und Funktion vLCDSet und Einbinden des Files TextLCD.h
00008     23.05.16    vLCDSetDebug eingefügt + °-Zeichen in Anzeige eingefügt
00009     24.05.16    Anzeige printf Display neu strukturiert
00010     27.05.16    Anzeige printf Display nochmals neu strukturiert endgültig
00011                 Funktionen kommentiert
00012     05.06.16    Typänderung von WinkelData von word auf signed short int
00013     28.06.16    DebugFunktion zum Anzeigen der Spannungswerte des a-Sensors
00014     30.06.16    initLCD eingefügt zur Anzeige Begrüßungstext beim Anschalten
00015     29.07.16    Anpassung an Programmierrichtlinie-Dokument und letzte endgültige
00016                 Kontrolle Simon Rutzen
00017 ***********************************************************************************/
00018 
00019 /* Includes */
00020 #include "LCD.h"
00021 
00022 /* Objekt zum Steuern des Bildschirmes */
00023 TextLCD oLCD(PA_9, PC_7, PB_5, PB_4, PB_10, PA_8, TextLCD::LCD20x2); // rs, e, d4-d7
00024 
00025 /************************************************************************************
00026 * void LCD_vLCDSet(word wWinkelX, word wWinkelY)
00027 * Zweck:    Funktion zur Darstellung der aktuellen X- und Y-Lage (in °)
00028             des Beschleunigungssensores auf dem LCD-Display
00029 * Parameter:
00030     wWinkelX:  aktueller Winkel bezogen auf die X-Achse des Beschleunigungssensores
00031     wWinkelY:  aktueller Winkel bezogen auf die Y-Achse des Beschleunigungssensores
00032     bStateLCD: Zustandsvariabel, Anzeigen der Winkel bei Normallage (0) oder Anzeigen
00033                der Textnachricht Überkopflage ohne Winkelangaben (1).
00034 * return Parameter:
00035     keine
00036 *************************************************************************************/
00037 void LCD_vLCDSet(int16 wWinkelX, int16 wWinkelY, byte bStateLCD){
00038     /* Bildschirm bereinigen*/
00039     oLCD.cls();
00040     
00041     /* Einstellen des Anzeigemodus */
00042     switch(bStateLCD){
00043         
00044         case 0:{
00045             /* Überschrift in erster Zeile darstellen */
00046             oLCD.locate(0,0);
00047             oLCD.printf("Lage:");
00048         
00049     
00050             /* aktuelle Winkel darstellen in ° */
00051             oLCD.locate(0,1);
00052             oLCD.printf("X:%i\337 Y:%i\337",wWinkelX,wWinkelY);    // \337 entspricht °-Zeichen
00053             }
00054             break;
00055             
00056         case 1:{
00057             /* Anzeigen der Überkopflage des Sensores */
00058             oLCD.locate(0,0);
00059             oLCD.printf("!Ueberkopflage!");
00060             }
00061             
00062         default: break;
00063         }
00064 }    
00065 
00066 /************************************************************************************
00067 * void LCD_vLCDDebug(signed short int wWinkelX, signed short int wWinkelY, signed short int wWinkelZ)
00068 * Zweck:    Debugfunktion zum Anzeigen der aktuellen Messwerte des Beschleunigungssensores
00069             zwecks Kalibrierung der einzelnen Nullpunkte der Achsen
00070 * Parameter:
00071     wWinkelX: aktueller Winkel bezogen auf die X-Achse des Beschleunigungssensores
00072     wWinkelY: aktueller Winkel bezogen auf die Y-Achse des Beschleunigungssensores
00073     wWinkelZ: aktueller Winkel bezogen auf die Y-Achse des Beschleunigungssensores
00074     Hinweis: Alle Winkelwerte sind Spannungswerte des Sensores mit Faktor 10000 multipliziert!
00075 * return Parameter:
00076     keine
00077 *************************************************************************************/
00078 void LCD_vLCDDebug(int16 wWinkelX, int16 wWinkelY, int16 wWinkelZ){
00079     /* Bildschirm bereinigen */
00080     oLCD.cls();
00081     
00082     /* Anzeigen der einzelnen Parameter, oben X und Y, unten Z */
00083     oLCD.locate(0,0);
00084     oLCD.printf("X:%i Y:%i",wWinkelX,wWinkelY);   
00085     oLCD.locate(0,1);
00086     oLCD.printf("Z:%i",wWinkelZ); 
00087     }
00088     
00089 /************************************************************************************
00090 * void LCD_initLCD()
00091 * Zweck:    Anzeigen des Initialtextes zum Programmstart.
00092 * Parameter:
00093     keine
00094 * return Parameter:
00095     keine
00096 *************************************************************************************/    
00097 void LCD_vinitLCD(){
00098     /* Löschen des Bildschirmes */
00099     oLCD.cls();
00100     
00101     /* Anzeigen des Initialtextes */
00102     oLCD.locate(3,0);
00103     oLCD.printf("Lagesensor");
00104     
00105     oLCD.locate(1,1);
00106     oLCD.printf("Nils und Simon");
00107     }