From 8e66529df38a870e0c0897aca918fb6bc2725912 Mon Sep 17 00:00:00 2001 From: Dreaded_X Date: Mon, 18 Jan 2021 16:27:32 +0100 Subject: [PATCH] Clear FIFO after keyboard is initialized --- include/fifo.h | 1 + src/fifo.c | 7 +++++++ src/main.c | 2 ++ 3 files changed, 10 insertions(+) diff --git a/include/fifo.h b/include/fifo.h index 7ab2394..7aa0e56 100644 --- a/include/fifo.h +++ b/include/fifo.h @@ -15,5 +15,6 @@ struct FIFO { void FIFO_push(volatile struct FIFO* fifo, uint8_t value); uint8_t FIFO_pop(volatile struct FIFO* fifo); int FIFO_size(volatile struct FIFO* fifo); +void FIFO_clear(volatile struct FIFO* fifo); #endif diff --git a/src/fifo.c b/src/fifo.c index 6653ad0..54eb42a 100644 --- a/src/fifo.c +++ b/src/fifo.c @@ -35,3 +35,10 @@ uint8_t FIFO_pop(volatile struct FIFO* fifo) { int FIFO_size(volatile struct FIFO* fifo) { return fifo->size; } + +void FIFO_clear(volatile struct FIFO* fifo) { + fifo->head = 0; + fifo->tail = 0; + fifo->size = 0; + // We don't need to clear the buffer as we will override it anyway +} diff --git a/src/main.c b/src/main.c index 62d4350..9b11eba 100644 --- a/src/main.c +++ b/src/main.c @@ -81,6 +81,8 @@ int main() { send_keyboard_cmd(0xF3); send_keyboard_cmd(0x00 | (0<<5) | (0<<4)); + FIFO_clear(&buffer); + for (;;) { send_keyboard_cmd_queue();