@@ -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