From 5b22dff0d5d8547207a7de38717a38e7da21f604 Mon Sep 17 00:00:00 2001 From: Alexey Zholtikov Date: Sun, 5 Oct 2025 15:52:05 +0300 Subject: [PATCH] wip: --- src/ate0003.c | 52 +++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 46 insertions(+), 6 deletions(-) diff --git a/src/ate0003.c b/src/ate0003.c index fbf069c..3e9b7e0 100644 --- a/src/ate0003.c +++ b/src/ate0003.c @@ -11,7 +11,7 @@ // #define DEBUG // Must set to #define configTOTAL_HEAP_SIZE 1408 and #define configCHECK_FOR_STACK_OVERFLOW 1. #define SYSTEM_SETUP_STACK 170 -#define ENCODER_STACK 170 +#define ENCODER_STACK 190 #define PCF8574_STACK 110 const char *component_cmm[] = {component_1_cmm, component_2_cmm, component_3_cmm, component_4_cmm, component_5_cmm}; @@ -87,17 +87,18 @@ void system_setup_task(void *pvParameters) zh_avr_i2c_master_init(false); zh_avr_pcf8574_init_config_t pcf8574_init_config = ZH_AVR_PCF8574_INIT_CONFIG_DEFAULT(); pcf8574_init_config.stack_size = PCF8574_STACK; - //** LED 1 extender init. All LED off. DMM red on. FIX blue on. **/ + //** LED 1 extender init. **/ pcf8574_init_config.i2c_address = LED1_I2C_ADDRESS; zh_avr_pcf8574_init(&pcf8574_init_config, &led1_handle); - zh_avr_pcf8574_write(&led1_handle, 0xFA); - //** LED 2 extender init. All LED off. **/ + zh_avr_pcf8574_write(&led1_handle, 0xFF); + //** LED 2 extender init. **/ pcf8574_init_config.i2c_address = LED2_I2C_ADDRESS; zh_avr_pcf8574_init(&pcf8574_init_config, &led2_handle); - //** RELAY extender init. All relay off. DMM relay on. **/ + zh_avr_pcf8574_write(&led2_handle, 0xFF); + //** RELAY extender init. **/ pcf8574_init_config.i2c_address = RELAY_I2C_ADDRESS; zh_avr_pcf8574_init(&pcf8574_init_config, &relay_handle); - zh_avr_pcf8574_write(&relay_handle, 0x02); + zh_avr_pcf8574_write(&relay_handle, 0x00); //** LCD init. **/ pcf8574_init_config.i2c_address = LCD_I2C_ADDRESS; zh_avr_pcf8574_init(&pcf8574_init_config, &lcd_handle); @@ -140,6 +141,9 @@ void system_setup_task(void *pvParameters) strcpy_P(text_buffer, text_component); zh_avr_160x_print_char(&lcd_handle, text_buffer); //**"ANY" component setup after loading. **/ + zh_avr_pcf8574_write_gpio(&led1_handle, DMM_LED_RED, LED_ON); + zh_avr_pcf8574_write_gpio(&led1_handle, FIX_LED_BLUE, LED_ON); + zh_avr_pcf8574_write_gpio(&relay_handle, DMM_RELAY, RELAY_ON); component_setup_function(0); //** Encoders init **/ zh_avr_encoder_init_config_t encoder_init_config = ZH_AVR_ENCODER_INIT_CONFIG_DEFAULT(); @@ -248,15 +252,27 @@ void zh_avr_pcf8574_event_handler(zh_avr_pcf8574_event_on_isr_t *event) } if (event->gpio_level == LOW) { + is_work = true; + if (is_num2_fixed == true) + { + break; + } 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); } else { + is_work = false; + if (is_fix == true) + { + is_num2_fixed = true; + break; + } 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_pcf8574_write_gpio(&relay_handle, L2_RELAY, RELAY_OFF); + is_num2_fixed = false; } break; case NUM3_BUTTON: @@ -266,15 +282,27 @@ void zh_avr_pcf8574_event_handler(zh_avr_pcf8574_event_on_isr_t *event) } if (event->gpio_level == LOW) { + is_work = true; + if (is_num3_fixed == true) + { + break; + } zh_avr_pcf8574_write_gpio(&led2_handle, NUM3_LED_BLUE, LED_OFF); zh_avr_pcf8574_write_gpio(&led2_handle, NUM3_LED_GREEN, LED_ON); zh_avr_pcf8574_write_gpio(&relay_handle, L3_RELAY, RELAY_ON); } else { + is_work = false; + if (is_fix == true) + { + is_num3_fixed = true; + break; + } zh_avr_pcf8574_write_gpio(&led2_handle, NUM3_LED_BLUE, LED_ON); zh_avr_pcf8574_write_gpio(&led2_handle, NUM3_LED_GREEN, LED_OFF); zh_avr_pcf8574_write_gpio(&relay_handle, L3_RELAY, RELAY_OFF); + is_num3_fixed = false; } break; case NUM4_BUTTON: @@ -284,15 +312,27 @@ void zh_avr_pcf8574_event_handler(zh_avr_pcf8574_event_on_isr_t *event) } if (event->gpio_level == LOW) { + is_work = true; + if (is_num4_fixed == true) + { + break; + } zh_avr_pcf8574_write_gpio(&led2_handle, NUM4_LED_BLUE, LED_OFF); zh_avr_pcf8574_write_gpio(&led2_handle, NUM4_LED_GREEN, LED_ON); zh_avr_pcf8574_write_gpio(&relay_handle, L4_RELAY, RELAY_ON); } else { + is_work = false; + if (is_fix == true) + { + is_num4_fixed = true; + break; + } zh_avr_pcf8574_write_gpio(&led2_handle, NUM4_LED_BLUE, LED_ON); zh_avr_pcf8574_write_gpio(&led2_handle, NUM4_LED_GREEN, LED_OFF); zh_avr_pcf8574_write_gpio(&relay_handle, L4_RELAY, RELAY_OFF); + is_num4_fixed = false; } break; default: