M0Board_WF
/
WF_RGB_Ampel
a
main.cpp@0:c96b6773ab09, 2015-01-28 (annotated)
- Committer:
- bulmenwt
- Date:
- Wed Jan 28 07:52:24 2015 +0000
- Revision:
- 0:c96b6773ab09
a
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
bulmenwt | 0:c96b6773ab09 | 1 | /*M0-BOARD LPC11U24 VERSION 1.0 WF 01_2015 |
bulmenwt | 0:c96b6773ab09 | 2 | BULME Graz / Elektronik |
bulmenwt | 0:c96b6773ab09 | 3 | RGB - LED |
bulmenwt | 0:c96b6773ab09 | 4 | Datei: WF_RGB_Ampel/main.cpp |
bulmenwt | 0:c96b6773ab09 | 5 | */ |
bulmenwt | 0:c96b6773ab09 | 6 | |
bulmenwt | 0:c96b6773ab09 | 7 | #include "mbed.h" |
bulmenwt | 0:c96b6773ab09 | 8 | PwmOut g(p5); // Definition LED grün, PWM |
bulmenwt | 0:c96b6773ab09 | 9 | PwmOut b(p34); // Definition LED blau, PWM |
bulmenwt | 0:c96b6773ab09 | 10 | PwmOut r(p36); // Definition LED rot, PWM |
bulmenwt | 0:c96b6773ab09 | 11 | |
bulmenwt | 0:c96b6773ab09 | 12 | // Definition der Taster (Switches) |
bulmenwt | 0:c96b6773ab09 | 13 | DigitalIn sw1(P0_15); // SW1 -> sein IO Pin ist laut Schaltplan der P0_15 |
bulmenwt | 0:c96b6773ab09 | 14 | DigitalIn sw2(P0_10); // Die Pins werden hier mit DigitalIn belegt ! |
bulmenwt | 0:c96b6773ab09 | 15 | DigitalIn sw3(P0_23); // Die Pins werden hier mit DigitalIn belegt ! |
bulmenwt | 0:c96b6773ab09 | 16 | |
bulmenwt | 0:c96b6773ab09 | 17 | // definition der Zustände |
bulmenwt | 0:c96b6773ab09 | 18 | typedef enum { a_rot, a_blau, a_gruen, temp} state_t ; |
bulmenwt | 0:c96b6773ab09 | 19 | state_t state = a_rot; |
bulmenwt | 0:c96b6773ab09 | 20 | |
bulmenwt | 0:c96b6773ab09 | 21 | // Funktions-Prototype |
bulmenwt | 0:c96b6773ab09 | 22 | void farbe(int gruen, int blau, int rot); |
bulmenwt | 0:c96b6773ab09 | 23 | void stateMachine(); |
bulmenwt | 0:c96b6773ab09 | 24 | |
bulmenwt | 0:c96b6773ab09 | 25 | int main() |
bulmenwt | 0:c96b6773ab09 | 26 | { |
bulmenwt | 0:c96b6773ab09 | 27 | farbe(1,1,0); |
bulmenwt | 0:c96b6773ab09 | 28 | while(1) |
bulmenwt | 0:c96b6773ab09 | 29 | { |
bulmenwt | 0:c96b6773ab09 | 30 | if (sw1==1) { |
bulmenwt | 0:c96b6773ab09 | 31 | stateMachine(); |
bulmenwt | 0:c96b6773ab09 | 32 | } |
bulmenwt | 0:c96b6773ab09 | 33 | } |
bulmenwt | 0:c96b6773ab09 | 34 | } |
bulmenwt | 0:c96b6773ab09 | 35 | |
bulmenwt | 0:c96b6773ab09 | 36 | // Function farbe definieren |
bulmenwt | 0:c96b6773ab09 | 37 | void farbe(int gruen, int blau, int rot) |
bulmenwt | 0:c96b6773ab09 | 38 | { |
bulmenwt | 0:c96b6773ab09 | 39 | g=gruen; // LED gruen |
bulmenwt | 0:c96b6773ab09 | 40 | b=blau; // LED blau |
bulmenwt | 0:c96b6773ab09 | 41 | r=rot; // LED rot |
bulmenwt | 0:c96b6773ab09 | 42 | } |
bulmenwt | 0:c96b6773ab09 | 43 | |
bulmenwt | 0:c96b6773ab09 | 44 | // Function Zustnadsmaschine |
bulmenwt | 0:c96b6773ab09 | 45 | void stateMachine() |
bulmenwt | 0:c96b6773ab09 | 46 | { |
bulmenwt | 0:c96b6773ab09 | 47 | switch( state ) { |
bulmenwt | 0:c96b6773ab09 | 48 | case a_rot: |
bulmenwt | 0:c96b6773ab09 | 49 | farbe(1,1,0); |
bulmenwt | 0:c96b6773ab09 | 50 | wait(2); |
bulmenwt | 0:c96b6773ab09 | 51 | state = a_blau; |
bulmenwt | 0:c96b6773ab09 | 52 | //break; |
bulmenwt | 0:c96b6773ab09 | 53 | |
bulmenwt | 0:c96b6773ab09 | 54 | case a_blau: |
bulmenwt | 0:c96b6773ab09 | 55 | farbe(1,0,1); |
bulmenwt | 0:c96b6773ab09 | 56 | wait(2); |
bulmenwt | 0:c96b6773ab09 | 57 | state = a_gruen; |
bulmenwt | 0:c96b6773ab09 | 58 | //break; |
bulmenwt | 0:c96b6773ab09 | 59 | |
bulmenwt | 0:c96b6773ab09 | 60 | case a_gruen: |
bulmenwt | 0:c96b6773ab09 | 61 | farbe(0,1,1); |
bulmenwt | 0:c96b6773ab09 | 62 | wait(2); |
bulmenwt | 0:c96b6773ab09 | 63 | state = a_rot; |
bulmenwt | 0:c96b6773ab09 | 64 | //break; |
bulmenwt | 0:c96b6773ab09 | 65 | |
bulmenwt | 0:c96b6773ab09 | 66 | case temp: |
bulmenwt | 0:c96b6773ab09 | 67 | farbe(1,1,0); |
bulmenwt | 0:c96b6773ab09 | 68 | break; |
bulmenwt | 0:c96b6773ab09 | 69 | |
bulmenwt | 0:c96b6773ab09 | 70 | } |
bulmenwt | 0:c96b6773ab09 | 71 | } |