UART1 buffered serial driver, requires RTOS
Dependents: Serial_interrupts_buffered HARP2 HARP3
Buffered serial UART1 - Setup to work with UART1 (p13,p14)
Uses RTOS to block current thread.
Reference: http://mbed.org/users/tylerjw/notebook/buffered-serial-with-rtos/
Diff: buffered_serial.cpp
- Revision:
- 3:a4a21e18acd1
- Parent:
- 2:8ccf9bb8dc65
- Child:
- 4:d3122119f92b
--- a/buffered_serial.cpp Tue Dec 11 00:12:45 2012 +0000 +++ b/buffered_serial.cpp Thu Dec 13 06:53:43 2012 +0000 @@ -1,6 +1,6 @@ #include "buffered_serial.h" -BufferedSerial::BufferedSerial(PinName tx, PinName rx) : Serial(tx,rx), led1(LED1), led2(LED2), rx_sem(0), tx_sem(0) +BufferedSerial::BufferedSerial(PinName tx, PinName rx) : Serial(tx,rx), /*led1(LED1), led2(LED2),*/ rx_sem(0), tx_sem(0) { tx_in=0; tx_out=0; @@ -90,25 +90,25 @@ void BufferedSerial::Rx_interrupt() { uint32_t IRR1 = LPC_UART1->IIR; - led1=1; + // led1=1; while (readable() && !(IS_RX_FULL)) { rx_buffer[rx_in] = LPC_UART1->RBR; rx_in = NEXT(rx_in); rx_sem.release(); } - led1=0; + // led1=0; } // Interupt Routine to write out data to serial port void BufferedSerial::Tx_interrupt() { uint32_t IRR = LPC_UART1->IIR; - led2=1; + // led2=1; while ((writeable()) && (tx_in != tx_out)) { // while serial is writeable and there are still characters in the buffer LPC_UART1->THR = tx_buffer[tx_out]; // send the character tx_out = NEXT(tx_out); } if(!IS_TX_FULL) // if not full tx_sem.release(); - led2=0; + // led2=0; } \ No newline at end of file