本文整理汇总了C++中s_assert_param函数的典型用法代码示例。如果您正苦于以下问题:C++ s_assert_param函数的具体用法?C++ s_assert_param怎么用?C++ s_assert_param使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了s_assert_param函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: SpiritGpioSetLevel
/**
* @brief Forces SPIRIT GPIO_x configured as digital output, to VDD or GND.
* @param xGpioX Specifies the GPIO to be configured.
* This parameter can be one of following parameters:
* @arg SPIRIT_GPIO_0: SPIRIT GPIO_0
* @arg SPIRIT_GPIO_1: SPIRIT GPIO_1
* @arg SPIRIT_GPIO_2: SPIRIT GPIO_2
* @arg SPIRIT_GPIO_3: SPIRIT GPIO_3
* @param xLevel Specifies the level.
* This parameter can be: HIGH or LOW.
* @retval None.
*/
void SpiritGpioSetLevel(SpiritGpioPin xGpioX, OutputLevel xLevel)
{
uint8_t tempRegValue = 0x00;
/* Check the parameters */
s_assert_param(IS_SPIRIT_GPIO(xGpioX));
s_assert_param(IS_SPIRIT_GPIO_LEVEL(xLevel));
/* Reads the SPIRIT_GPIOx register and mask the GPIO_SELECT field */
g_xStatus = SpiritSpiReadRegisters(xGpioX, 1, &tempRegValue);
tempRegValue &= 0x04;
/* Sets the value of the SPIRIT GPIO register according to the specified level */
if(xLevel == HIGH)
{
tempRegValue |= (uint8_t)SPIRIT_GPIO_DIG_OUT_VDD | (uint8_t)SPIRIT_GPIO_MODE_DIGITAL_OUTPUT_HP;
}
else
{
tempRegValue |= (uint8_t)SPIRIT_GPIO_DIG_OUT_GND | (uint8_t)SPIRIT_GPIO_MODE_DIGITAL_OUTPUT_HP;
}
/* Writes the SPIRIT GPIO register */
g_xStatus = SpiritSpiWriteRegisters(xGpioX, 1, &tempRegValue);
}
示例2: SpiritGpioInit
/**
* @brief Initializes the SPIRIT GPIOx according to the specified
* parameters in the pxGpioInitStruct.
* @param pxGpioInitStruct pointer to a SGpioInit structure that
* contains the configuration information for the specified SPIRIT GPIO.
* @retval None.
*/
void SpiritGpioInit(SGpioInit* pxGpioInitStruct)
{
uint8_t tempRegValue = 0x00;
/* Check the parameters */
s_assert_param(IS_SPIRIT_GPIO(pxGpioInitStruct->xSpiritGpioPin));
s_assert_param(IS_SPIRIT_GPIO_MODE(pxGpioInitStruct->xSpiritGpioMode));
s_assert_param(IS_SPIRIT_GPIO_IO(pxGpioInitStruct->xSpiritGpioIO));
tempRegValue = ((uint8_t)(pxGpioInitStruct->xSpiritGpioMode) | (uint8_t)(pxGpioInitStruct->xSpiritGpioIO));
g_xStatus = SpiritSpiWriteRegisters(pxGpioInitStruct->xSpiritGpioPin, 1, &tempRegValue);
}
示例3: SpiritGpioGetLevel
/**
* @brief Returns output value (VDD or GND) of SPIRIT GPIO_x, when it is configured as digital output.
* @param xGpioX Specifies the GPIO to be read.
* This parameter can be one of following parameters:
* @arg SPIRIT_GPIO_0: SPIRIT GPIO_0
* @arg SPIRIT_GPIO_1: SPIRIT GPIO_1
* @arg SPIRIT_GPIO_2: SPIRIT GPIO_2
* @arg SPIRIT_GPIO_3: SPIRIT GPIO_3
* @retval OutputLevel Logical level of selected GPIO configured as digital output.
* This parameter can be: HIGH or LOW.
*/
OutputLevel SpiritGpioGetLevel(SpiritGpioPin xGpioX)
{
uint8_t tempRegValue = 0x00;
OutputLevel level;
/* Check the parameters */
s_assert_param(IS_SPIRIT_GPIO(xGpioX));
/* Reads the SPIRIT_GPIOx register */
g_xStatus = SpiritSpiReadRegisters(xGpioX, 1, &tempRegValue);
/* Mask the GPIO_SELECT field and returns the value according */
tempRegValue &= 0xF8;
if(tempRegValue == SPIRIT_GPIO_DIG_OUT_VDD)
{
level = HIGH;
}
else
{
level = LOW;
}
return level;
}
示例4: SpiritGpioTemperatureSensor
/**
* @brief Enables or Disables the output of temperature sensor on SPIRIT GPIO_0.
* @param xNewState new state for temperature sensor.
* This parameter can be: S_ENABLE or S_DISABLE.
* @retval None.
*/
void SpiritGpioTemperatureSensor(SpiritFunctionalState xNewState)
{
uint8_t tempRegValue = 0x00;
uint8_t gpio0tempRegValue = 0x00;
/* Check the parameters */
s_assert_param(IS_SPIRIT_FUNCTIONAL_STATE(xNewState));
/* Reads the ANA_FUNC_CONF0 register and mask the result to enable or disable the
temperature sensor */
g_xStatus = SpiritSpiReadRegisters(ANA_FUNC_CONF0_BASE, 1, &tempRegValue);
if(xNewState == S_ENABLE)
{
tempRegValue |= TEMPERATURE_SENSOR_MASK;
}
else
{
tempRegValue &= (~TEMPERATURE_SENSOR_MASK);
gpio0tempRegValue = 0x0A; /* Default value */
}
g_xStatus = SpiritSpiWriteRegisters(ANA_FUNC_CONF0_BASE, 1, &tempRegValue);
/* Sets the SPIRIT GPIO_0 according to input request */
g_xStatus = SpiritSpiWriteRegisters(GPIO0_CONF_BASE, 1, &gpio0tempRegValue);
}
示例5: SpiritGeneralSetBatteryLevel
/**
* @brief Sets the battery level.
* @param xBatteryLevel new state for battery level.
* This parameter can be a value of @ref BatteryLevel.
* @retval None.
*/
void SpiritGeneralSetBatteryLevel(BatteryLevel xBatteryLevel)
{
uint8_t tempRegValue;
/* Check the parameters */
s_assert_param(IS_BLD_LVL(xBatteryLevel));
/* Reads the ANA_FUNC_CONF1_BASE register value */
g_xStatus = SpiritSpiReadRegisters(ANA_FUNC_CONF1_BASE, 1, &tempRegValue);
/* Build the value to be stored */
tempRegValue &= ~ANA_FUNC_CONF1_SET_BLD_LVL_MASK;
switch(xBatteryLevel)
{
case BLD_LVL_2_7_V:
tempRegValue |= BLD_LVL_2_7;
break;
case BLD_LVL_2_5_V:
tempRegValue |= BLD_LVL_2_5;
break;
case BLD_LVL_2_3_V:
tempRegValue |= BLD_LVL_2_3;
break;
case BLD_LVL_2_1_V:
tempRegValue |= BLD_LVL_2_1;
break;
}
/* Writes the new value */
g_xStatus = SpiritSpiWriteRegisters(ANA_FUNC_CONF1_BASE, 1, &tempRegValue);
}
示例6: SpiritCmdStrobeCommand
/**
* @brief Sends a specific command to SPIRIT.
* @param xCommandCode code of the command to send.
This parameter can be any value of @ref SpiritCmd.
* @retval None.
*/
void SpiritCmdStrobeCommand(SpiritCmd xCommandCode)
{
/* Check the parameters */
s_assert_param(IS_SPIRIT_CMD(xCommandCode));
g_xStatus = SpiritSpiCommandStrobes((uint8_t) xCommandCode);
}
示例7: SpiritIrqCheckFlag
/**
* @brief Verifies if a specific IRQ has been generated.
* The call resets all the IRQ status, so it can't be used in case of multiple raising interrupts.
* @param xFlag IRQ flag to be checked.
* This parameter can be any value of @ref IrqList.
* @retval SpiritBool S_TRUE or S_FALSE.
*/
SpiritBool SpiritIrqCheckFlag(IrqList xFlag)
{
uint8_t tempRegValue[4];
uint32_t tempValue = 0;
SpiritBool flag;
/* Check the parameters */
s_assert_param(IS_SPIRIT_IRQ_LIST(xFlag));
/* Reads registers and build the status word */
g_xStatus = SpiritSpiReadRegisters(IRQ_STATUS3_BASE, 4, tempRegValue);
for(uint8_t i=0; i<4; i++)
{
tempValue += ((uint32_t)tempRegValue[i])<<(8*(3-i));
}
if(tempValue & xFlag)
{
flag = S_TRUE;
}
else
{
flag = S_FALSE;
}
return flag;
}
示例8: SpiritPktCommonFilterOnMyAddress
/**
* @brief If enabled RX packet is accepted if its destination address matches with My address.
* @param xNewState new state for DEST_VS_SOURCE_ADDRESS.
* This parameter can be S_ENABLE or S_DISABLE.
* @retval None.
*/
void SpiritPktCommonFilterOnMyAddress(SpiritFunctionalState xNewState)
{
uint8_t tempRegValue;
/* Check the parameters */
s_assert_param(IS_SPIRIT_FUNCTIONAL_STATE(xNewState));
/* Modify the register value: set or reset the TX source address control */
g_xStatus = SpiritSpiReadRegisters(PCKT_FLT_OPTIONS_BASE, 1, &tempRegValue);
/* Set or reset the DESTINATION vs TX enabling bit */
if(xNewState == S_ENABLE)
{
tempRegValue |= PCKT_FLT_OPTIONS_DEST_VS_TX_ADDR_MASK;
}
else
{
tempRegValue &= ~PCKT_FLT_OPTIONS_DEST_VS_TX_ADDR_MASK;
}
/* Writes the new value on the PCKT_FLT_OPTIONS register */
g_xStatus = SpiritSpiWriteRegisters(PCKT_FLT_OPTIONS_BASE, 1, &tempRegValue);
}
示例9: SpiritPktCommonFilterOnControlField
/**
* @brief If enabled RX packet is accepted only if the masked control field matches the
* masked control field reference (CONTROL_MASK & CONTROL_FIELD_REF == CONTROL_MASK & RX_CONTROL_FIELD).
* @param xNewState new state for Control filtering enable bit.
* This parameter can be S_ENABLE or S_DISABLE.
* @retval None.
* @note This filtering control is enabled by default but the control mask is by default set to 0.
* As a matter of fact the user has to enable the control filtering bit after the packet initialization
* because the PktInit routine disables it.
*/
void SpiritPktCommonFilterOnControlField(SpiritFunctionalState xNewState)
{
uint8_t tempRegValue;
/* Check the parameters */
s_assert_param(IS_SPIRIT_FUNCTIONAL_STATE(xNewState));
/* Modify the register value: set or reset the control bit filtering */
g_xStatus = SpiritSpiReadRegisters(PCKT_FLT_OPTIONS_BASE, 1, &tempRegValue);
/* Set or reset the CONTROL filtering enabling bit */
if(xNewState == S_ENABLE)
{
tempRegValue |= PCKT_FLT_OPTIONS_CONTROL_FILTERING_MASK;
}
else
{
tempRegValue &= ~PCKT_FLT_OPTIONS_CONTROL_FILTERING_MASK;
}
/* Writes the new value on the PCKT_FLT_OPTIONS register */
g_xStatus = SpiritSpiWriteRegisters(PCKT_FLT_OPTIONS_BASE, 1, &tempRegValue);
}
示例10: SpiritPktCommonSetSyncxWord
/**
* @brief Sets a specific SYNC word for SPIRIT packets.
* @param xSyncX SYNC word number to be set.
* This parameter can be any value of @ref PktSyncX.
* @param cSyncWord SYNC word.
* This parameter is an uint8_t.
* @retval None.
*/
void SpiritPktCommonSetSyncxWord(PktSyncX xSyncX , uint8_t cSyncWord)
{
uint8_t tempRegAddress;
/* Check the parameters */
s_assert_param(IS_PKT_SYNCx(xSyncX));
/* Set the specified address */
switch(xSyncX){
case PKT_SYNC_WORD_1:
tempRegAddress=SYNC1_BASE;
break;
case PKT_SYNC_WORD_2:
tempRegAddress=SYNC2_BASE;
break;
case PKT_SYNC_WORD_3:
tempRegAddress=SYNC3_BASE;
break;
case PKT_SYNC_WORD_4:
tempRegAddress=SYNC4_BASE;
break;
}
/* Writes value on the selected register */
g_xStatus = SpiritSpiWriteRegisters(tempRegAddress, 1, &cSyncWord);
}
示例11: SpiritGpioClockOutputInit
/**
* @brief Initializes the SPIRIT Clock Output according to the specified
* parameters in the xClockOutputInitStruct.
* @param pxClockOutputInitStruct pointer to a ClockOutputInit structure that
* contains the configuration information for the SPIRIT Clock Output.
* @retval None.
* @note The function SpiritGpioClockOutput() must be called in order to enable
* or disable the MCU clock dividers.
*/
void SpiritGpioClockOutputInit(ClockOutputInit* pxClockOutputInitStruct)
{
uint8_t tempRegValue = 0x00;
/* Check the parameters */
s_assert_param(IS_SPIRIT_CLOCK_OUTPUT_XO(pxClockOutputInitStruct->xClockOutputXOPrescaler));
s_assert_param(IS_SPIRIT_CLOCK_OUTPUT_RCO(pxClockOutputInitStruct->xClockOutputRCOPrescaler));
s_assert_param(IS_SPIRIT_CLOCK_OUTPUT_EXTRA_CYCLES(pxClockOutputInitStruct->xExtraClockCycles));
/* Calculates the register value to write according to the specified configuration */
tempRegValue = ((uint8_t)(pxClockOutputInitStruct->xClockOutputXOPrescaler) | (uint8_t)(pxClockOutputInitStruct->xClockOutputRCOPrescaler) | \
(uint8_t)(pxClockOutputInitStruct->xExtraClockCycles));
/* Writes the MCU_CLOCK register */
g_xStatus = SpiritSpiWriteRegisters(MCU_CK_CONF_BASE, 1, &tempRegValue);
}
示例12: SpiritQiComputeRssiThreshold
/**
* @brief Computes the RSSI threshold from its dBm value according to the formula: (RSSI[Dbm] + 130)/0.5
* @param nDbmValue RSSI threshold reported in dBm.
* This parameter must be a sint16_t.
* @retval uint8_t RSSI threshold corresponding to dBm value.
*/
uint8_t SpiritQiComputeRssiThreshold(int nDbmValue)
{
/* Check the parameters */
s_assert_param(IS_RSSI_THR_DBM(nDbmValue));
/* Computes the RSSI threshold for register */
return 2*(nDbmValue+130);
}
示例13: SpiritQiSetRssiThresholddBm
/**
* @brief Sets the RSSI threshold from its dBm value according to the formula: (RSSI[Dbm] + 130)/0.5.
* @param nDbmValue RSSI threshold reported in dBm.
* This parameter must be a sint16_t.
* @retval None.
*/
void SpiritQiSetRssiThresholddBm(int nDbmValue)
{
uint8_t tempRegValue=2*(nDbmValue+130);
/* Check the parameters */
s_assert_param(IS_RSSI_THR_DBM(nDbmValue));
/* Writes the new value on the RSSI_TH register */
g_xStatus = SpiritSpiWriteRegisters(RSSI_TH_BASE, 1, &tempRegValue);
}
示例14: SpiritTimerComputeWakeUpValues
/**
* @brief Computes the values of the wakeup timer counter and prescaler from the user time expressed in millisecond.
* The prescaler and the counter values are computed maintaining the prescaler value as
* small as possible in order to obtain the best resolution, and in the meantime minimizing the error.
* @param fDesiredMsec desired wakeup timeout in millisecs.
* This parameter must be a float. Since the counter and prescaler are 8 bit registers the maximum
* reachable value is maxTime = fTclk x 256 x 256.
* @param pcCounter pointer to the variable in which the value for the wakeup timer counter has to be stored.
* This parameter must be a uint8_t*.
* @param pcPrescaler pointer to the variable in which the value for the wakeup timer prescaler has to be stored.
* This parameter must be an uint8_t*.
* @retval None
*/
void SpiritTimerComputeWakeUpValues(float fDesiredMsec , uint8_t* pcCounter , uint8_t* pcPrescaler)
{
uint8_t b0, a0;
uint32_t n;
int32_t err, err_min;
/* Check the parameters */
s_assert_param(IS_WKUP_TIMEOUT(fDesiredMsec));
n = (uint32_t)((fDesiredMsec*1000)/WAKEUP_TCLK);
err_min = n;
/* These are the initial values for the prescaler and the counter, where the prescaler
is settled to the minimum value and the counter accordingly. In order to avoid a zero
division for the counter the prescaler is increased by one. Then because the wakeup timeout
is calculated as: Twu=(PRESCALER +1)*(COUNTER+1)*Tck the counter and the prescaler are decreased by one.*/
*pcPrescaler = a0 = (n/0xFF)+1;
*pcCounter = b0 = (n / *pcPrescaler);
(*pcPrescaler)--;
/* If the desired value is over the maximum limit, the counter and the
prescaler are settled to their maximum values, and doesn't execute the routine */
if(fDesiredMsec>1888.0)
{
*pcCounter = 0xFF;
*pcPrescaler = 0xFF;
return;
}
/* Iterative cycle to minimize the error */
for (; ; (*pcPrescaler)++)
{
*pcCounter = ((n/(*pcPrescaler+1))-1);
err = (((int32_t)*pcPrescaler)+1) * (((int32_t)*pcCounter)+1) - (int32_t)n;
if (S_ABS(err) > (*pcPrescaler / 2))
{
(*pcCounter)++;
err = (((int32_t)*pcPrescaler)+1) * (((int32_t)*pcCounter)+1) - (int32_t)n;
}
if (S_ABS(err) < S_ABS(err_min))
{
err_min = err;
a0 = *pcPrescaler;
b0 = *pcCounter;
if (err == 0) break;
}
if(*pcPrescaler == 0xFF) break;
}
*pcPrescaler = a0;
*pcCounter = b0;
}
示例15: SpiritPktCommonAutoAck
/**
* @brief Sets the AUTO ACKNOLEDGEMENT mechanism on the receiver. When the feature is enabled and
* a data packet has been correctly received, then an acknowledgement packet is sent back to the originator of the received
* packet. If the PIGGYBACKING bit is also set, payload data will be read from the FIFO; otherwise an empty packet is sent
* only containing the source and destination addresses and the sequence number of the packet being acknowledged.
* @param xAutoAck new state for autoack.
* This parameter can be: S_ENABLE or S_DISABLE.
* @param xPiggybacking new state for autoack.
* This parameter can be: S_ENABLE or S_DISABLE.
* @retval None.
*/
void SpiritPktCommonAutoAck(SpiritFunctionalState xAutoAck , SpiritFunctionalState xPiggybacking)
{
uint8_t tempRegValue[2];
/* Check the parameters */
s_assert_param(IS_SPIRIT_FUNCTIONAL_STATE(xAutoAck));
s_assert_param(IS_SPIRIT_FUNCTIONAL_STATE(xPiggybacking));
/* Check if piggybacking is enabled and autoack is disabled */
s_assert_param(!(xPiggybacking==S_ENABLE && xAutoAck==S_DISABLE));
/* Reads the PROTOCOL[1:0] registers value */
g_xStatus = SpiritSpiReadRegisters(PROTOCOL1_BASE, 2, tempRegValue);
/* Sets the specified LLP option */
/* Autoack setting */
if(xAutoAck == S_ENABLE)
{
tempRegValue[1] |= PROTOCOL0_AUTO_ACK_MASK;
}
else
{
tempRegValue[1] &= (~PROTOCOL0_AUTO_ACK_MASK);
}
/* Piggybacking setting */
if(xPiggybacking == S_ENABLE)
{
tempRegValue[0] |= PROTOCOL1_PIGGYBACKING_MASK;
}
else
{
tempRegValue[0] &= (~PROTOCOL1_PIGGYBACKING_MASK);
}
/* Writes data on the PROTOCOL[1:0] registers */
g_xStatus = SpiritSpiWriteRegisters(PROTOCOL1_BASE, 2, tempRegValue);
}