From 514ddd1a3bac62b92289cdd4bbe4f59236c362b5 Mon Sep 17 00:00:00 2001 From: Alexey Zholtikov Date: Fri, 26 Sep 2025 10:43:35 +0300 Subject: [PATCH] wip: --- src/{main.c => ate0003.c} | 61 ++++++++--------------------------- src/ate0003.h | 68 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 81 insertions(+), 48 deletions(-) rename src/{main.c => ate0003.c} (88%) create mode 100644 src/ate0003.h diff --git a/src/main.c b/src/ate0003.c similarity index 88% rename from src/main.c rename to src/ate0003.c index 1ab01f0..cbfe0a8 100644 --- a/src/main.c +++ b/src/ate0003.c @@ -4,51 +4,16 @@ #include "zh_avr_160x_i2c.h" #include "zh_avr_encoder.h" #include "zh_avr_ac_dimmer.h" +#include "ate0003.h" // #define DEBUG -#define HIGH true -#define LOW false - -#define LED_OFF true -#define LED_ON false - -#define BUTTON_I2C_ADDRESS 0x00 -#define LED1_I2C_ADDRESS 0x00 -#define LED2_I2C_ADDRESS 0x00 -#define RELAY_I2C_ADDRESS 0x00 -#define LCD_I2C_ADDRESS 0x00 - -#define GROUND_RELAY 1 -#define DMM_RELAY 1 - -#define POWER_ENCODER 1 -#define COMPONENT_ENCODER 2 - -#define DMM_BUTTON 0 // Connector BT1. -#define FIX_BUTTON 1 // Connector BT2. -#define NUM1_BUTTON 2 -#define NUM2_BUTTON 3 -#define NUM3_BUTTON 4 -#define NUM4_BUTTON 5 - -#define DMM_LED_RED 0 // Connector LE1. 2 PIN. -#define DMM_LED_GRN 1 // Connector LE1. 1 PIN. -#define FIX_LED_BLUE 2 // Connector LE2. 2 PIN. -#define FIX_LED_GRN 3 // Connector LE2. 1 PIN. - -typedef struct -{ - char *cmm; - uint8_t channel_1; - uint8_t channel_2; - uint8_t channel_3; - uint8_t channel_4; -} component_t; - const component_t component[] = { - {"ANY", 1, 1, 1, 1}, - {"252525", 1, 0, 0, 0}, + {"ANY", "RED", "GREEN", "BLUE", "WHITE", 0xF}, + {"334230", "RED", "", "", "", 0x8}, + {"334303", "RED", "", "", "", 0x8}, + {"334711", "RED", "", "", "", 0x8}, + {"334612", "400W", "600W", "", "", 0xC}, }; #ifdef DEBUG @@ -82,7 +47,7 @@ zh_avr_encoder_handle_t power_encoder_handle = {0}; zh_avr_encoder_handle_t component_encoder_handle = {0}; volatile bool is_work = false; -volatile bool is_dmm = false; +volatile bool is_dmm = false; // DMM using status. volatile bool is_fix = false; volatile uint8_t component_num = 0; @@ -192,16 +157,16 @@ void zh_avr_pcf8574_event_handler(zh_avr_pcf8574_event_on_isr_t *event) { if (is_dmm == true) { - zh_avr_pcf8574_write_gpio(&relay_handle, DMM_RELAY, HIGH); + zh_avr_pcf8574_write_gpio(&relay_handle, DMM_RELAY, RELAY_ON); zh_avr_pcf8574_write_gpio(&led1_handle, DMM_LED_RED, LED_ON); - zh_avr_pcf8574_write_gpio(&led1_handle, DMM_LED_GRN, LED_OFF); + zh_avr_pcf8574_write_gpio(&led1_handle, DMM_LED_GREEN, LED_OFF); is_dmm = false; } else { - zh_avr_pcf8574_write_gpio(&relay_handle, DMM_RELAY, LOW); + zh_avr_pcf8574_write_gpio(&relay_handle, DMM_RELAY, RELAY_OFF); zh_avr_pcf8574_write_gpio(&led1_handle, DMM_LED_RED, LED_OFF); - zh_avr_pcf8574_write_gpio(&led1_handle, DMM_LED_GRN, LED_ON); + zh_avr_pcf8574_write_gpio(&led1_handle, DMM_LED_GREEN, LED_ON); is_dmm = true; } } @@ -210,13 +175,13 @@ void zh_avr_pcf8574_event_handler(zh_avr_pcf8574_event_on_isr_t *event) if (event->gpio_level == LOW) { zh_avr_pcf8574_write_gpio(&led1_handle, FIX_LED_BLUE, LED_OFF); - zh_avr_pcf8574_write_gpio(&led1_handle, FIX_LED_GRN, LED_ON); + zh_avr_pcf8574_write_gpio(&led1_handle, FIX_LED_GREEN, LED_ON); is_fix = true; } else { zh_avr_pcf8574_write_gpio(&led1_handle, FIX_LED_BLUE, LED_ON); - zh_avr_pcf8574_write_gpio(&led1_handle, FIX_LED_GRN, LED_OFF); + zh_avr_pcf8574_write_gpio(&led1_handle, FIX_LED_GREEN, LED_OFF); is_fix = false; } break; diff --git a/src/ate0003.h b/src/ate0003.h new file mode 100644 index 0000000..d336eec --- /dev/null +++ b/src/ate0003.h @@ -0,0 +1,68 @@ +#pragma once + +#include "stdint.h" + +#define HIGH true +#define LOW false + +#define LED_OFF HIGH +#define LED_ON LOW + +#define RELAY_OFF LOW +#define RELAY_ON HIGH + +#define BUTTON_I2C_ADDRESS 0x00 // U5. +#define LED1_I2C_ADDRESS 0x00 // U6. +#define LED2_I2C_ADDRESS 0x00 // U7. +#define RELAY_I2C_ADDRESS 0x00 // U8. +#define LCD_I2C_ADDRESS 0x00 // U4. + +#define GROUND_RELAY 0x00 // Relay K1. RL1 pin on U8. +#define DMM_RELAY 0x01 // Relay K2. RL2 pin on U8. +#define L1_RELAY 0x03 // Relay K4. RL4 pin on U8. +#define L2_RELAY 0x04 // Relay K3. RL3 pin on U8. +#define L3_RELAY 0x05 // Relay K6. RL6 pin on U8. +#define L4_RELAY 0x02 // Relay K5. RL5 pin on U8. +#define L5_RELAY 0x06 // Relay K7. RL7 pin on U8. + +#define POWER_ENCODER 0x01 // Connector EN2. +#define COMPONENT_ENCODER 0x02 // Connector EN1. + +#define DMM_BUTTON 0x00 // Connector BT1. BT1-0 on U5. +#define FIX_BUTTON 0x01 // Connector BT2. BT2-1 on U5. +#define NUM1_BUTTON 0x02 // Connector BT3. BT3-2 on U5. +#define NUM2_BUTTON 0x03 // Connector BT4. BT4-3 on U5. +#define NUM3_BUTTON 0x04 // Connector BT5. BT5-4 on U5. +#define NUM4_BUTTON 0x05 // Connector BT6. BT6-5 on U5. + +#define DMM_LED_RED 0x00 // Connector LE1. 2 PIN. L1-0 pin on U6. +#define DMM_LED_GREEN 0x01 // Connector LE1. 1 PIN. L1-1 pin on U6. +#define FIX_LED_BLUE 0x02 // Connector LE2. 2 PIN. L2-2 pin on U6. +#define FIX_LED_GREEN 0x03 // Connector LE2. 1 PIN. L2-3 pin on U6. +#define NUM1_LED_BLUE 0x04 // Connector LE3. 2 PIN. L3-4 pin on U6. +#define NUM1_LED_GREEN 0x05 // Connector LE3. 1 PIN. L3-5 pin on U6. +#define NUM2_LED_BLUE 0x06 // Connector LE4. 2 PIN. L4-6 pin on U6. +#define NUM2_LED_GREEN 0x07 // Connector LE4. 1 PIN. L4-7 pin on U6. +#define NUM3_LED_BLUE 0x00 // Connector LE5. 2 PIN. L5-0 pin on U7. +#define NUM3_LED_GREEN 0x01 // Connector LE5. 1 PIN. L5-1 pin on U7. +#define NUM4_LED_BLUE 0x02 // Connector LE6. 2 PIN. L6-2 pin on U7. +#define NUM4_LED_GREEN 0x03 // Connector LE6. 1 PIN. L6-3 pin on U7. + +#ifdef __cplusplus +extern "C" +{ +#endif + +typedef struct +{ + char *cmm; + char *channel_1; + char *channel_2; + char *channel_3; + char *channel_4; + uint8_t button; +} component_t; + +#ifdef __cplusplus +} +#endif \ No newline at end of file