From: adam Date: Thu, 6 Apr 2006 13:49:53 +0000 (+0100) Subject: check X-Git-Tag: mpar_demo_release~119 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=c75079bb48fe7245e8d00f20accfef2f8b47c432;p=slipway.git check --- diff --git a/src/edu/berkeley/obits/device/atmel/AvrDrone.c b/src/edu/berkeley/obits/device/atmel/AvrDrone.c index f72cd28..d46dd49 100644 --- a/src/edu/berkeley/obits/device/atmel/AvrDrone.c +++ b/src/edu/berkeley/obits/device/atmel/AvrDrone.c @@ -62,7 +62,7 @@ inline int read_nearlyFull() { if (read_buf_tail < read_buf_head) return (read_buf_head-read_buf_tail) < (BUFSIZE/2); return (read_buf_tail-read_buf_head) > (BUFSIZE/2); } -/* + inline int write_full() { return inc(write_buf_tail)==write_buf_head; } inline int write_empty() { return write_buf_head==write_buf_tail; } inline int write_nearlyFull() { @@ -70,7 +70,7 @@ inline int write_nearlyFull() { if (write_buf_tail < write_buf_head) return (write_buf_head-write_buf_tail) < (BUFSIZE/2); return (write_buf_tail-write_buf_head) > (BUFSIZE/2); } -*/ + inline char recv() { int q; char ret; @@ -81,15 +81,26 @@ inline char recv() { return ret; } +ISR(SIG_UART1_DATA) { + //if (write_empty()) return; + portd(1, 0); + _delay_ms(10); + portd(1, 1); + _delay_ms(10); + UCSR1B &= ~(1 << UDRIE1); + sei(); +} + void send(char c) { write_buf[write_buf_tail] = c; write_buf_tail = inc(write_buf_tail); - char ret = write_buf[write_buf_head]; - write_buf_head = inc(write_buf_head); + UCSR1B |= (1 << UDRIE1); while(!(UCSR1A & (1 << UDRE1))); /* Wait for data Regiester to be empty */ + char ret = write_buf[write_buf_head]; + write_buf_head = inc(write_buf_head); UDR1 = (int)ret; }