Dependencies:   TextLCD mbed

LED.cpp

Committer:
Schreeker
Date:
2016-06-28
Revision:
12:7c9c5a541380
Parent:
11:5861bc23022a
Child:
15:462c8c89fe35

File content as of revision 12:7c9c5a541380:

/********************************************************************************** 
* File name:    LED.cpp
* Zweck:        Beinhaltet alle Funktionen zur Einstellung der LED-Helligkeit
                in Abhängigkeit von den berechneten Winkeln.
* Author:       Simon Rutzen, Nils Kemmer
* Changes:      keine
***********************************************************************************/

/* Zu benutzende Pins */
// PWM1 - Channel 1N (PB_15), 2N (PB_14), 3N (PB_13) und 4 (PA_11)

/* Include */
#include "mbed.h"
#include "Sensor.h"

/* Externe Variablen */
extern struct WinkelData stWinkelData;

/*Konfiguriert die angegebenen Pins als pulsweitenmodulierte Ausgänge*/
PwmOut oLEDXN(PB_15);
PwmOut oLEDXP(PB_14);
PwmOut oLEDYN(PB_13);
PwmOut oLEDYP(PA_11);

/************************************************************************************
* void setLED(struct WinkelData stWinkelData)
* Zweck:    Steuerung der vier LED's auf Basis der berechneten Winkel in stWinkelData.
            1. Auswerten der Z-Achse, ob Überkopflage oder nicht
            2. Ansteurung der LED's auf Basis der berechneten Winkel in stWinkelData
               und Schritt 1.          
* Parameter:
    *stSensData: Struktur vom Type WinkelData zum Abspeichern der berechneten 
                 X-, Y- und Z-Winkel aufbauend auf der SensData Struktur. 
* return Parameter:
    keine
*************************************************************************************/
void setLED(struct WinkelData stWinkelData){
    /* Variabeln */
    /* Auswertung der Z-Achsendaten */
    // Tbd
    /* Einstellen der LED's */
    // Tbd mit Switch-Case-Struktur
    }        

/************************************************************************************
* void void initLED()
* Zweck:    Blinken der LED's beim Anschalten des Boards. 4x Blinken im 250ms Abstand        
* Parameter:
    keine
* return Parameter:
    keine
*************************************************************************************/
void initLED(){
    /* Variabeln */
    int i = 0;
    
    /* Setzen der PWM-Periode auf 20ms */
    oLEDXN.period_ms(20);
    oLEDXP.period_ms(20);
    oLEDYN.period_ms(20);
    oLEDYP.period_ms(20);
    
    /* 4x Blinken der LED's mit 250ms Pause dazwischen*/
    while(i<8){
        /* Toggeln der LED's */
        oLEDXN = ((int)oLEDXN.read()+1) % 2; 
        oLEDXP = ((int)oLEDXP.read()+1) % 2;
        oLEDYN = ((int)oLEDYN.read()+1) % 2;
        oLEDYP = ((int)oLEDYP.read()+1) % 2;
        
        /* Warten */
        wait_ms(250);
        
        /* Zählvariabel erhöhen */
        ++i;
        }
    }