[fix] modify calc freq/phase and correct bugs

This commit is contained in:
2023-07-31 21:01:49 +02:00
parent a690f3a209
commit d3d896a419
10 changed files with 127 additions and 56 deletions

View File

@@ -35,6 +35,51 @@ static GEN_sig_t signal_gen[CHANNEL_MAX] = {
{.type = GEN_PWM_TYPE, .gen = &pwm_gen[2]},
};
void _signalGenDefaultValues(void)
{
for (GEN_channel_t channel = 0; channel < CHANNEL_MAX; channel++)
{
switch (signal_gen[channel].type)
{
case GEN_FG_TYPE:
{
GEN_fg_t *gen = signal_gen[channel].gen;
gen->frequency = 1000;
gen->amplitude = 100;
gen->offset = 165;
gen->phase = 0;
gen->wave = GEN_SIN;
gen->enabled = FALSE;
gen->link = 0;
break;
}
case GEN_PWM_TYPE:
{
GEN_pwm_t *gen = signal_gen[channel].gen;
gen->frequency = 1000;
gen->amplitude = 0;
gen->offset = 0;
gen->phase = 0;
gen->duty = 50;
gen->enabled = FALSE;
break;
}
default:
break;
}
}
}
void _setGenInitailState(GEN_channel_t channel)
{
setFreq(&signal_gen[channel], channel);
setWave(&signal_gen[channel], channel);
setPhase(&signal_gen[channel], channel);
setAmplitude(&signal_gen[channel], channel);
setEnabled(&signal_gen[channel], channel);
// setOfsset(&signal_gen[channel], channel);
}
void APP_init(APP_data_t *app_data)
{
_app_data = app_data;
@@ -57,9 +102,11 @@ void APP_init(APP_data_t *app_data)
_app_data->isButtonChange = 1;
_app_data->isButtonBlink = 1;
_signalGenDefaultValues();
CTRL_buttonsInit();
HAL_GPIO_WritePin(LED_CH1_GPIO_Port, LED_CH1_Pin, GPIO_PIN_SET);
gen_init();
_setGenInitailState(CHANNEL1);
_setGenInitailState(CHANNEL2);
}
void CTRL_buttonsInit(void)
@@ -143,7 +190,7 @@ static void _changeValueFunGen(int8_t dir)
return;
}
gen->frequency = new_freq;
setFreq(&signal_gen[CHANNEL1], CHANNEL1);
setFreq(&signal_gen[_app_data->curr_channel], _app_data->curr_channel);
break;
}
case LAY_AMPL:
@@ -155,7 +202,7 @@ static void _changeValueFunGen(int8_t dir)
return;
}
gen->amplitude = new_ampl;
setAmplitude(&signal_gen[CHANNEL1], CHANNEL1);
setAmplitude(&signal_gen[_app_data->curr_channel], _app_data->curr_channel);
break;
}
case LAY_OFFS:
@@ -167,7 +214,7 @@ static void _changeValueFunGen(int8_t dir)
return;
}
gen->offset = new_offs;
setOfsset(&signal_gen[CHANNEL1], CHANNEL1);
setOfsset(&signal_gen[_app_data->curr_channel], _app_data->curr_channel);
break;
}
case LAY_PHAS:
@@ -179,6 +226,7 @@ static void _changeValueFunGen(int8_t dir)
return;
}
gen->phase = new_phas;
setPhase(&signal_gen[_app_data->curr_channel], _app_data->curr_channel);
break;
}
default: