MAX3100, an external serial device to add additional serial ports via SPI
Dependents: FLIGHT_CONTROL_AND_COMMUNICATIONS_SYSTEM
Diff: MAX3100.cpp
- Revision:
- 2:2a49171453d5
- Parent:
- 1:46c8c60e744a
--- a/MAX3100.cpp Mon Jan 17 01:14:16 2011 +0000 +++ b/MAX3100.cpp Fri Aug 03 12:28:27 2012 +0000 @@ -37,6 +37,10 @@ _cs_obj = NULL; _cs_method = NULL; + _isr_user_function = NULL; + _isr_user_obj = NULL; + _isr_user_method = NULL; + if (cs != NC) { _cs = new DigitalOut(cs); _cs->write( 1 ); @@ -254,7 +258,23 @@ rx_buffer[rx_buffer_in++] = (char)(data & 0xFF); if (rx_buffer_in >= MAX3100_RX_BUFFER_SIZE) rx_buffer_in = 0; if (rx_buffer_in == rx_buffer_out) rx_buffer_full = true; - } + } + + int isrType = MAX3100::ISR; + + if ( data & MAX3100_CONF_R ) { + isrType |= MAX3100::ISR_RX; + } + + if ( tx_ready ) { + isrType |= MAX3100::ISR_TX; + } + + + if (_isr_user_function != NULL) (*_isr_user_function)( isrType ); + else { + if (_isr_user_obj && _isr_user_method) (_isr_user_obj->*_isr_user_method)( isrType ); + } } void