X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=arducontrol%2Finterface.c;h=63b1ebd1700b0c11d1e193ed1b0c1c3ef4eb0a91;hb=55f60a37bbeeaa62796e1be8bef062eeb1522a71;hp=2c55e2af634eca747a7d207db38235a037c24cd3;hpb=e828083600fc8033aeb1768acabe98461347b906;p=model-railway-devices.git diff --git a/arducontrol/interface.c b/arducontrol/interface.c index 2c55e2a..63b1ebd 100644 --- a/arducontrol/interface.c +++ b/arducontrol/interface.c @@ -1,5 +1,6 @@ #include #include "interface.h" +#include "mfx.h" #include "monitor.h" #include "motorola.h" #include "output.h" @@ -22,11 +23,10 @@ void interface_init(void) void interface_check(void) { - uint8_t count; if(serial_read_overrun()) interface_send1(RECEIVE_OVERRUN); - count = serial_read_available(); + uint8_t count = serial_read_available(); if(count>0) { PORTB |= 0x01; @@ -47,10 +47,9 @@ void interface_check(void) if(cmd_read_poscmd_length) count = cmd_length-cmd_read_pos; - for(i=0; i=cmd_length) @@ -77,6 +76,8 @@ static uint8_t dispatch_command(const uint8_t *cmd, uint8_t length) } else if(type==1) return motorola_command(cmd, length); + else if(type==2) + return mfx_command(cmd, length); else if(type==3) return s88_command(cmd, length); else @@ -85,10 +86,8 @@ static uint8_t dispatch_command(const uint8_t *cmd, uint8_t length) void interface_send(const uint8_t *cmd, uint8_t length) { - uint8_t i; - serial_write(~length); - for(i=0; i