Programm zur Darstellung der Lage eines Objektes im Raum mit Hilfe eines Beschleunigungssensores, 4 LED's und einem LCD-Display.
LED.cpp@12:7c9c5a541380, 2016-06-28 (annotated)
- Committer:
- Schreeker
- Date:
- Tue Jun 28 19:40:19 2016 +0000
- Revision:
- 12:7c9c5a541380
- Parent:
- 11:5861bc23022a
- Child:
- 15:462c8c89fe35
Hinzufuegen der Funktion initLED. LED's blinken beim Starten des Programmes 4 mal kurz auf, dann beginnt das Hauptprogramm. Simon Rutzen
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Schreeker | 8:0270c3e374f7 | 1 | /********************************************************************************** |
Schreeker | 11:5861bc23022a | 2 | * File name: LED.cpp |
Schreeker | 8:0270c3e374f7 | 3 | * Zweck: Beinhaltet alle Funktionen zur Einstellung der LED-Helligkeit |
Schreeker | 8:0270c3e374f7 | 4 | in Abhängigkeit von den berechneten Winkeln. |
Schreeker | 8:0270c3e374f7 | 5 | * Author: Simon Rutzen, Nils Kemmer |
Schreeker | 8:0270c3e374f7 | 6 | * Changes: keine |
Schreeker | 8:0270c3e374f7 | 7 | ***********************************************************************************/ |
Schreeker | 8:0270c3e374f7 | 8 | |
Schreeker | 8:0270c3e374f7 | 9 | /* Zu benutzende Pins */ |
Schreeker | 8:0270c3e374f7 | 10 | // PWM1 - Channel 1N (PB_15), 2N (PB_14), 3N (PB_13) und 4 (PA_11) |
Schreeker | 8:0270c3e374f7 | 11 | |
Schreeker | 10:d566927efac6 | 12 | /* Include */ |
Schreeker | 10:d566927efac6 | 13 | #include "mbed.h" |
Schreeker | 10:d566927efac6 | 14 | #include "Sensor.h" |
Schreeker | 10:d566927efac6 | 15 | |
Schreeker | 10:d566927efac6 | 16 | /* Externe Variablen */ |
Schreeker | 10:d566927efac6 | 17 | extern struct WinkelData stWinkelData; |
Schreeker | 10:d566927efac6 | 18 | |
Schreeker | 10:d566927efac6 | 19 | /*Konfiguriert die angegebenen Pins als pulsweitenmodulierte Ausgänge*/ |
Schreeker | 11:5861bc23022a | 20 | PwmOut oLEDXN(PB_15); |
Schreeker | 11:5861bc23022a | 21 | PwmOut oLEDXP(PB_14); |
Schreeker | 11:5861bc23022a | 22 | PwmOut oLEDYN(PB_13); |
Schreeker | 11:5861bc23022a | 23 | PwmOut oLEDYP(PA_11); |
Schreeker | 10:d566927efac6 | 24 | |
Schreeker | 10:d566927efac6 | 25 | /************************************************************************************ |
Schreeker | 10:d566927efac6 | 26 | * void setLED(struct WinkelData stWinkelData) |
Schreeker | 10:d566927efac6 | 27 | * Zweck: Steuerung der vier LED's auf Basis der berechneten Winkel in stWinkelData. |
Schreeker | 10:d566927efac6 | 28 | 1. Auswerten der Z-Achse, ob Überkopflage oder nicht |
Schreeker | 10:d566927efac6 | 29 | 2. Ansteurung der LED's auf Basis der berechneten Winkel in stWinkelData |
Schreeker | 10:d566927efac6 | 30 | und Schritt 1. |
Schreeker | 10:d566927efac6 | 31 | * Parameter: |
Schreeker | 10:d566927efac6 | 32 | *stSensData: Struktur vom Type WinkelData zum Abspeichern der berechneten |
Schreeker | 10:d566927efac6 | 33 | X-, Y- und Z-Winkel aufbauend auf der SensData Struktur. |
Schreeker | 10:d566927efac6 | 34 | * return Parameter: |
Schreeker | 10:d566927efac6 | 35 | keine |
Schreeker | 10:d566927efac6 | 36 | *************************************************************************************/ |
Schreeker | 10:d566927efac6 | 37 | void setLED(struct WinkelData stWinkelData){ |
Schreeker | 10:d566927efac6 | 38 | /* Variabeln */ |
Schreeker | 10:d566927efac6 | 39 | /* Auswertung der Z-Achsendaten */ |
Schreeker | 10:d566927efac6 | 40 | // Tbd |
Schreeker | 10:d566927efac6 | 41 | /* Einstellen der LED's */ |
Schreeker | 10:d566927efac6 | 42 | // Tbd mit Switch-Case-Struktur |
Schreeker | 12:7c9c5a541380 | 43 | } |
Schreeker | 12:7c9c5a541380 | 44 | |
Schreeker | 12:7c9c5a541380 | 45 | /************************************************************************************ |
Schreeker | 12:7c9c5a541380 | 46 | * void void initLED() |
Schreeker | 12:7c9c5a541380 | 47 | * Zweck: Blinken der LED's beim Anschalten des Boards. 4x Blinken im 250ms Abstand |
Schreeker | 12:7c9c5a541380 | 48 | * Parameter: |
Schreeker | 12:7c9c5a541380 | 49 | keine |
Schreeker | 12:7c9c5a541380 | 50 | * return Parameter: |
Schreeker | 12:7c9c5a541380 | 51 | keine |
Schreeker | 12:7c9c5a541380 | 52 | *************************************************************************************/ |
Schreeker | 12:7c9c5a541380 | 53 | void initLED(){ |
Schreeker | 12:7c9c5a541380 | 54 | /* Variabeln */ |
Schreeker | 12:7c9c5a541380 | 55 | int i = 0; |
Schreeker | 12:7c9c5a541380 | 56 | |
Schreeker | 12:7c9c5a541380 | 57 | /* Setzen der PWM-Periode auf 20ms */ |
Schreeker | 12:7c9c5a541380 | 58 | oLEDXN.period_ms(20); |
Schreeker | 12:7c9c5a541380 | 59 | oLEDXP.period_ms(20); |
Schreeker | 12:7c9c5a541380 | 60 | oLEDYN.period_ms(20); |
Schreeker | 12:7c9c5a541380 | 61 | oLEDYP.period_ms(20); |
Schreeker | 12:7c9c5a541380 | 62 | |
Schreeker | 12:7c9c5a541380 | 63 | /* 4x Blinken der LED's mit 250ms Pause dazwischen*/ |
Schreeker | 12:7c9c5a541380 | 64 | while(i<8){ |
Schreeker | 12:7c9c5a541380 | 65 | /* Toggeln der LED's */ |
Schreeker | 12:7c9c5a541380 | 66 | oLEDXN = ((int)oLEDXN.read()+1) % 2; |
Schreeker | 12:7c9c5a541380 | 67 | oLEDXP = ((int)oLEDXP.read()+1) % 2; |
Schreeker | 12:7c9c5a541380 | 68 | oLEDYN = ((int)oLEDYN.read()+1) % 2; |
Schreeker | 12:7c9c5a541380 | 69 | oLEDYP = ((int)oLEDYP.read()+1) % 2; |
Schreeker | 12:7c9c5a541380 | 70 | |
Schreeker | 12:7c9c5a541380 | 71 | /* Warten */ |
Schreeker | 12:7c9c5a541380 | 72 | wait_ms(250); |
Schreeker | 12:7c9c5a541380 | 73 | |
Schreeker | 12:7c9c5a541380 | 74 | /* Zählvariabel erhöhen */ |
Schreeker | 12:7c9c5a541380 | 75 | ++i; |
Schreeker | 12:7c9c5a541380 | 76 | } |
Schreeker | 12:7c9c5a541380 | 77 | } |