
Programm zur Darstellung der Lage eines Objektes im Raum mit Hilfe eines Beschleunigungssensores, 4 LED's und einem LCD-Display.
main.cpp@19:51747c0ab062, 2016-07-12 (annotated)
- Committer:
- Schreeker
- Date:
- Tue Jul 12 14:49:28 2016 +0000
- Revision:
- 19:51747c0ab062
- Parent:
- 17:0b9e7a05b203
- Child:
- 20:094cdb790dcb
if-Bedingung der Ueberkopflage erweitert mit X und Y Winkel, damit bei >80 Grad Ueberkopflage eintritt. ZDaten weiterhin notwendig fuer Ueberkopflagedetektion. Periode PWM auf 10 ms verringert wegen flimmern. Simon Rutzen
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Schreeker | 0:2a6b63a19ae5 | 1 | /********************************************************************************** |
Schreeker | 0:2a6b63a19ae5 | 2 | * File name: main.cpp |
Schreeker | 0:2a6b63a19ae5 | 3 | * Zweck: Beinhaltet das Hauptprogramm. Es werden zyklisch die Daten des Be- |
Schreeker | 0:2a6b63a19ae5 | 4 | schleunigungssensores ausgelesen, umgerechnet in Winkel, LED auf |
Schreeker | 0:2a6b63a19ae5 | 5 | Basis der X-,Y- und Z-Winkel angesteuert und die Winkel auf dem |
Schreeker | 0:2a6b63a19ae5 | 6 | LCD-Display angezeigt. |
Schreeker | 0:2a6b63a19ae5 | 7 | * Author: Simon Rutzen, Nils Kemmer |
Schreeker | 0:2a6b63a19ae5 | 8 | * Changes: keine |
Schreeker | 0:2a6b63a19ae5 | 9 | ***********************************************************************************/ |
Schreeker | 0:2a6b63a19ae5 | 10 | |
Schreeker | 0:2a6b63a19ae5 | 11 | /* Includes */ |
Schreeker | 0:2a6b63a19ae5 | 12 | #include "mbed.h" |
Schreeker | 0:2a6b63a19ae5 | 13 | #include "LCD.h" |
Schreeker | 0:2a6b63a19ae5 | 14 | #include "cdef.h" |
NilsKemmer | 2:cf8b98404b66 | 15 | #include "Sensor.h" |
Schreeker | 12:7c9c5a541380 | 16 | #include "LED.h" |
NilsKemmer | 2:cf8b98404b66 | 17 | |
NilsKemmer | 2:cf8b98404b66 | 18 | /*Structs*/ |
Schreeker | 5:c0d6d490dd5b | 19 | extern struct WinkelData stWinkelData; |
Schreeker | 5:c0d6d490dd5b | 20 | extern struct SensData stSensData; |
Schreeker | 0:2a6b63a19ae5 | 21 | |
Schreeker | 0:2a6b63a19ae5 | 22 | /* Hauptprogramm */ |
Schreeker | 0:2a6b63a19ae5 | 23 | int main(){ |
Schreeker | 15:462c8c89fe35 | 24 | /* Variabeln */ |
Schreeker | 15:462c8c89fe35 | 25 | byte bStateLCD = 0; |
Schreeker | 15:462c8c89fe35 | 26 | |
Schreeker | 14:2543a798b4a1 | 27 | /* Initialisierung (LCD Anzeige + Blinkende LED's */ |
Schreeker | 14:2543a798b4a1 | 28 | initLCD(); |
Schreeker | 12:7c9c5a541380 | 29 | initLED(); |
Schreeker | 12:7c9c5a541380 | 30 | |
Schreeker | 0:2a6b63a19ae5 | 31 | while(1){ |
Schreeker | 7:882edb5f9466 | 32 | /* Auslesen des Beschleunigungssensores */ |
Schreeker | 5:c0d6d490dd5b | 33 | vgetSensData(&stSensData); |
Schreeker | 11:5861bc23022a | 34 | |
Schreeker | 11:5861bc23022a | 35 | /* Berechnung der Spannungswerte aus den Messdaten für Debugzwecke */ |
Schreeker | 14:2543a798b4a1 | 36 | //vDebugData(&stSensData, &stWinkelData); |
Schreeker | 11:5861bc23022a | 37 | |
Schreeker | 7:882edb5f9466 | 38 | /* Berechnung der Winkel aus Messdaten */ |
Schreeker | 14:2543a798b4a1 | 39 | vcalcData(&stSensData, &stWinkelData); |
Schreeker | 11:5861bc23022a | 40 | |
Schreeker | 7:882edb5f9466 | 41 | /* Einstellen der LED's*/ |
Schreeker | 16:9b20d24aae18 | 42 | bStateLCD = setLED(stWinkelData.i16WinkelX, stWinkelData.i16WinkelY, stWinkelData.i16SpannungZ); |
Schreeker | 11:5861bc23022a | 43 | |
Schreeker | 7:882edb5f9466 | 44 | /* Einstellen des LCD-Displays*/ |
Schreeker | 15:462c8c89fe35 | 45 | vLCDSet(stWinkelData.i16WinkelX, stWinkelData.i16WinkelY, bStateLCD); |
Schreeker | 16:9b20d24aae18 | 46 | //vLCDDebug(stWinkelData.i16WinkelX, stWinkelData.i16WinkelY, stWinkelData.i16SpannungZ); |
Schreeker | 11:5861bc23022a | 47 | /* Pause */ |
Schreeker | 19:51747c0ab062 | 48 | wait_ms(100); |
Schreeker | 0:2a6b63a19ae5 | 49 | } |
Schreeker | 0:2a6b63a19ae5 | 50 | return 0; |
Schreeker | 0:2a6b63a19ae5 | 51 | } |