Dependencies:   mbed

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?

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