|
|
|
|
@ -549,51 +549,30 @@ void apply_settings(void)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//------------------------------------------
|
|
|
|
|
|
|
|
|
|
#if 0
|
|
|
|
|
#define CORRECTION_POINTS 10
|
|
|
|
|
|
|
|
|
|
static const uint32_t correction_frequency[CORRECTION_POINTS] =
|
|
|
|
|
{
|
|
|
|
|
100000,
|
|
|
|
|
200000,
|
|
|
|
|
400000,
|
|
|
|
|
1000000,
|
|
|
|
|
2000000,
|
|
|
|
|
50000000,
|
|
|
|
|
100000000,
|
|
|
|
|
200000000,
|
|
|
|
|
300000000,
|
|
|
|
|
350000000
|
|
|
|
|
};
|
|
|
|
|
{ 100000, 200000, 400000, 1000000, 2000000, 50000000, 100000000, 200000000, 300000000, 350000000 };
|
|
|
|
|
|
|
|
|
|
static const float correction_value[CORRECTION_POINTS] =
|
|
|
|
|
{
|
|
|
|
|
+4.0,
|
|
|
|
|
+2.0,
|
|
|
|
|
+1.5,
|
|
|
|
|
+0.5,
|
|
|
|
|
0.0,
|
|
|
|
|
0.0,
|
|
|
|
|
+1.0,
|
|
|
|
|
+1.0,
|
|
|
|
|
+2.5,
|
|
|
|
|
+5.0
|
|
|
|
|
};
|
|
|
|
|
{ +4.0, +2.0, +1.5, +0.5, 0.0, 0.0, +1.0, +1.0, +2.5, +5.0 };
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
float get_frequency_correction(uint32_t f)
|
|
|
|
|
{
|
|
|
|
|
if (!(setting.mode == M_LOW))
|
|
|
|
|
return(0.0);
|
|
|
|
|
int i = 0;
|
|
|
|
|
while (f > correction_frequency[i] && i < CORRECTION_POINTS)
|
|
|
|
|
while (f > config.correction_frequency[i] && i < CORRECTION_POINTS)
|
|
|
|
|
i++;
|
|
|
|
|
if (i >= CORRECTION_POINTS)
|
|
|
|
|
return(correction_value[CORRECTION_POINTS-1]);
|
|
|
|
|
return(config.correction_value[CORRECTION_POINTS-1]);
|
|
|
|
|
if (i == 0)
|
|
|
|
|
return(correction_value[0]);
|
|
|
|
|
f = f - correction_frequency[i-1];
|
|
|
|
|
uint32_t m = correction_frequency[i] - correction_frequency[i-1] ;
|
|
|
|
|
float cv = correction_value[i-1] + (correction_value[i] - correction_value[i-1]) * (float)f / (float)m;
|
|
|
|
|
return(config.correction_value[0]);
|
|
|
|
|
f = f - config.correction_frequency[i-1];
|
|
|
|
|
uint32_t m = config.correction_frequency[i] - config.correction_frequency[i-1] ;
|
|
|
|
|
float cv = config.correction_value[i-1] + (config.correction_value[i] - config.correction_value[i-1]) * (float)f / (float)m;
|
|
|
|
|
return(cv);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|