050216

Dependencies:   MODSERIAL mon-050216 mbed timer0-050216

Fork of mbed_blinky by Mbed

main.cpp

Committer:
rs27
Date:
2016-02-05
Revision:
10:cfd15bd4762a
Parent:
4:81cea7a352b0
Child:
11:be852b7b7692

File content as of revision 10:cfd15bd4762a:

// 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);

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