From cd7c7395c1b97360409a34bcf7514527e2237d10 Mon Sep 17 00:00:00 2001 From: Philip Heron Date: Tue, 29 Jun 2010 22:23:58 +0100 Subject: [PATCH] Fixups --- c328.c | 14 ++++++++------ c328.h | 8 ++++---- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/c328.c b/c328.c index 5437857..21f95d0 100644 --- a/c328.c +++ b/c328.c @@ -16,7 +16,7 @@ /* Receive buffer */ #define RXBUF_LEN (64) static uint8_t rxbuf[RXBUF_LEN]; -static uint8_t rxbuf_len = 0; +static uint16_t rxbuf_len = 0; /* Expected package size */ static uint8_t pkg_len = 64; /* Default is 64 according to datasheet */ @@ -24,7 +24,7 @@ static uint8_t pkg_len = 64; /* Default is 64 according to datasheet */ /* Timeout counter */ volatile static uint8_t timeout_clk = 0; -void inline c3_tick() +void inline c3_tick(void) { if(timeout_clk) timeout_clk--; } @@ -80,7 +80,7 @@ static char c3_cmd(uint8_t cmd, uint8_t a1, uint8_t a2, uint8_t a3, uint8_t a4) return(0); } -void c3_init() +void c3_init(void) { /* Do UART initialisation, port 0 @ 57600 baud for 7.3728 MHz clock */ UBRR0H = 0; @@ -93,7 +93,7 @@ void c3_init() UCSR0C = (1 << UCSZ01) | (1 << UCSZ00); } -char c3_sync() +char c3_sync(void) { char i; @@ -179,10 +179,12 @@ char c3_get_package(uint16_t id, uint8_t **dst, uint16_t *length) s = rxbuf[2] + (rxbuf[3] << 8) + 6; if(s > pkg_len) return(-1); } + + timeout_clk = CMD_TIMEOUT; } /* Test for timeout or incomplete package */ - if(rxbuf_len < s) return(-1); + if(rxbuf_len != s) return(-1); /* Test checksum */ checksum -= rxbuf[rxbuf_len - 2]; @@ -195,7 +197,7 @@ char c3_get_package(uint16_t id, uint8_t **dst, uint16_t *length) return(0); } -char c3_finish_picture() +char c3_finish_picture(void) { c3_tx(CMD_ACK, 0, 0, 0xF0, 0xF0); return(0); diff --git a/c328.h b/c328.h index b6ec326..2b38088 100644 --- a/c328.h +++ b/c328.h @@ -80,16 +80,16 @@ #define ERR_SEND_PICTURE_ERROR 0xF5 #define ERR_SEND_COMMAND_ERROR 0xFF -extern void inline c3_tick(); +extern void inline c3_tick(void); -extern void c3_init(); -extern char c3_sync(); +extern void c3_init(void); +extern char c3_sync(void); extern char c3_setup(uint8_t ct, uint8_t rr, uint8_t jr); extern char c3_set_package_size(uint16_t s); extern char c3_snapshot(uint8_t st, uint16_t skip_frame); extern char c3_get_picture(uint8_t pt, uint16_t *length); extern char c3_get_package(uint16_t id, uint8_t **dst, uint16_t *length); -extern char c3_finish_picture(); +extern char c3_finish_picture(void); #endif