X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=arducontrol%2Finterface.c;h=014e8e98bcaa0ac5eacbeb061f1a38754e1a2ae5;hb=49c7ae4a26f8dd7d09872b6b5e4c107ef33b4560;hp=c5a7262d4c12199b217f0430f5ffe288c399afe6;hpb=c97e84ca85810963c0c7e05d43ce5584b94cc9b3;p=model-railway-devices.git diff --git a/arducontrol/interface.c b/arducontrol/interface.c index c5a7262..014e8e9 100644 --- a/arducontrol/interface.c +++ b/arducontrol/interface.c @@ -10,10 +10,11 @@ static uint8_t cmd_buffer[15]; static uint8_t cmd_length = 0; static uint8_t cmd_read_pos = 0; -uint8_t dispatch_command(const uint8_t *, uint8_t); +static uint8_t dispatch_command(const uint8_t *, uint8_t); void interface_init(void) { + DDRB |= 0x01; DDRD = (DDRD&0xFC)|0x02; serial_init(9600); @@ -21,13 +22,13 @@ 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; if(cmd_length==0) { uint8_t l = ~serial_read(); @@ -45,10 +46,9 @@ void interface_check(void) if(cmd_read_poscmd_length) count = cmd_length-cmd_read_pos; - for(i=0; i=cmd_length) @@ -58,10 +58,11 @@ void interface_check(void) cmd_length = 0; } } + PORTB &= ~0x01; } } -uint8_t dispatch_command(const uint8_t *cmd, uint8_t length) +static uint8_t dispatch_command(const uint8_t *cmd, uint8_t length) { uint8_t type = cmd[0]>>4; if(type==0) @@ -82,10 +83,8 @@ 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