From a2e5b3389c011a2ff87e73f6ae71ca178db9bbc9 Mon Sep 17 00:00:00 2001 From: Alexey Zholtikov Date: Wed, 10 Sep 2025 19:34:18 +0300 Subject: [PATCH] wip: --- include/zh_avr_ac_dimmer.h | 2 +- zh_avr_ac_dimmer.c | 18 ++++++++---------- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/include/zh_avr_ac_dimmer.h b/include/zh_avr_ac_dimmer.h index ecba712..0c97db5 100644 --- a/include/zh_avr_ac_dimmer.h +++ b/include/zh_avr_ac_dimmer.h @@ -5,7 +5,7 @@ #include "avr_port.h" #include "stdbool.h" #include "avr/interrupt.h" -// #include "avr/pgmspace.h" +#include "util/delay.h" #define ZH_AVR_AC_DIMMER_INIT_CONFIG_DEFAULT() \ { \ diff --git a/zh_avr_ac_dimmer.c b/zh_avr_ac_dimmer.c index e37abfc..615297f 100644 --- a/zh_avr_ac_dimmer.c +++ b/zh_avr_ac_dimmer.c @@ -83,17 +83,16 @@ void zh_avr_ac_dimmer_isr_handler(void) { case AVR_PORTB: PORTB |= (1 << _init_config.triac_gpio); - asm("nop"); + _delay_us(5); PORTB &= ~(1 << _init_config.triac_gpio); break; case AVR_PORTC: PORTC |= (1 << _init_config.triac_gpio); - asm("nop"); + _delay_us(5); PORTC &= ~(1 << _init_config.triac_gpio); - break; case AVR_PORTD: PORTD |= (1 << _init_config.triac_gpio); - asm("nop"); + _delay_us(5); PORTD &= ~(1 << _init_config.triac_gpio); break; default: @@ -240,23 +239,22 @@ ISR(TIMER0_COMPA_vect) if (_dimmer_count == (100 - _dimmer_value)) { _dimmer_count = 0; - TCCR0B &= ~_prescaler; - TIMSK0 &= ~(1 << OCIE0A); + TCCR0B = 0; + TIMSK0 = 0; switch (_init_config.triac_port) { case AVR_PORTB: PORTB |= (1 << _init_config.triac_gpio); - asm("nop"); + _delay_us(5); PORTB &= ~(1 << _init_config.triac_gpio); break; case AVR_PORTC: PORTC |= (1 << _init_config.triac_gpio); - asm("nop"); + _delay_us(5); PORTC &= ~(1 << _init_config.triac_gpio); - break; case AVR_PORTD: PORTD |= (1 << _init_config.triac_gpio); - asm("nop"); + _delay_us(5); PORTD &= ~(1 << _init_config.triac_gpio); break; default: