Dependencies: mbed
main.cpp@1:7a850b229d16, 2015-03-23 (annotated)
- Committer:
- big12boy
- Date:
- Mon Mar 23 09:01:10 2015 +0000
- Revision:
- 1:7a850b229d16
- Parent:
- 0:5492d5e8e67f
Zusammenfassung mit Kommentaren
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
big12boy | 1:7a850b229d16 | 1 | //Importieren der Standardbefehle |
big12boy | 0:5492d5e8e67f | 2 | #include "mbed.h" |
big12boy | 0:5492d5e8e67f | 3 | |
big12boy | 1:7a850b229d16 | 4 | //Deffinieren von Ein-/Ausgängen |
big12boy | 1:7a850b229d16 | 5 | 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) |
big12boy | 1:7a850b229d16 | 6 | DigitalIn btn1(P0_10); //Digital (nur 1 oder 0), In (Eingang), btn (Name der Varibale), P0_16 (Pin, an der der Button angeschlossen ist) |
big12boy | 1:7a850b229d16 | 7 | InterruptIn btn2(P1_16), btn3(P0_23); //Interrupt (Wenn sich der Eingang verändert [Rise 0->1, Fall 1->0]), In (Eingang)] ... |
big12boy | 0:5492d5e8e67f | 8 | |
big12boy | 1:7a850b229d16 | 9 | //Definieren von Variablen |
big12boy | 1:7a850b229d16 | 10 | int btn3pressed = 0, temp = 0; //Variablen für das Speichern, ob btn3 gedrückt wurde |
big12boy | 0:5492d5e8e67f | 11 | |
big12boy | 1:7a850b229d16 | 12 | Timer T1; //Timer definieren (Zähler der im hintergrund von 0ms hoch zählt) |
big12boy | 0:5492d5e8e67f | 13 | |
big12boy | 1:7a850b229d16 | 14 | void sw4ISR(); //Definieren der Interrupt Klassen |
big12boy | 1:7a850b229d16 | 15 | void sw3ISR(); //... |
big12boy | 1:7a850b229d16 | 16 | int sw3CheckFlag(); //Definieren einer Abfrageklasse |
big12boy | 1:7a850b229d16 | 17 | |
big12boy | 1:7a850b229d16 | 18 | //Hauptmethode |
big12boy | 0:5492d5e8e67f | 19 | int main() { |
big12boy | 1:7a850b229d16 | 20 | //Initialisierung |
big12boy | 1:7a850b229d16 | 21 | btn2.rise(sw4ISR); //Definieren der Interrupts als rise, sw4ISR ist die Methode, die Aufgerufen wird) |
big12boy | 1:7a850b229d16 | 22 | btn3.rise(sw3ISR); //... |
big12boy | 0:5492d5e8e67f | 23 | |
big12boy | 1:7a850b229d16 | 24 | T1.start(); //Starten des 1. Timers |
big12boy | 1:7a850b229d16 | 25 | leds=1; //Aktivieren der 1. LED am LED-Balken |
big12boy | 1:7a850b229d16 | 26 | wait_ms(500); //Warten 0,5s |
big12boy | 1:7a850b229d16 | 27 | |
big12boy | 1:7a850b229d16 | 28 | //Dauerschleife |
big12boy | 0:5492d5e8e67f | 29 | while(1) { |
big12boy | 1:7a850b229d16 | 30 | leds = leds << 1; //Verschieben der LEDs, << nach links (0001 -> 0010), >> nach rechts (0100->0010), null wird nachgeschoben |
big12boy | 0:5492d5e8e67f | 31 | |
big12boy | 1:7a850b229d16 | 32 | if(btn1 || sw3CheckFlag()){ // Prüfen, ob der 1. Button gedrückt ist oder btn3 seit dem letzten mal gedrückt wurde |
big12boy | 1:7a850b229d16 | 33 | leds=1; //Zurücksetzen des LED-Balkens |
big12boy | 1:7a850b229d16 | 34 | T1.reset(); //Zurücksetzen des Timers |
big12boy | 0:5492d5e8e67f | 35 | } |
big12boy | 1:7a850b229d16 | 36 | if(T1.read_ms() > 10000){ //Prüfen ob der Timer mehr als 10s läuft |
big12boy | 1:7a850b229d16 | 37 | T1.reset(); //Zurücksetzen des Timers |
big12boy | 1:7a850b229d16 | 38 | leds=1; //Zurücksetzen des LED-Balkens |
big12boy | 0:5492d5e8e67f | 39 | } |
big12boy | 0:5492d5e8e67f | 40 | |
big12boy | 1:7a850b229d16 | 41 | wait_ms(2000); //2s Warten |
big12boy | 0:5492d5e8e67f | 42 | |
big12boy | 0:5492d5e8e67f | 43 | } |
big12boy | 0:5492d5e8e67f | 44 | } |
big12boy | 0:5492d5e8e67f | 45 | |
big12boy | 1:7a850b229d16 | 46 | //Interrupt Klassen |
big12boy | 1:7a850b229d16 | 47 | //Button 4 gedrückt -> direkter Einfluss auf den LED Balken |
big12boy | 0:5492d5e8e67f | 48 | void sw4ISR(){ |
big12boy | 1:7a850b229d16 | 49 | leds=1; //Zurücksetzen des LED-Balkens |
big12boy | 1:7a850b229d16 | 50 | T1.reset(); //Zurücksetzen des Timers |
big12boy | 0:5492d5e8e67f | 51 | } |
big12boy | 0:5492d5e8e67f | 52 | |
big12boy | 1:7a850b229d16 | 53 | //Button 3 gedrückt -> Speichern des Drucks |
big12boy | 0:5492d5e8e67f | 54 | void sw3ISR(){ |
big12boy | 0:5492d5e8e67f | 55 | btn3pressed = 1; |
big12boy | 0:5492d5e8e67f | 56 | } |
big12boy | 0:5492d5e8e67f | 57 | |
big12boy | 1:7a850b229d16 | 58 | //Abfrage, ob btn3 gedrückt wurde |
big12boy | 0:5492d5e8e67f | 59 | int sw3CheckFlag(){ |
big12boy | 1:7a850b229d16 | 60 | temp = btn3pressed; //zuwischenspeichern der Variable (btn3pressed muss vor dem "return" zurückgesetzt werden) |
big12boy | 1:7a850b229d16 | 61 | btn3pressed = 0; //btn3pressed zurücksetzen |
big12boy | 1:7a850b229d16 | 62 | return temp; //Rückgabe von 1 oder 0, je nach dem, ob btn3 gedrückt wurde |
big12boy | 1:7a850b229d16 | 63 | } |