From 36c8a5f897e23f663224ca3fd6cabd03b73d81fd Mon Sep 17 00:00:00 2001 From: Lea Date: Tue, 29 Aug 2023 20:54:39 +0200 Subject: [PATCH] optimise beeping code --- main.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/main.c b/main.c index aed2e47..32ecf46 100644 --- a/main.c +++ b/main.c @@ -12,8 +12,8 @@ int tick_timer_start = 0xffff - (F_CPU / 1024 / 1000); // 1ms volatile uint32_t ticks = 0; +volatile beep_time = 0; volatile bool counting = false; -volatile bool beeping = false; void start_timer() { // Sets the Clock Select. See table on page 157 the Atmel datasheet. @@ -40,8 +40,9 @@ ISR(TIMER1_OVF_vect) { if (bit_is_set(PIND, PIND0)) { PORTD &= 0b11111110; - } else if (beeping) { + } else if (beep_time > 0) { PORTD |= 0b00000001; + beep_time--; } } @@ -50,9 +51,7 @@ ISR(TIMER2_OVF_vect) { } void beep() { - beeping = true; - _delay_ms(50); - beeping = false; + beep_time = 50; } void main() { @@ -82,7 +81,7 @@ void main() { ticks = 0; counting = false; - if (!pressed_clear) beep(50); + if (!pressed_clear) beep(); pressed_clear = true; } else pressed_clear = false; }