wip:
This commit is contained in:
112
src/ate0003.c
112
src/ate0003.c
@@ -8,45 +8,11 @@
|
||||
|
||||
#define DEBUG
|
||||
|
||||
// const component_t component[] = {
|
||||
// {"ANY ", "1:RED 2:GREEN", "3:BLUE 4:WHITE", 0b0001111},
|
||||
// {"334230", "RED", "", 0x8},
|
||||
// {"334303", "RED", "", 0x8},
|
||||
// {"334711", "RED", "", 0x8},
|
||||
// {"334612", "1:400W 2:600W ", " ", 0xC},
|
||||
// };
|
||||
|
||||
const char component_1_cmm[] PROGMEM = "ANY ";
|
||||
const char component_2_cmm[] PROGMEM = "334230";
|
||||
const char component_3_cmm[] PROGMEM = "334303";
|
||||
const char component_4_cmm[] PROGMEM = "334711";
|
||||
const char component_5_cmm[] PROGMEM = "334612";
|
||||
|
||||
const char *component_cmm[] = {component_1_cmm, component_2_cmm, component_3_cmm, component_4_cmm, component_5_cmm};
|
||||
|
||||
const char component_1_line_1[] PROGMEM = "1:RED 2:GREEN";
|
||||
const char component_1_line_2[] PROGMEM = "3:BLUE 4:WHITE";
|
||||
const char component_2_line_1[] PROGMEM = "1:RED 2: ";
|
||||
const char component_2_line_2[] PROGMEM = "3: 4: ";
|
||||
const char component_3_line_1[] PROGMEM = "1:RED 2: ";
|
||||
const char component_3_line_2[] PROGMEM = "3: 4: ";
|
||||
const char component_4_line_1[] PROGMEM = "1:RED 2: ";
|
||||
const char component_4_line_2[] PROGMEM = "3: 4: ";
|
||||
const char component_5_line_1[] PROGMEM = "1:400W 2:600W ";
|
||||
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[] = {0x0F, 0x08, 0x08, 0x08, 0x0C};
|
||||
|
||||
const char text_company[] PROGMEM = "LLC AEROTECH";
|
||||
const char text_model[] PROGMEM = "ATE0003.000.000";
|
||||
const char text_firmware[] PROGMEM = "Firmware v1.0.0";
|
||||
const char text_loading[] PROGMEM = "Loading:";
|
||||
const char text_ac_power[] PROGMEM = "AC POWER: ";
|
||||
const char text_component[] PROGMEM = "COMPONENT: ";
|
||||
|
||||
#ifdef DEBUG
|
||||
#define BAUD_RATE 9600
|
||||
#define BAUD_PRESCALE (F_CPU / 16 / BAUD_RATE - 1)
|
||||
@@ -81,7 +47,7 @@ zh_avr_encoder_handle_t component_encoder_handle = {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 uint8_t used_channels = 0; // Permitted channels status. Depends of the selected component.
|
||||
static bool is_initialized = false; // Normal loading status.
|
||||
|
||||
int main(void)
|
||||
@@ -118,7 +84,7 @@ int main(void)
|
||||
UCSR0B = (1 << RXEN0) | (1 << TXEN0);
|
||||
UCSR0C = (1 << UCSZ01) | (1 << UCSZ00);
|
||||
stdout = &uart;
|
||||
xTaskCreate(system_setup_task, "system_setup", 107, NULL, tskIDLE_PRIORITY, &system_setup_task_handle);
|
||||
xTaskCreate(system_setup_task, "system_setup", 150, NULL, tskIDLE_PRIORITY, &system_setup_task_handle);
|
||||
#else
|
||||
xTaskCreate(system_setup_task, NULL, 150, NULL, tskIDLE_PRIORITY, NULL);
|
||||
#endif
|
||||
@@ -184,7 +150,7 @@ void system_setup_task(void *pvParameters)
|
||||
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];
|
||||
used_channels = component_channel[0];
|
||||
component_setup_function(0);
|
||||
is_initialized = true;
|
||||
vTaskDelete(NULL);
|
||||
@@ -235,12 +201,76 @@ void zh_avr_pcf8574_event_handler(zh_avr_pcf8574_event_on_isr_t *event)
|
||||
}
|
||||
break;
|
||||
case NUM1_BUTTON:
|
||||
if ((used_channels & (1 << CHANNEL1)) == 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
if (event->gpio_level == LOW)
|
||||
{
|
||||
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);
|
||||
}
|
||||
else
|
||||
{
|
||||
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_pcf8574_write_gpio(&relay_handle, L1_RELAY, RELAY_OFF);
|
||||
}
|
||||
break;
|
||||
case NUM2_BUTTON:
|
||||
if ((used_channels & (1 << CHANNEL2)) == 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
if (event->gpio_level == LOW)
|
||||
{
|
||||
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
|
||||
{
|
||||
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);
|
||||
}
|
||||
break;
|
||||
case NUM3_BUTTON:
|
||||
if ((used_channels & (1 << CHANNEL3)) == 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
if (event->gpio_level == LOW)
|
||||
{
|
||||
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
|
||||
{
|
||||
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);
|
||||
}
|
||||
break;
|
||||
case NUM4_BUTTON:
|
||||
if ((used_channels & (1 << CHANNEL4)) == 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
if (event->gpio_level == LOW)
|
||||
{
|
||||
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
|
||||
{
|
||||
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);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -323,19 +353,19 @@ void component_setup_function(uint8_t component)
|
||||
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)
|
||||
if ((used_channels & (1 << CHANNEL1)) == CHANNEL1)
|
||||
{
|
||||
zh_avr_pcf8574_write_gpio(&led1_handle, NUM1_LED_BLUE, LED_ON);
|
||||
}
|
||||
if ((current_channels & (1 << CHANNEL_2)) == CHANNEL_2)
|
||||
if ((used_channels & (1 << CHANNEL2)) == CHANNEL2)
|
||||
{
|
||||
zh_avr_pcf8574_write_gpio(&led1_handle, NUM2_LED_BLUE, LED_ON);
|
||||
}
|
||||
if ((current_channels & (1 << CHANNEL_3)) == CHANNEL_3)
|
||||
if ((used_channels & (1 << CHANNEL3)) == CHANNEL3)
|
||||
{
|
||||
zh_avr_pcf8574_write_gpio(&led2_handle, NUM3_LED_BLUE, LED_ON);
|
||||
}
|
||||
if ((current_channels & (1 << CHANNEL_4)) == CHANNEL_4)
|
||||
if ((used_channels & (1 << CHANNEL4)) == CHANNEL4)
|
||||
{
|
||||
zh_avr_pcf8574_write_gpio(&led2_handle, NUM4_LED_BLUE, LED_ON);
|
||||
}
|
||||
|
||||
@@ -48,28 +48,39 @@
|
||||
#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
|
||||
#define CHANNEL1 0x08
|
||||
#define CHANNEL2 0x04
|
||||
#define CHANNEL3 0x02
|
||||
#define CHANNEL4 0x01
|
||||
|
||||
#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;
|
||||
const char text_company[] PROGMEM = "LLC AEROTECH";
|
||||
const char text_model[] PROGMEM = "ATE0003.000.000";
|
||||
const char text_firmware[] PROGMEM = "Firmware v1.0.0";
|
||||
const char text_loading[] PROGMEM = "Loading:";
|
||||
const char text_ac_power[] PROGMEM = "AC POWER: ";
|
||||
const char text_component[] PROGMEM = "COMPONENT: ";
|
||||
|
||||
// void system_setup_task(void *pvParameters);
|
||||
// void component_setup_function(zh_avr_encoder_event_on_isr_t *event);
|
||||
const char component_1_cmm[] PROGMEM = "ANY ";
|
||||
const char component_2_cmm[] PROGMEM = "334230";
|
||||
const char component_3_cmm[] PROGMEM = "334303";
|
||||
const char component_4_cmm[] PROGMEM = "334711";
|
||||
const char component_5_cmm[] PROGMEM = "334612";
|
||||
|
||||
const char component_1_line_1[] PROGMEM = "1:RED 2:GREEN";
|
||||
const char component_1_line_2[] PROGMEM = "3:BLUE 4:WHITE";
|
||||
const char component_2_line_1[] PROGMEM = "1:RED 2: ";
|
||||
const char component_2_line_2[] PROGMEM = "3: 4: ";
|
||||
const char component_3_line_1[] PROGMEM = "1:RED 2: ";
|
||||
const char component_3_line_2[] PROGMEM = "3: 4: ";
|
||||
const char component_4_line_1[] PROGMEM = "1:RED 2: ";
|
||||
const char component_4_line_2[] PROGMEM = "3: 4: ";
|
||||
const char component_5_line_1[] PROGMEM = "1:400W 2:600W ";
|
||||
const char component_5_line_2[] PROGMEM = "3: 4: ";
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user