Nuvoton
/
NuMaker-mbed-tickless-example
NuMaker tickless example
Diff: wakeup_uart.cpp
- Revision:
- 21:5424989f037f
- Parent:
- 19:adb1816661ee
- Child:
- 22:59740ecd1781
--- a/wakeup_uart.cpp Tue Feb 25 17:34:02 2020 +0800 +++ b/wakeup_uart.cpp Thu Feb 25 15:25:00 2021 +0800 @@ -57,7 +57,11 @@ extern "C" void nu_uart_cts_wakeup_handler(UART_T *uart_base); static void poll_serial(void); +#if MBED_MAJOR_VERSION >= 6 +static void serial_tx_callback(UnbufferedSerial *serial_); +#else static void serial_tx_callback(Serial *serial_); +#endif /* Support wake-up by UART CTS state change */ static Semaphore sem_serial(0, 1); @@ -72,14 +76,21 @@ static void poll_serial(void) { +#if MBED_MAJOR_VERSION >= 6 + static UnbufferedSerial serial(SERIAL_TX, SERIAL_RX); +#else static Serial serial(SERIAL_TX, SERIAL_RX); - +#endif /* UART CTS wake-up: clock source is not limited. * UART data wake-up: clock source is required to be LXT/LIRC. */ serial.set_flow_control(SerialBase::RTSCTS, SERIAL_RTS, SERIAL_CTS); /* We need to register one interrupt handler to enable interrupt. */ +#if MBED_MAJOR_VERSION >= 6 + Callback<void()> callback((void (*)(UnbufferedSerial *)) &serial_tx_callback, (UnbufferedSerial *) &serial); +#else Callback<void()> callback((void (*)(Serial *)) &serial_tx_callback, (Serial *) &serial); +#endif serial.attach(callback, mbed::SerialBase::TxIrq); while (true) { @@ -88,8 +99,11 @@ wakeup_eventflags.set(EventFlag_Wakeup_UART_CTS); } } - +#if MBED_MAJOR_VERSION >= 6 +static void serial_tx_callback(UnbufferedSerial *serial_) +#else static void serial_tx_callback(Serial *serial_) +#endif { (void) serial_; }