
Programm zur Darstellung der Lage eines Objektes im Raum mit Hilfe eines Beschleunigungssensores, 4 LED's und einem LCD-Display.
Diff: LCD.cpp
- Revision:
- 20:094cdb790dcb
- Parent:
- 17:0b9e7a05b203
--- a/LCD.cpp Tue Jul 12 14:49:28 2016 +0000 +++ b/LCD.cpp Fri Jul 29 14:58:49 2016 +0000 @@ -3,55 +3,68 @@ * Zweck: Beinhaltet alle Funktionen zur Ausgabe von Informationen auf dem LCD-Display, sowie Funktionen zum Debuggen des Projektes * Author: Simon Rutzen, Nils Kemmer -* Changes: keine +* Changes: + 19.05.16 Erstellung File und Funktion vLCDSet und Einbinden des Files TextLCD.h + 23.05.16 vLCDSetDebug eingefügt + °-Zeichen in Anzeige eingefügt + 24.05.16 Anzeige printf Display neu strukturiert + 27.05.16 Anzeige printf Display nochmals neu strukturiert endgültig + Funktionen kommentiert + 05.06.16 Typänderung von WinkelData von word auf signed short int + 28.06.16 DebugFunktion zum Anzeigen der Spannungswerte des a-Sensors + 30.06.16 initLCD eingefügt zur Anzeige Begrüßungstext beim Anschalten + 29.07.16 Anpassung an Programmierrichtlinie-Dokument und letzte endgültige + Kontrolle Simon Rutzen ***********************************************************************************/ /* Includes */ #include "LCD.h" /* Objekt zum Steuern des Bildschirmes */ -TextLCD olcd(PA_9, PC_7, PB_5, PB_4, PB_10, PA_8, TextLCD::LCD20x2); // rs, e, d4-d7 +TextLCD oLCD(PA_9, PC_7, PB_5, PB_4, PB_10, PA_8, TextLCD::LCD20x2); // rs, e, d4-d7 /************************************************************************************ -* void vLCDSet(word wWinkelX, word wWinkelY) +* void LCD_vLCDSet(word wWinkelX, word wWinkelY) * Zweck: Funktion zur Darstellung der aktuellen X- und Y-Lage (in °) des Beschleunigungssensores auf dem LCD-Display * Parameter: - wWinkelX: aktueller Winkel bezogen auf die X-Achse des Beschleunigungssensores - wWinkelY: aktueller Winkel bezogen auf die Y-Achse des Beschleunigungssensores + wWinkelX: aktueller Winkel bezogen auf die X-Achse des Beschleunigungssensores + wWinkelY: aktueller Winkel bezogen auf die Y-Achse des Beschleunigungssensores bStateLCD: Zustandsvariabel, Anzeigen der Winkel bei Normallage (0) oder Anzeigen - der Textnachricht Überkopflage ohne Winkelangaben. + der Textnachricht Überkopflage ohne Winkelangaben (1). * return Parameter: keine *************************************************************************************/ -void vLCDSet(int16 wWinkelX, int16 wWinkelY, byte bStateLCD){ +void LCD_vLCDSet(int16 wWinkelX, int16 wWinkelY, byte bStateLCD){ /* Bildschirm bereinigen*/ - olcd.cls(); + oLCD.cls(); /* Einstellen des Anzeigemodus */ switch(bStateLCD){ + case 0:{ /* Überschrift in erster Zeile darstellen */ - olcd.locate(0,0); - olcd.printf("Lage:"); + oLCD.locate(0,0); + oLCD.printf("Lage:"); /* aktuelle Winkel darstellen in ° */ - olcd.locate(0,1); - olcd.printf("X:%i\337 Y:%i\337",wWinkelX,wWinkelY); // \337 entspricht °-Zeichen + oLCD.locate(0,1); + oLCD.printf("X:%i\337 Y:%i\337",wWinkelX,wWinkelY); // \337 entspricht °-Zeichen } break; + case 1:{ /* Anzeigen der Überkopflage des Sensores */ - olcd.locate(0,0); - olcd.printf("!Ueberkopflage!"); + oLCD.locate(0,0); + oLCD.printf("!Ueberkopflage!"); } + default: break; } } /************************************************************************************ -* void vLCDDebug(signed short int wWinkelX, signed short int wWinkelY, signed short int wWinkelZ) +* void LCD_vLCDDebug(signed short int wWinkelX, signed short int wWinkelY, signed short int wWinkelZ) * Zweck: Debugfunktion zum Anzeigen der aktuellen Messwerte des Beschleunigungssensores zwecks Kalibrierung der einzelnen Nullpunkte der Achsen * Parameter: @@ -62,33 +75,33 @@ * return Parameter: keine *************************************************************************************/ -void vLCDDebug(int16 wWinkelX, int16 wWinkelY, int16 wWinkelZ){ +void LCD_vLCDDebug(int16 wWinkelX, int16 wWinkelY, int16 wWinkelZ){ /* Bildschirm bereinigen */ - olcd.cls(); + oLCD.cls(); /* Anzeigen der einzelnen Parameter, oben X und Y, unten Z */ - olcd.locate(0,0); - olcd.printf("X:%i Y:%i",wWinkelX,wWinkelY); - olcd.locate(0,1); - olcd.printf("Z:%i",wWinkelZ); + oLCD.locate(0,0); + oLCD.printf("X:%i Y:%i",wWinkelX,wWinkelY); + oLCD.locate(0,1); + oLCD.printf("Z:%i",wWinkelZ); } /************************************************************************************ -* void initLCD() +* void LCD_initLCD() * Zweck: Anzeigen des Initialtextes zum Programmstart. * Parameter: keine * return Parameter: keine *************************************************************************************/ -void initLCD(){ +void LCD_vinitLCD(){ /* Löschen des Bildschirmes */ - olcd.cls(); + oLCD.cls(); /* Anzeigen des Initialtextes */ - olcd.locate(3,0); - olcd.printf("Lagesensor"); + oLCD.locate(3,0); + oLCD.printf("Lagesensor"); - olcd.locate(1,1); - olcd.printf("Nils und Simon"); + oLCD.locate(1,1); + oLCD.printf("Nils und Simon"); } \ No newline at end of file