Skip to content

Commit 1b582bd

Browse files
committed
1 parent 600f06b commit 1b582bd

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

src/eez/function_generator.cpp

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2416,16 +2416,17 @@ void data_function_generator_amplitude(DataOperationEnum operation, Cursor curso
24162416
} else if (operation == DATA_OPERATION_SET_ENCODER_MODE) {
24172417
eez::psu::gui::edit_mode_step::g_functionGeneratorAmplitudeEncoderMode = (EncoderMode)value.getInt();
24182418
} else if (operation == DATA_OPERATION_SET) {
2419+
float amplitude = roundPrec(value.getFloat(), stepValues.values[0]);
24192420
if (g_options.isAmpl || waveformParameters.waveform == WAVEFORM_DC) {
2420-
waveformParameters.amplitude = value.getFloat();
2421+
waveformParameters.amplitude = amplitude;
24212422
} else {
24222423
if (waveformParameters.waveform == WAVEFORM_HALF_RECTIFIED || waveformParameters.waveform == WAVEFORM_FULL_RECTIFIED) {
2423-
float min = value.getFloat();
2424+
float min = amplitude;
24242425
float max = waveformParameters.offset + waveformParameters.amplitude;
24252426
waveformParameters.offset = min;
24262427
waveformParameters.amplitude = max - min;
24272428
} else {
2428-
float min = value.getFloat();
2429+
float min = amplitude;
24292430
float max = waveformParameters.offset + waveformParameters.amplitude / 2.0f;
24302431
waveformParameters.amplitude = max - min;
24312432
waveformParameters.offset = (min + max) / 2.0f;
@@ -2515,14 +2516,15 @@ void data_function_generator_offset(DataOperationEnum operation, Cursor cursor,
25152516
} else if (operation == DATA_OPERATION_SET_ENCODER_MODE) {
25162517
eez::psu::gui::edit_mode_step::g_functionGeneratorOffsetEncoderMode = (EncoderMode)value.getInt();
25172518
} else if (operation == DATA_OPERATION_SET) {
2519+
float offset = roundPrec(value.getFloat(), stepValues.values[0]);
25182520
if (g_options.isAmpl) {
2519-
waveformParameters.offset = value.getFloat();
2521+
waveformParameters.offset = offset;
25202522
} else {
25212523
if (waveformParameters.waveform == WAVEFORM_HALF_RECTIFIED || waveformParameters.waveform == WAVEFORM_FULL_RECTIFIED) {
2522-
waveformParameters.amplitude = value.getFloat() - waveformParameters.offset;
2524+
waveformParameters.amplitude = offset - waveformParameters.offset;
25232525
} else {
25242526
float min = waveformParameters.offset - waveformParameters.amplitude / 2.0f;
2525-
float max = value.getFloat();
2527+
float max = offset;
25262528
waveformParameters.amplitude = max - min;
25272529
waveformParameters.offset = (min + max) / 2.0f;
25282530
}

0 commit comments

Comments
 (0)