[fix] modify calc freq/phase and correct bugs
This commit is contained in:
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user