Skip to content
Snippets Groups Projects
Commit dda30215 authored by Juliano Murari's avatar Juliano Murari
Browse files

Change leaky coefficient to use Qmn function conversion

parent cd7cdf62
No related branches found
No related tags found
No related merge requests found
Pipeline #105007 failed
......@@ -50,6 +50,8 @@ const sis8300drv_Qmn sis8300drvbcm_Qmn_diff_fast_window_width =
{ .int_bits_m = 1, .frac_bits_n = 15, .is_signed = 1 };
const sis8300drv_Qmn sis8300drvbcm_Qmn_diff_medium_window_width =
{ .int_bits_m = 1, .frac_bits_n = 23, .is_signed = 1 };
const sis8300drv_Qmn sis8300drvbcm_Qmn_leaky_coefficient =
{ .int_bits_m = 9, .frac_bits_n = 23, .is_signed = 1 };
// default sampling frequency
......@@ -1769,13 +1771,18 @@ int sis8300drvbcm_get_calibration_sample(sis8300drv_usr *sisuser, unsigned int c
int sis8300drvbcm_set_channel_leaky_coefficient(sis8300drv_usr *sisuser, unsigned int channel, double leaky_coefficient)
{
double error;
unsigned int value;
int ret = sis8300drv_double_2_Qmn(leaky_coefficient, sis8300drvbcm_Qmn_leaky_coefficient, &value, &error);
if (ret) {
return ret;
}
unsigned int reg = SIS8300BCM_CHANNEL_BLOCK_BASE + \
(SIS8300BCM_CHANNEL_BLOCK_SIZE * channel) + \
SIS8300BCM_ACCT_BANK_OFF + \
SIS8300BCM_ACCT_X_ADC_LEAKY_COFF_REG;
// register takes 32-bit value (Q9.23 format 2^23 = 8388608)
int value = (int)(leaky_coefficient * 8388608.0);
int ret = sis8300drv_reg_write(sisuser, reg, (unsigned)value);
// register takes Q9.23 value
ret = sis8300drv_reg_write(sisuser, reg, (unsigned)value);
return ret;
}
......@@ -1785,13 +1792,13 @@ int sis8300drvbcm_get_channel_leaky_coefficient(sis8300drv_usr *sisuser, unsigne
(SIS8300BCM_CHANNEL_BLOCK_SIZE * channel) + \
SIS8300BCM_ACCT_BANK_OFF + \
SIS8300BCM_ACCT_X_ADC_LEAKY_COFF_REG;
// register takes 32-bit value (Q9.23 format 2^23 = 8388608)
// register takes Q9.23 value
int value;
int ret = sis8300drv_reg_read(sisuser, reg, (unsigned *)&value);
if (ret) {
return ret;
}
*leaky_coefficient = (double)value / 8388608.0;
ret = sis8300drv_Qmn_2_double(value, sis8300drvbcm_Qmn_leaky_coefficient, leaky_coefficient);
return ret;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment