Spirit: Fix a bad debug assertion.
This commit is contained in:
parent
4f0238339e
commit
2cb5ec542b
@ -223,7 +223,7 @@ static const struct radio_init_s g_radio_init =
|
||||
{
|
||||
SPIRIT_BASE_FREQUENCY, /* base_frequency */
|
||||
SPIRIT_CHANNEL_SPACE, /* chspace */
|
||||
SPIRIT_XTAL_OFFSET_PPM, /* xtal_offset_ppm */
|
||||
SPIRIT_XTAL_OFFSET_PPM, /* foffset */
|
||||
SPIRIT_CHANNEL_NUMBER, /* chnum */
|
||||
SPIRIT_MODULATION_SELECT, /* modselect */
|
||||
SPIRIT_DATARATE, /* datarate */
|
||||
|
@ -350,7 +350,7 @@ struct radio_init_s
|
||||
* NxFREQUENCY_STEPS, where frequency STEPS is
|
||||
* F_Xo/2^15. This parameter can be in the
|
||||
* range: [0, F_Xo/2^15*255] Hz */
|
||||
int16_t xtal_offset_ppm; /* Specifies the offset frequency (in ppm)
|
||||
int16_t foffset; /* Specifies the offset frequency (in ppm)
|
||||
* to compensate crystal inaccuracy expressed
|
||||
* as signed value. */
|
||||
uint8_t chnum; /* Specifies the channel number. This value
|
||||
|
@ -111,11 +111,12 @@ enum spirit_state_e
|
||||
* This field-oriented structure allows user to address in simple way the single
|
||||
* field of the SPIRIT status.
|
||||
* The user shall define a variable of SpiritStatus type to access on SPIRIT status fields.
|
||||
* @note The fields order in the structure depends on used endianness (little or big
|
||||
* NOTE: The fields order in the structure depends on used endianness (little or big
|
||||
* endian). The actual definition is valid ONLY for LITTLE ENDIAN mode. Be sure to
|
||||
* change opportunely the fields order when use a different endianness.
|
||||
*/
|
||||
|
||||
#ifndef CONFIG_ENDIAN_BIG
|
||||
struct spirit_status_s
|
||||
{
|
||||
uint8_t XO_ON : 1; /* Notifies if XO is operating (XO_ON is
|
||||
@ -134,6 +135,7 @@ struct spirit_status_s
|
||||
uint8_t ANT_SELECT : 1; /* Notifies the currently selected antenna */
|
||||
uint8_t reserved : 4; /* Reserved and equal to 5 */
|
||||
};
|
||||
#endif
|
||||
|
||||
/* One instance of this structure represents the overall state of one Spirit
|
||||
* device from the standpoint of the library. Multiple spirit devices may be
|
||||
|
@ -182,9 +182,8 @@ int spirit_radio_initialize(FAR struct spirit_library_s *spirit,
|
||||
DEBUGASSERT(IS_FREQUENCY_BAND(radioinit->base_frequency));
|
||||
DEBUGASSERT(IS_MODULATION_SELECTED(radioinit->modselect));
|
||||
DEBUGASSERT(IS_DATARATE(radioinit->datarate));
|
||||
DEBUGASSERT(IS_FREQUENCY_OFFSET(offset, spirit->xtal_frequency));
|
||||
DEBUGASSERT(IS_CHANNEL_SPACE
|
||||
(radioinit->chspace, spirit->xtal_frequency));
|
||||
DEBUGASSERT(IS_FREQUENCY_OFFSET(radioinit->foffset, spirit->xtal_frequency));
|
||||
DEBUGASSERT(IS_CHANNEL_SPACE(radioinit->chspace, spirit->xtal_frequency));
|
||||
DEBUGASSERT(IS_F_DEV(radioinit->freqdev, spirit->xtal_frequency));
|
||||
|
||||
/* Workaround for Vtune */
|
||||
@ -200,8 +199,8 @@ int spirit_radio_initialize(FAR struct spirit_library_s *spirit,
|
||||
* parameter: (xtal_ppm*FBase)/10^6
|
||||
*/
|
||||
|
||||
offset = (int32_t)(((float)radioinit->xtal_offset_ppm *
|
||||
radioinit->base_frequency) / PPM_FACTOR);
|
||||
offset = (int32_t)(((float)radioinit->foffset * radioinit->base_frequency) /
|
||||
PPM_FACTOR);
|
||||
|
||||
/* Disable the digital, ADC, SMPS reference clock divider if fXO > 24MHz or
|
||||
* fXO < 26MHz
|
||||
@ -343,7 +342,8 @@ int spirit_radio_initialize(FAR struct spirit_library_s *spirit,
|
||||
|
||||
/* Calculates the channel filter mantissa and exponent */
|
||||
|
||||
ret = spirit_radio_convert_chbandwidth(spirit, radioinit->bandwidth, &bwm, &bwe);
|
||||
ret = spirit_radio_convert_chbandwidth(spirit, radioinit->bandwidth,
|
||||
&bwm, &bwe);
|
||||
if (ret < 0)
|
||||
{
|
||||
return ret;
|
||||
@ -605,7 +605,7 @@ int spirit_radio_get_setup(FAR struct spirit_library_s *spirit,
|
||||
|
||||
/* Calculate the frequency offset in ppm */
|
||||
|
||||
radioinit->xtal_offset_ppm = (int16_t)
|
||||
radioinit->foffset = (int16_t)
|
||||
((uint32_t)fcoffset * spirit->xtal_frequency * PPM_FACTOR) /
|
||||
((uint32_t)FBASE_DIVIDER * radioinit->base_frequency);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user