void isr_uart0(void) { if (NRF_UART0->EVENTS_RXDRDY == 1) { NRF_UART0->EVENTS_RXDRDY = 0; char byte = (char)(NRF_UART0->RXD & 0xff); uart_config.rx_cb(uart_config.arg, byte); } if (sched_context_switch_request) { thread_yield(); } }
void usbdev_acm_evt_out(usbdev_t *dev) { usbdev_ops_t *driver = dev->driver; size_t l = driver->read_ep(ENDPOINT_ADDR_OUT(USBDEV_ACM_EP_BULKOUT), rec_buffer, USBDEV_ACM_EP_PACKET_SIZE); ringbuffer_add(&cdcacm_rx_rb, (char*)rec_buffer, l); if (ucb_config.rx_cb != NULL) { int retval = ringbuffer_get_one(&cdcacm_rx_rb); while (retval != -1) { ucb_config.rx_cb(ucb_config.arg, (char)retval); retval = ringbuffer_get_one(&cdcacm_rx_rb); } } }