050216
Dependencies: MODSERIAL mon-050216 mbed timer0-050216
Fork of mbed_blinky by
Diff: main.cpp
- Revision:
- 10:cfd15bd4762a
- Parent:
- 4:81cea7a352b0
- Child:
- 11:be852b7b7692
--- a/main.cpp Thu Oct 29 12:28:39 2015 +0000 +++ b/main.cpp Fri Feb 05 16:52:41 2016 +0000 @@ -1,12 +1,128 @@ +// RS485 Link für modeserial +// https://developer.mbed.org/cookbook/MODSERIAL + #include "mbed.h" +#include "main.h" +#include "timer0.h" +#include "mon.h" +#include "rs_485.h" + +DigitalOut led1(LED1,1); +DigitalOut led2(LED2,1); +DigitalOut led3(LED3,1); +DigitalOut led4(LED4,1); +DigitalOut led5(LED5,1); +DigitalOut led6(LED6,1); +DigitalOut led7(LED7,1); + +DigitalOut out1(OUT1,0); // max 500mA schaltet gegen GND +DigitalOut out2(OUT2,0); +DigitalOut out3(OUT3,0); +DigitalOut out4(OUT4,0); -DigitalOut myled(LED1); +DigitalIn in1(IN1); // 0 oder 24V +DigitalIn in2(IN2); +DigitalIn in3(IN3); +DigitalIn in4(IN4); + +MODSERIAL pc(TXD, RXD); // tx, rx +timer0 down_timer; // Timer für Zeitsteuerung +rs_485 RS485_BUS; // RS485 BUS + +monitor mon; + +void led_aus(void) +{ + led1 = 1; + led2 = 1; + led3 = 1; + led4 = 1; + led5 = 1; + led6 = 1; + led7 = 1; + out2 = 0; + out3 = 0; + out4 = 0; +} + + +uint8_t i = 1; int main() { + + pc.baud(115200); + pc.printf("\nHello IOX.mini\n"); + + down_timer.SetCountdownTimer(1,1,500); // Timer für LED + while(1) { - myled = 1; - wait(0.2); - myled = 0; - wait(0.2); - } + + mon.monPC(); // Eingaben abfragen und auswerten + //RS485_BUS.execute(); // RS485 Bus + + //-------------------------------------------------------------------------- + // LED für Statusanzeige + + if (down_timer.GetTimerStatus(1) == 0) + { + // RS485.printf("\n %02x",i); + + down_timer.SetCountdownTimer(1,1,50); // alle 500ms + // pc.printf("\nLED #%d",i); + switch (i) + { + + case 1: + i = 2; + led_aus(); + led1 = 0; + break; + case 2: + i = 3; + led_aus(); + led2 = 0; + break; + case 3: + i = 4; + led_aus(); + led3 = 0; + break; + case 4: + i = 5; + led_aus(); + led4 = 0; + break; + case 5: + i = 6; + led_aus(); + led5 = 0; + break; + case 6: + i = 7; + led_aus(); + led6 = 0; + break; + case 7: + i = 8; + led_aus(); + led7 = 0; + break; + case 8: // Die LED's sind mit den Ausgängen verbunden und werden mit 1 geschaltet + i = 9; + led_aus(); + out2 = 1; + break; + case 9: + i = 10; + led_aus(); + out3 = 1; + break; + case 10: + i = 1; + led_aus(); + out4 = 1; + break; + } // end switch + } // end if(down_timer + } // end while(1) }