
Programm zur Darstellung der Lage eines Objektes im Raum mit Hilfe eines Beschleunigungssensores, 4 LED's und einem LCD-Display.
LCD.cpp
- Committer:
- Schreeker
- Date:
- 2016-07-06
- Revision:
- 17:0b9e7a05b203
- Parent:
- 16:9b20d24aae18
- Child:
- 20:094cdb790dcb
File content as of revision 17:0b9e7a05b203:
/********************************************************************************** * File name: LCD.cpp * 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 ***********************************************************************************/ /* 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 /************************************************************************************ * void 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 bStateLCD: Zustandsvariabel, Anzeigen der Winkel bei Normallage (0) oder Anzeigen der Textnachricht Überkopflage ohne Winkelangaben. * return Parameter: keine *************************************************************************************/ void vLCDSet(int16 wWinkelX, int16 wWinkelY, byte bStateLCD){ /* Bildschirm bereinigen*/ olcd.cls(); /* Einstellen des Anzeigemodus */ switch(bStateLCD){ case 0:{ /* Überschrift in erster Zeile darstellen */ 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 } break; case 1:{ /* Anzeigen der Überkopflage des Sensores */ olcd.locate(0,0); olcd.printf("!Ueberkopflage!"); } default: break; } } /************************************************************************************ * void 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: wWinkelX: aktueller Winkel bezogen auf die X-Achse des Beschleunigungssensores wWinkelY: aktueller Winkel bezogen auf die Y-Achse des Beschleunigungssensores wWinkelZ: aktueller Winkel bezogen auf die Y-Achse des Beschleunigungssensores Hinweis: Alle Winkelwerte sind Spannungswerte des Sensores mit Faktor 10000 multipliziert! * return Parameter: keine *************************************************************************************/ void vLCDDebug(int16 wWinkelX, int16 wWinkelY, int16 wWinkelZ){ /* Bildschirm bereinigen */ 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); } /************************************************************************************ * void initLCD() * Zweck: Anzeigen des Initialtextes zum Programmstart. * Parameter: keine * return Parameter: keine *************************************************************************************/ void initLCD(){ /* Löschen des Bildschirmes */ olcd.cls(); /* Anzeigen des Initialtextes */ olcd.locate(3,0); olcd.printf("Lagesensor"); olcd.locate(1,1); olcd.printf("Nils und Simon"); }