wip:
This commit is contained in:
		@@ -38,7 +38,7 @@ const char component_5_line_2[] PROGMEM = "3:     4:     ";
 | 
			
		||||
const char *component_line_1[] = {component_1_line_1, component_2_line_1, component_3_line_1, component_4_line_1, component_5_line_1};
 | 
			
		||||
const char *component_line_2[] = {component_1_line_2, component_2_line_2, component_3_line_2, component_4_line_2, component_5_line_2};
 | 
			
		||||
 | 
			
		||||
const uint8_t component_channel[] = {0b0001111, 0b0001000, 0b0001000, 0b0001000, 0b0001100};
 | 
			
		||||
const uint8_t component_channel[] = {0x0F, 0x08, 0x08, 0x08, 0x0C};
 | 
			
		||||
 | 
			
		||||
const char text_company[] PROGMEM = "LLC AEROTECH";
 | 
			
		||||
const char text_model[] PROGMEM = "ATE0003.000.000";
 | 
			
		||||
@@ -47,8 +47,6 @@ const char text_loading[] PROGMEM = "Loading:";
 | 
			
		||||
const char text_ac_power[] PROGMEM = "AC POWER: ";
 | 
			
		||||
const char text_component[] PROGMEM = "COMPONENT: ";
 | 
			
		||||
 | 
			
		||||
static bool is_initialized = false;
 | 
			
		||||
 | 
			
		||||
#ifdef DEBUG
 | 
			
		||||
#define BAUD_RATE 9600
 | 
			
		||||
#define BAUD_PRESCALE (F_CPU / 16 / BAUD_RATE - 1)
 | 
			
		||||
@@ -80,10 +78,11 @@ zh_avr_pcf8574_handle_t lcd_handle = {0};
 | 
			
		||||
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; // DMM using status.
 | 
			
		||||
volatile bool is_fix = false;
 | 
			
		||||
volatile uint8_t component_num = 0;
 | 
			
		||||
volatile static bool is_work = false; // Work status.
 | 
			
		||||
volatile static bool is_dmm = false;  // DMM using status.
 | 
			
		||||
volatile static bool is_fix = false;  // FIX button status.
 | 
			
		||||
static uint8_t current_channels = 0;  // Permitted channels status. Depends of the selected component.
 | 
			
		||||
static bool is_initialized = false;   // Normal loading status.
 | 
			
		||||
 | 
			
		||||
int main(void)
 | 
			
		||||
{
 | 
			
		||||
@@ -107,7 +106,7 @@ int main(void)
 | 
			
		||||
    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_50HZ;
 | 
			
		||||
    ac_dimmer_init_config.ac_dimmer_frequency = ZH_60HZ;
 | 
			
		||||
    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;
 | 
			
		||||
@@ -132,16 +131,22 @@ 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 = 255;
 | 
			
		||||
    //** LED 1 extender init. All LED off. DMM red on. FIX blue on. **/
 | 
			
		||||
    pcf8574_init_config.i2c_address = LED1_I2C_ADDRESS;
 | 
			
		||||
    zh_avr_pcf8574_init(&pcf8574_init_config, &led1_handle);
 | 
			
		||||
    zh_avr_pcf8574_write(&led1_handle, 0xFF); // All LED off.
 | 
			
		||||
    zh_avr_pcf8574_write(&led1_handle, 0xFA);
 | 
			
		||||
    //** LED 2 extender init. All LED off. **/
 | 
			
		||||
    pcf8574_init_config.i2c_address = LED2_I2C_ADDRESS;
 | 
			
		||||
    zh_avr_pcf8574_init(&pcf8574_init_config, &led2_handle);
 | 
			
		||||
    zh_avr_pcf8574_write(&led2_handle, 0xFF); // All LED off.
 | 
			
		||||
    zh_avr_pcf8574_write(&led2_handle, 0xFF);
 | 
			
		||||
    //** RELAY extender init. All relay off. DMM relay on. **/
 | 
			
		||||
    pcf8574_init_config.i2c_address = RELAY_I2C_ADDRESS;
 | 
			
		||||
    zh_avr_pcf8574_init(&pcf8574_init_config, &relay_handle);
 | 
			
		||||
    zh_avr_pcf8574_write(&relay_handle, 0x02);
 | 
			
		||||
    //** LCD extender init **/
 | 
			
		||||
    pcf8574_init_config.i2c_address = LCD_I2C_ADDRESS;
 | 
			
		||||
    zh_avr_pcf8574_init(&pcf8574_init_config, &lcd_handle);
 | 
			
		||||
    //** BUTTON extender init **/
 | 
			
		||||
    pcf8574_init_config.p0_gpio_work_mode = true;
 | 
			
		||||
    pcf8574_init_config.p1_gpio_work_mode = true;
 | 
			
		||||
    pcf8574_init_config.p2_gpio_work_mode = true;
 | 
			
		||||
@@ -152,6 +157,7 @@ void system_setup_task(void *pvParameters)
 | 
			
		||||
    pcf8574_init_config.interrupt_gpio = PORTD2;
 | 
			
		||||
    pcf8574_init_config.i2c_address = BUTTON_I2C_ADDRESS;
 | 
			
		||||
    zh_avr_pcf8574_init(&pcf8574_init_config, &button_handle);
 | 
			
		||||
    //** Loading. Just for fun. **/
 | 
			
		||||
    zh_avr_160x_init(&lcd_handle, ZH_LCD_16X4);
 | 
			
		||||
    zh_avr_160x_set_cursor(&lcd_handle, 0, 0);
 | 
			
		||||
    zh_avr_160x_print_char(&lcd_handle, pgm_read_ptr(text_company));
 | 
			
		||||
@@ -168,11 +174,17 @@ void system_setup_task(void *pvParameters)
 | 
			
		||||
        zh_avr_160x_print_char(&lcd_handle, "%");
 | 
			
		||||
        vTaskDelay(50 / portTICK_PERIOD_MS);
 | 
			
		||||
    }
 | 
			
		||||
    //** Initial LCD text init. **/
 | 
			
		||||
    zh_avr_160x_lcd_clear(&lcd_handle);
 | 
			
		||||
    zh_avr_160x_set_cursor(&lcd_handle, 0, 0);
 | 
			
		||||
    zh_avr_160x_print_char(&lcd_handle, pgm_read_ptr(text_ac_power));
 | 
			
		||||
    zh_avr_160x_set_cursor(&lcd_handle, 0, 10);
 | 
			
		||||
    zh_avr_160x_print_int(&lcd_handle, 100);
 | 
			
		||||
    zh_avr_160x_print_char(&lcd_handle, "%");
 | 
			
		||||
    zh_avr_160x_set_cursor(&lcd_handle, 1, 0);
 | 
			
		||||
    zh_avr_160x_print_char(&lcd_handle, pgm_read_ptr(text_component));
 | 
			
		||||
    //**"ANY" component setup after loading **/
 | 
			
		||||
    current_channels = component_channel[0];
 | 
			
		||||
    component_setup_function(0);
 | 
			
		||||
    is_initialized = true;
 | 
			
		||||
    vTaskDelete(NULL);
 | 
			
		||||
@@ -309,4 +321,22 @@ void component_setup_function(uint8_t component)
 | 
			
		||||
    zh_avr_160x_print_char(&lcd_handle, pgm_read_ptr(component_line_1[component]));
 | 
			
		||||
    zh_avr_160x_set_cursor(&lcd_handle, 3, 0);
 | 
			
		||||
    zh_avr_160x_print_char(&lcd_handle, pgm_read_ptr(component_line_2[component]));
 | 
			
		||||
    zh_avr_pcf8574_write(&led1_handle, 0x0F);
 | 
			
		||||
    zh_avr_pcf8574_write(&led2_handle, 0x0F);
 | 
			
		||||
    if ((current_channels & (1 << CHANNEL_1)) == CHANNEL_1)
 | 
			
		||||
    {
 | 
			
		||||
        zh_avr_pcf8574_write_gpio(&led1_handle, NUM1_LED_BLUE, LED_ON);
 | 
			
		||||
    }
 | 
			
		||||
    if ((current_channels & (1 << CHANNEL_2)) == CHANNEL_2)
 | 
			
		||||
    {
 | 
			
		||||
        zh_avr_pcf8574_write_gpio(&led1_handle, NUM2_LED_BLUE, LED_ON);
 | 
			
		||||
    }
 | 
			
		||||
    if ((current_channels & (1 << CHANNEL_3)) == CHANNEL_3)
 | 
			
		||||
    {
 | 
			
		||||
        zh_avr_pcf8574_write_gpio(&led2_handle, NUM3_LED_BLUE, LED_ON);
 | 
			
		||||
    }
 | 
			
		||||
    if ((current_channels & (1 << CHANNEL_4)) == CHANNEL_4)
 | 
			
		||||
    {
 | 
			
		||||
        zh_avr_pcf8574_write_gpio(&led2_handle, NUM4_LED_BLUE, LED_ON);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -48,6 +48,11 @@
 | 
			
		||||
#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.
 | 
			
		||||
 | 
			
		||||
#define CHANNEL_1 0x08
 | 
			
		||||
#define CHANNEL_2 0x04
 | 
			
		||||
#define CHANNEL_3 0x02
 | 
			
		||||
#define CHANNEL_4 0x01
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
extern "C"
 | 
			
		||||
{
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user