050216

Dependencies:   MODSERIAL mon-050216 mbed timer0-050216

Fork of mbed_blinky by Mbed

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)
 }