Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of stm-spirit1-rf-driver by
SPIRIT_DirectRF.c
00001 /** 00002 ****************************************************************************** 00003 * @file SPIRIT_DirectRF.c 00004 * @author VMA division - AMS 00005 * @version 3.2.2 00006 * @date 08-July-2015 00007 * @brief Configuration and management of SPIRIT direct transmission / receive modes. 00008 * @details 00009 * @attention 00010 * 00011 * <h2><center>© COPYRIGHT(c) 2015 STMicroelectronics</center></h2> 00012 * 00013 * Redistribution and use in source and binary forms, with or without modification, 00014 * are permitted provided that the following conditions are met: 00015 * 1. Redistributions of source code must retain the above copyright notice, 00016 * this list of conditions and the following disclaimer. 00017 * 2. Redistributions in binary form must reproduce the above copyright notice, 00018 * this list of conditions and the following disclaimer in the documentation 00019 * and/or other materials provided with the distribution. 00020 * 3. Neither the name of STMicroelectronics nor the names of its contributors 00021 * may be used to endorse or promote products derived from this software 00022 * without specific prior written permission. 00023 * 00024 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 00025 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 00026 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 00027 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 00028 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 00029 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 00030 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 00031 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 00032 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 00033 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00034 * 00035 ****************************************************************************** 00036 */ 00037 00038 /* Includes ------------------------------------------------------------------*/ 00039 #include "SPIRIT_DirectRF.h" 00040 #include "MCU_Interface.h" 00041 00042 00043 00044 /** 00045 * @addtogroup SPIRIT_Libraries 00046 * @{ 00047 */ 00048 00049 00050 /** 00051 * @addtogroup SPIRIT_DirectRf 00052 * @{ 00053 */ 00054 00055 00056 /** 00057 * @defgroup DirectRf_Private_TypesDefinitions Direct RF Private Types Definitions 00058 * @{ 00059 */ 00060 00061 /** 00062 *@} 00063 */ 00064 00065 00066 /** 00067 * @defgroup DirectRf_Private_Defines Direct RF Private Defines 00068 * @{ 00069 */ 00070 00071 /** 00072 *@} 00073 */ 00074 00075 00076 /** 00077 * @defgroup DirectRf_Private_Macros Direct RF Private Macros 00078 * @{ 00079 */ 00080 00081 /** 00082 *@} 00083 */ 00084 00085 00086 /** 00087 * @defgroup DirectRf_Private_Variables Direct RF Private Variables 00088 * @{ 00089 */ 00090 00091 /** 00092 *@} 00093 */ 00094 00095 00096 00097 /** 00098 * @defgroup DirectRf_Private_FunctionPrototypes Direct RF Private Function Prototypes 00099 * @{ 00100 */ 00101 00102 /** 00103 *@} 00104 */ 00105 00106 00107 /** 00108 * @defgroup DirectRf_Private_Functions Direct RF Private Functions 00109 * @{ 00110 */ 00111 00112 /** 00113 * @brief Sets the DirectRF RX mode of SPIRIT. 00114 * @param xDirectRx code of the desired mode. 00115 * This parameter can be any value of @ref DirectRx. 00116 * @retval None. 00117 */ 00118 void SpiritDirectRfSetRxMode(DirectRx xDirectRx) 00119 { 00120 uint8_t tempRegValue; 00121 00122 /* Check the parameters */ 00123 s_assert_param(IS_DIRECT_RX(xDirectRx)); 00124 00125 /* Reads the register value */ 00126 SpiritSpiReadRegisters(PCKTCTRL3_BASE, 1, &tempRegValue); 00127 00128 /* Build the value to be stored */ 00129 tempRegValue &= ~PCKTCTRL3_RX_MODE_MASK; 00130 tempRegValue |= (uint8_t)xDirectRx; 00131 00132 /* Writes value on register */ 00133 g_xStatus = SpiritSpiWriteRegisters(PCKTCTRL3_BASE, 1, &tempRegValue); 00134 00135 } 00136 00137 00138 /** 00139 * @brief Returns the DirectRF RX mode of SPIRIT. 00140 * @param None. 00141 * @retval DirectRx Direct Rx mode. 00142 */ 00143 DirectRx SpiritDirectRfGetRxMode(void) 00144 { 00145 uint8_t tempRegValue; 00146 00147 /* Reads the register value and mask the RX_Mode field */ 00148 g_xStatus = SpiritSpiReadRegisters(PCKTCTRL3_BASE, 1, &tempRegValue); 00149 00150 /* Rebuild and return value */ 00151 return (DirectRx)(tempRegValue & 0x30); 00152 00153 } 00154 00155 00156 /** 00157 * @brief Sets the TX mode of SPIRIT. 00158 * @param xDirectTx code of the desired source. 00159 * This parameter can be any value of @ref DirectTx. 00160 * @retval None. 00161 */ 00162 void SpiritDirectRfSetTxMode(DirectTx xDirectTx) 00163 { 00164 uint8_t tempRegValue; 00165 00166 /* Check the parameters */ 00167 s_assert_param(IS_DIRECT_TX(xDirectTx)); 00168 00169 /* Reads the register value */ 00170 SpiritSpiReadRegisters(PCKTCTRL1_BASE, 1, &tempRegValue); 00171 00172 /* Build the value to be stored */ 00173 tempRegValue &= ~PCKTCTRL1_TX_SOURCE_MASK; 00174 tempRegValue |= (uint8_t)xDirectTx; 00175 00176 /* Writes value on register */ 00177 g_xStatus = SpiritSpiWriteRegisters(PCKTCTRL1_BASE, 1, &tempRegValue); 00178 00179 } 00180 00181 00182 /** 00183 * @brief Returns the DirectRF TX mode of SPIRIT. 00184 * @param None. 00185 * @retval DirectTx Direct Tx mode. 00186 */ 00187 DirectTx SpiritDirectRfGetTxMode(void) 00188 { 00189 uint8_t tempRegValue; 00190 00191 /* Reads the register value and mask the RX_Mode field */ 00192 g_xStatus = SpiritSpiReadRegisters(PCKTCTRL1_BASE, 1, &tempRegValue); 00193 00194 /* Returns value */ 00195 return (DirectTx)(tempRegValue & 0x0C); 00196 00197 } 00198 00199 00200 /** 00201 *@} 00202 */ 00203 00204 /** 00205 *@} 00206 */ 00207 00208 00209 /** 00210 *@} 00211 */ 00212 00213 00214 00215 /******************* (C) COPYRIGHT 2015 STMicroelectronics *****END OF FILE****/
Generated on Wed Jul 13 2022 00:11:56 by
