uint8_t ps2_host_recv_response(void) { // Command may take 25ms/20ms at most([5]p.46, [3]p.21) uint8_t retry = 25; while (retry-- && !pbuf_has_data()) { _delay_ms(1); } return pbuf_dequeue(); }
uint8_t ps2_host_recv(void) { if (pbuf_has_data()) { ps2_error = PS2_ERR_NONE; return pbuf_dequeue(); } else { ps2_error = PS2_ERR_NODATA; return 0; } }
uint8_t ps2_host_recv_response(void) { while (!pbuf_has_data()) ; return pbuf_dequeue(); }