コード例 #1
0
void SerialBase::interrupt_handler_asynch(void)
{
    int event = serial_irq_handler_asynch(&_serial);
    int rx_event = event & SERIAL_EVENT_RX_MASK;
    if (_rx_callback && rx_event) {
        _rx_callback.call(rx_event);
    }

    int tx_event = event & SERIAL_EVENT_TX_MASK;
    if (_tx_callback && tx_event) {
        _tx_callback.call(tx_event);
    }
}
コード例 #2
0
ファイル: SerialBase.cpp プロジェクト: 0xc0170/mbed-drivers
void SerialBase::interrupt_handler_asynch(void)
{
    int event = serial_irq_handler_asynch(&_serial);
    int rx_event = event & SERIAL_EVENT_RX_MASK;
    if (_current_rx_transaction.callback && rx_event) {
        minar::Scheduler::postCallback(_current_rx_transaction.callback.bind(_current_rx_transaction.buffer, rx_event));
    }

    int tx_event = event & SERIAL_EVENT_TX_MASK;
    if (_current_tx_transaction.callback && tx_event) {
        minar::Scheduler::postCallback(_current_tx_transaction.callback.bind(_current_tx_transaction.buffer, tx_event));
    }
}