[wip] channels added
This commit is contained in:
@@ -20,18 +20,19 @@ static GEN_pwm_t pwm_gen[3];
|
||||
|
||||
static const CMD_button_t btn_command[BTN_STATE_MAX][DISP_BTN_MAX];
|
||||
static const LAY_dispBtn_t btn_hw_to_disp[BTN_BOT_MAX] = {DISP_BTN_1, DISP_BTN_2, DISP_BTN_3, DISP_BTN_4, DISP_BTN_5};
|
||||
static const GEN_channel_t btn_ch_to_chan[CHANNEL_MAX] = {CHANNEL1, CHANNEL2, CHANNEL3, CHANNEL4, CHANNEL5, CHANNEL6};
|
||||
static const uint32_t pow_of_10[7] = {1, 10, 100, 1000, 10000, 100000, 1000000};
|
||||
|
||||
static HW_BotBtnName_t last_key;
|
||||
static APP_data_t *_app_data;
|
||||
|
||||
static GENERATOR_t generators[CHANNEL_MAX] = {
|
||||
{.gen_type = GEN_FG_TYPE, .gen = &func_gen[0]},
|
||||
{.gen_type = GEN_FG_TYPE, .gen = &func_gen[1]},
|
||||
{.gen_type = GEN_FG_TYPE, .gen = &func_gen[2]},
|
||||
{.gen_type = GEN_PWM_TYPE, .gen = &pwm_gen[0]},
|
||||
{.gen_type = GEN_PWM_TYPE, .gen = &pwm_gen[1]},
|
||||
{.gen_type = GEN_PWM_TYPE, .gen = &pwm_gen[2]},
|
||||
static GEN_sig_t signal_gen[CHANNEL_MAX] = {
|
||||
{.type = GEN_FG_TYPE, .gen = &func_gen[0]},
|
||||
{.type = GEN_FG_TYPE, .gen = &func_gen[1]},
|
||||
{.type = GEN_FG_TYPE, .gen = &func_gen[2]},
|
||||
{.type = GEN_PWM_TYPE, .gen = &pwm_gen[0]},
|
||||
{.type = GEN_PWM_TYPE, .gen = &pwm_gen[1]},
|
||||
{.type = GEN_PWM_TYPE, .gen = &pwm_gen[2]},
|
||||
};
|
||||
|
||||
void APP_init(APP_data_t *app_data)
|
||||
@@ -43,11 +44,12 @@ void APP_init(APP_data_t *app_data)
|
||||
_app_data->phas_focus_digit = 0;
|
||||
_app_data->duty_focus_digit = 0;
|
||||
|
||||
_app_data->curr_gen_type = GEN_FG_TYPE;
|
||||
_app_data->generator = generators[CHANNEL1].gen;
|
||||
_app_data->curr_gen_type = signal_gen[CHANNEL1].type;
|
||||
_app_data->curr_gen = signal_gen[CHANNEL1].gen;
|
||||
|
||||
_app_data->curr_state_lay = LAY_MAIN;
|
||||
_app_data->curr_state_btn = BTN_MAIN_FG;
|
||||
_app_data->curr_channel = CHANNEL1;
|
||||
|
||||
_app_data->isChannelChange = 1;
|
||||
_app_data->isGraphChange = 1;
|
||||
@@ -84,31 +86,51 @@ void CTRL_pushedDispBtnEvent(ButtonKey_t *key)
|
||||
void CTRL_pushedChanBtnEvent(ButtonKey_t *key)
|
||||
{
|
||||
ULOG_TRACE("Chan btn: %d", key->instance);
|
||||
UNUSED(key);
|
||||
GEN_channel_t channel = btn_ch_to_chan[key->instance];
|
||||
|
||||
_app_data->curr_gen_type = signal_gen[channel].type;
|
||||
_app_data->curr_gen = signal_gen[channel].gen;
|
||||
|
||||
_app_data->curr_state_lay = LAY_MAIN;
|
||||
_app_data->curr_state_btn = BTN_MAIN_FG;
|
||||
_app_data->curr_channel = channel;
|
||||
|
||||
_app_data->isChannelChange = 1;
|
||||
_app_data->isGraphChange = 1;
|
||||
_app_data->isValueChange = 1;
|
||||
_app_data->isButtonChange = 1;
|
||||
_app_data->isButtonBlink = 1;
|
||||
}
|
||||
|
||||
void CTRL_longPushedChanBtnEvent(ButtonKey_t *key)
|
||||
{
|
||||
ULOG_TRACE("Chan btn(long): %d", key->instance);
|
||||
GEN_fg_t *dds_ch0 = generators[key->instance].gen;
|
||||
if (dds_ch0->enabled)
|
||||
GEN_channel_t channel = btn_ch_to_chan[key->instance];
|
||||
|
||||
switch (signal_gen[channel].type)
|
||||
{
|
||||
dds_ch0->enabled = FALSE;
|
||||
setEnabled(&generators[CHANNEL1], CHANNEL1);
|
||||
HAL_GPIO_WritePin(LED_CH1_GPIO_Port, LED_CH1_Pin, GPIO_PIN_SET);
|
||||
}
|
||||
else
|
||||
case GEN_FG_TYPE:
|
||||
{
|
||||
dds_ch0->enabled = TRUE;
|
||||
setEnabled(&generators[CHANNEL1], CHANNEL1);
|
||||
HAL_GPIO_WritePin(LED_CH1_GPIO_Port, LED_CH1_Pin, GPIO_PIN_RESET);
|
||||
GEN_fg_t *gen = signal_gen[channel].gen;
|
||||
gen->enabled = gen->enabled ? FALSE : TRUE;
|
||||
setEnabled(&signal_gen[channel], channel);
|
||||
break;
|
||||
}
|
||||
case GEN_PWM_TYPE:
|
||||
{
|
||||
GEN_pwm_t *gen = signal_gen[channel].gen;
|
||||
gen->enabled = gen->enabled ? FALSE : TRUE;
|
||||
setEnabled(&signal_gen[channel], channel);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
UNUSED(key);
|
||||
}
|
||||
|
||||
static void _changeValueFunGen(int8_t dir)
|
||||
{
|
||||
GEN_fg_t *gen = (GEN_fg_t *)_app_data->generator;
|
||||
GEN_fg_t *gen = (GEN_fg_t *)_app_data->curr_gen;
|
||||
|
||||
switch (_app_data->curr_state_lay)
|
||||
{
|
||||
@@ -121,7 +143,7 @@ static void _changeValueFunGen(int8_t dir)
|
||||
return;
|
||||
}
|
||||
gen->frequency = new_freq;
|
||||
setFreq(&generators[CHANNEL1], CHANNEL1);
|
||||
setFreq(&signal_gen[CHANNEL1], CHANNEL1);
|
||||
break;
|
||||
}
|
||||
case LAY_AMPL:
|
||||
@@ -133,7 +155,7 @@ static void _changeValueFunGen(int8_t dir)
|
||||
return;
|
||||
}
|
||||
gen->amplitude = new_ampl;
|
||||
setAmplitude(&generators[CHANNEL1], CHANNEL1);
|
||||
setAmplitude(&signal_gen[CHANNEL1], CHANNEL1);
|
||||
break;
|
||||
}
|
||||
case LAY_OFFS:
|
||||
@@ -145,7 +167,7 @@ static void _changeValueFunGen(int8_t dir)
|
||||
return;
|
||||
}
|
||||
gen->offset = new_offs;
|
||||
setOfsset(&generators[CHANNEL1], CHANNEL1);
|
||||
setOfsset(&signal_gen[CHANNEL1], CHANNEL1);
|
||||
break;
|
||||
}
|
||||
case LAY_PHAS:
|
||||
@@ -170,7 +192,7 @@ static void _changeValueFunGen(int8_t dir)
|
||||
|
||||
static void _changeValuePwmGen(int8_t dir)
|
||||
{
|
||||
GEN_pwm_t *gen = (GEN_pwm_t *)_app_data->generator;
|
||||
GEN_pwm_t *gen = (GEN_pwm_t *)_app_data->curr_gen;
|
||||
|
||||
switch (_app_data->curr_state_lay)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user