diff options
| author | Sadeep Madurange <sadeep@asciimx.com> | 2025-08-18 17:08:45 +0800 |
|---|---|---|
| committer | Sadeep Madurange <sadeep@asciimx.com> | 2025-08-18 17:38:59 +0800 |
| commit | e051246c659122f6b633b3c6fe93c8d4e5007662 (patch) | |
| tree | d00fd091b34f9b320fd8c4b235216dbaae1cb966 | |
| parent | 333baedb7dc11521f4f57f2b8127dd9064e0c278 (diff) | |
| download | fpm-door-lock-e051246c659122f6b633b3c6fe93c8d4e5007662.tar.gz | |
Flash LED using CTC.
| -rw-r--r-- | main.c | 24 |
1 files changed, 15 insertions, 9 deletions
@@ -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(); |
