From e051246c659122f6b633b3c6fe93c8d4e5007662 Mon Sep 17 00:00:00 2001 From: Sadeep Madurange Date: Mon, 18 Aug 2025 17:08:45 +0800 Subject: Flash LED using CTC. --- main.c | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/main.c b/main.c index 94062ff..116fcc3 100644 --- a/main.c +++ b/main.c @@ -17,9 +17,9 @@ #define PWM_MAX 2550 #define PWM_TOP 19999 -#define LED_PIN PB5 -#define LED_DDR DDRB -#define LED_PORT PORTB +#define LED_PIN PD6 +#define LED_DDR DDRD +#define LED_PORT PORTD #define PWR_BAT PB2 #define PWR_SRVO PB3 @@ -105,12 +105,16 @@ static inline void unlock(void) static inline void flash_led(void) { - for (int i = 0; i < 4; i++) { - LED_PORT |= (1 << LED_PIN); - _delay_ms(70); - LED_PORT &= ~(1 << LED_PIN); - _delay_ms(70); - } + TCCR0A = (1 << COM0A0) | (1 << WGM01); + OCR0A = 255; + TCCR0B = (1 << CS02) | (1 << CS00); +} + +static inline void stop_led(void) +{ + TCCR0B = 0; + TCCR0A = 0; + LED_PORT &= ~(1 << LED_PIN); } static void check_bat(void) @@ -230,6 +234,8 @@ int main(void) _delay_ms(500); pwroff_fpm(); + stop_led(); + set_sleep_mode(SLEEP_MODE_PWR_DOWN); sleep_enable(); sleep_bod_disable(); -- cgit v1.2.3