
...
Dependencies: mbed
main.cpp
- Committer:
- big12boy
- Date:
- 2015-03-23
- Revision:
- 1:7a850b229d16
- Parent:
- 0:5492d5e8e67f
File content as of revision 1:7a850b229d16:
//Importieren der Standardbefehle #include "mbed.h" //Deffinieren von Ein-/Ausgängen BusOut leds(P1_13,P1_12,P1_7,P1_6,P1_4,P1_3,P1_1,P1_0,LED4,LED3,LED2,LED1); //Bus (Mehrere Eingänge zusammenfassen), Out (Als Ausgang definieren), leds (Name der Variable), ... (Pins aus der zusammenfassung wählen und eintragen) DigitalIn btn1(P0_10); //Digital (nur 1 oder 0), In (Eingang), btn (Name der Varibale), P0_16 (Pin, an der der Button angeschlossen ist) InterruptIn btn2(P1_16), btn3(P0_23); //Interrupt (Wenn sich der Eingang verändert [Rise 0->1, Fall 1->0]), In (Eingang)] ... //Definieren von Variablen int btn3pressed = 0, temp = 0; //Variablen für das Speichern, ob btn3 gedrückt wurde Timer T1; //Timer definieren (Zähler der im hintergrund von 0ms hoch zählt) void sw4ISR(); //Definieren der Interrupt Klassen void sw3ISR(); //... int sw3CheckFlag(); //Definieren einer Abfrageklasse //Hauptmethode int main() { //Initialisierung btn2.rise(sw4ISR); //Definieren der Interrupts als rise, sw4ISR ist die Methode, die Aufgerufen wird) btn3.rise(sw3ISR); //... T1.start(); //Starten des 1. Timers leds=1; //Aktivieren der 1. LED am LED-Balken wait_ms(500); //Warten 0,5s //Dauerschleife while(1) { leds = leds << 1; //Verschieben der LEDs, << nach links (0001 -> 0010), >> nach rechts (0100->0010), null wird nachgeschoben if(btn1 || sw3CheckFlag()){ // Prüfen, ob der 1. Button gedrückt ist oder btn3 seit dem letzten mal gedrückt wurde leds=1; //Zurücksetzen des LED-Balkens T1.reset(); //Zurücksetzen des Timers } if(T1.read_ms() > 10000){ //Prüfen ob der Timer mehr als 10s läuft T1.reset(); //Zurücksetzen des Timers leds=1; //Zurücksetzen des LED-Balkens } wait_ms(2000); //2s Warten } } //Interrupt Klassen //Button 4 gedrückt -> direkter Einfluss auf den LED Balken void sw4ISR(){ leds=1; //Zurücksetzen des LED-Balkens T1.reset(); //Zurücksetzen des Timers } //Button 3 gedrückt -> Speichern des Drucks void sw3ISR(){ btn3pressed = 1; } //Abfrage, ob btn3 gedrückt wurde int sw3CheckFlag(){ temp = btn3pressed; //zuwischenspeichern der Variable (btn3pressed muss vor dem "return" zurückgesetzt werden) btn3pressed = 0; //btn3pressed zurücksetzen return temp; //Rückgabe von 1 oder 0, je nach dem, ob btn3 gedrückt wurde }