From cdea4f5da56c6158beccc801f0a4efa045cf46cb Mon Sep 17 00:00:00 2001 From: root Date: Sun, 7 Jun 2015 02:35:01 +0100 Subject: tidy up makefiles and fix init delay --- app/atkbd.c | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) (limited to 'app/atkbd.c') diff --git a/app/atkbd.c b/app/atkbd.c index 9091636..1ba599a 100644 --- a/app/atkbd.c +++ b/app/atkbd.c @@ -67,6 +67,8 @@ typedef enum +static int ready; +static uint8_t saved_leds; static int atkbd_ack; static int atkbd_nack; @@ -396,7 +398,14 @@ atkbd_request_echo (void) int atkbd_set_leds (uint8_t leds) { - uint32_t then = ticks; + uint32_t then; + + saved_leds = leds; + + if (!ready) + return 0; + + then = ticks; atkbd_ack = 0; atkbd_send (ATKBD_CMD_SETLEDS); while (!atkbd_ack) @@ -461,11 +470,23 @@ atkbd_set_mbr (void) } +void +atkbd_start (void) +{ + + atkbd_reset (); + atkbd_request_echo (); + atkbd_set_mbr (); + atkbd_set_scanset (2); + atkbd_set_leds (saved_leds); + + ready++; +} + void atkbd_init (void) { atkbd_set (1, 1); - delay_ms (200); nvic_enable_irq (NVIC_EXTI0_IRQ); @@ -478,11 +499,5 @@ atkbd_init (void) nvic_enable_irq (KBCLK_IRQ); - atkbd_reset (); - atkbd_request_echo (); - atkbd_set_mbr (); - atkbd_set_scanset (2); - atkbd_set_leds (0); - } -- cgit v1.2.3