From 230402e002d9bd94756c942a53659cf96ea841be Mon Sep 17 00:00:00 2001 From: Alexey Zholtikov Date: Wed, 8 Oct 2025 13:40:26 +0300 Subject: [PATCH] wip: --- BOM_ATE0003.000.001.xlsx | Bin 14483 -> 14527 bytes src/ate0003.c | 17 +++++++++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/BOM_ATE0003.000.001.xlsx b/BOM_ATE0003.000.001.xlsx index ed98d186362a2ee35f96acb9f29fa2b278e83e21..67d72e4e6965b77e4079c93a5d38039c7a69d721 100644 GIT binary patch delta 8530 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 CoCpN~ delta 8508 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
=7hjnhhc{SL4H<{S>{^ioM^xw;?v}7*H2t!K-CB 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 W2MuKu)PErCzm@s#4t@TAX8#A@4&|f( diff --git a/src/ate0003.c b/src/ate0003.c index 08c746b..d989412 100644 --- a/src/ate0003.c +++ b/src/ate0003.c @@ -6,7 +6,7 @@ #include "zh_avr_ac_dimmer.h" #include "ate0003.h" -#define DEBUG +// #define DEBUG #define SYSTEM_SETUP_STACK 170 #define ENCODER_STACK 166 @@ -158,12 +158,13 @@ void system_setup_task(void *pvParameters) zh_avr_encoder_set(&component_encoder_handle, 0); //** AC dimmer init **/ zh_avr_ac_dimmer_init_config_t ac_dimmer_init_config = ZH_AVR_AC_DIMMER_INIT_CONFIG_DEFAULT(); - ac_dimmer_init_config.ac_dimmer_frequency = ZH_60HZ; + ac_dimmer_init_config.ac_dimmer_frequency = ZH_400HZ; ac_dimmer_init_config.zero_cross_port = AVR_PORTD; ac_dimmer_init_config.zero_cross_gpio = PORTD3; ac_dimmer_init_config.triac_port = AVR_PORTD; ac_dimmer_init_config.triac_gpio = PORTD4; zh_avr_ac_dimmer_init(&ac_dimmer_init_config); + zh_avr_ac_dimmer_set(100); is_initialized = true; #ifdef DEBUG printf("System Setup Task Remaining Stack Size %d.\n", uxTaskGetStackHighWaterMark(NULL)); @@ -224,6 +225,9 @@ void zh_avr_pcf8574_event_handler(zh_avr_pcf8574_event_on_isr_t *event) zh_avr_pcf8574_write_gpio(&led1_handle, NUM1_LED_BLUE, LED_OFF); zh_avr_pcf8574_write_gpio(&led1_handle, NUM1_LED_GREEN, LED_ON); zh_avr_pcf8574_write_gpio(&relay_handle, L1_RELAY, RELAY_ON); + zh_avr_pcf8574_write_gpio(&relay_handle, GROUND_RELAY, RELAY_ON); // Temporary. + vTaskDelay(10); // Temporary. + zh_avr_ac_dimmer_start(); // Temporary. } else { @@ -235,7 +239,10 @@ void zh_avr_pcf8574_event_handler(zh_avr_pcf8574_event_on_isr_t *event) } zh_avr_pcf8574_write_gpio(&led1_handle, NUM1_LED_BLUE, LED_ON); zh_avr_pcf8574_write_gpio(&led1_handle, NUM1_LED_GREEN, LED_OFF); + zh_avr_ac_dimmer_stop(); // Temporary. + vTaskDelay(10); // Temporary. zh_avr_pcf8574_write_gpio(&relay_handle, L1_RELAY, RELAY_OFF); + zh_avr_pcf8574_write_gpio(&relay_handle, GROUND_RELAY, RELAY_OFF); // Temporary. is_num1_fixed = false; } break; @@ -254,6 +261,9 @@ void zh_avr_pcf8574_event_handler(zh_avr_pcf8574_event_on_isr_t *event) zh_avr_pcf8574_write_gpio(&led1_handle, NUM2_LED_BLUE, LED_OFF); zh_avr_pcf8574_write_gpio(&led1_handle, NUM2_LED_GREEN, LED_ON); zh_avr_pcf8574_write_gpio(&relay_handle, L2_RELAY, RELAY_ON); + zh_avr_pcf8574_write_gpio(&relay_handle, GROUND_RELAY, RELAY_ON); // Temporary. + vTaskDelay(10); // Temporary. + zh_avr_ac_dimmer_start(); // Temporary. } else { @@ -265,7 +275,10 @@ void zh_avr_pcf8574_event_handler(zh_avr_pcf8574_event_on_isr_t *event) } zh_avr_pcf8574_write_gpio(&led1_handle, NUM2_LED_BLUE, LED_ON); zh_avr_pcf8574_write_gpio(&led1_handle, NUM2_LED_GREEN, LED_OFF); + zh_avr_ac_dimmer_stop(); // Temporary. + vTaskDelay(10); // Temporary. zh_avr_pcf8574_write_gpio(&relay_handle, L2_RELAY, RELAY_OFF); + zh_avr_pcf8574_write_gpio(&relay_handle, GROUND_RELAY, RELAY_OFF); // Temporary. is_num2_fixed = false; } break;