Esempio n. 1
0
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();
    }
}
Esempio n. 2
0
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);
        }
    }
}