This commit is contained in:
2025-09-26 10:43:35 +03:00
parent a1a7327e39
commit 514ddd1a3b
2 changed files with 81 additions and 48 deletions

View File

@@ -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;

68
src/ate0003.h Normal file
View File

@@ -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