Programm zur Darstellung der Lage eines Objektes im Raum mit Hilfe eines Beschleunigungssensores, 4 LED's und einem LCD-Display.

Dependencies:   TextLCD mbed

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?

UserRevisionLine numberNew 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 }