Committer:
Sergunb
Date:
Mon Sep 04 12:04:13 2017 +0000
Revision:
0:8f0d870509fe
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Sergunb 0:8f0d870509fe 1 /******************** (C) COPYRIGHT 2010 STMicroelectronics ********************
Sergunb 0:8f0d870509fe 2 * File Name : usb_regs.c
Sergunb 0:8f0d870509fe 3 * Author : MCD Application Team
Sergunb 0:8f0d870509fe 4 * Version : V3.2.1
Sergunb 0:8f0d870509fe 5 * Date : 07/05/2010
Sergunb 0:8f0d870509fe 6 * Description : Interface functions to USB cell registers
Sergunb 0:8f0d870509fe 7 ********************************************************************************
Sergunb 0:8f0d870509fe 8 * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
Sergunb 0:8f0d870509fe 9 * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
Sergunb 0:8f0d870509fe 10 * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
Sergunb 0:8f0d870509fe 11 * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
Sergunb 0:8f0d870509fe 12 * CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
Sergunb 0:8f0d870509fe 13 * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
Sergunb 0:8f0d870509fe 14 *******************************************************************************/
Sergunb 0:8f0d870509fe 15 #ifndef STM32F10X_CL
Sergunb 0:8f0d870509fe 16
Sergunb 0:8f0d870509fe 17 /* Includes ------------------------------------------------------------------*/
Sergunb 0:8f0d870509fe 18 #include "usb_lib.h"
Sergunb 0:8f0d870509fe 19
Sergunb 0:8f0d870509fe 20 /* Private typedef -----------------------------------------------------------*/
Sergunb 0:8f0d870509fe 21 /* Private define ------------------------------------------------------------*/
Sergunb 0:8f0d870509fe 22 /* Private macro -------------------------------------------------------------*/
Sergunb 0:8f0d870509fe 23 /* Private variables ---------------------------------------------------------*/
Sergunb 0:8f0d870509fe 24 /* Extern variables ----------------------------------------------------------*/
Sergunb 0:8f0d870509fe 25 /* Private function prototypes -----------------------------------------------*/
Sergunb 0:8f0d870509fe 26 /* Private functions ---------------------------------------------------------*/
Sergunb 0:8f0d870509fe 27
Sergunb 0:8f0d870509fe 28 /*******************************************************************************
Sergunb 0:8f0d870509fe 29 * Function Name : SetCNTR.
Sergunb 0:8f0d870509fe 30 * Description : Set the CNTR register value.
Sergunb 0:8f0d870509fe 31 * Input : wRegValue: new register value.
Sergunb 0:8f0d870509fe 32 * Output : None.
Sergunb 0:8f0d870509fe 33 * Return : None.
Sergunb 0:8f0d870509fe 34 *******************************************************************************/
Sergunb 0:8f0d870509fe 35 void SetCNTR(uint16_t wRegValue)
Sergunb 0:8f0d870509fe 36 {
Sergunb 0:8f0d870509fe 37 _SetCNTR(wRegValue);
Sergunb 0:8f0d870509fe 38 }
Sergunb 0:8f0d870509fe 39
Sergunb 0:8f0d870509fe 40 /*******************************************************************************
Sergunb 0:8f0d870509fe 41 * Function Name : GetCNTR.
Sergunb 0:8f0d870509fe 42 * Description : returns the CNTR register value.
Sergunb 0:8f0d870509fe 43 * Input : None.
Sergunb 0:8f0d870509fe 44 * Output : None.
Sergunb 0:8f0d870509fe 45 * Return : CNTR register Value.
Sergunb 0:8f0d870509fe 46 *******************************************************************************/
Sergunb 0:8f0d870509fe 47 uint16_t GetCNTR(void)
Sergunb 0:8f0d870509fe 48 {
Sergunb 0:8f0d870509fe 49 return(_GetCNTR());
Sergunb 0:8f0d870509fe 50 }
Sergunb 0:8f0d870509fe 51
Sergunb 0:8f0d870509fe 52 /*******************************************************************************
Sergunb 0:8f0d870509fe 53 * Function Name : SetISTR.
Sergunb 0:8f0d870509fe 54 * Description : Set the ISTR register value.
Sergunb 0:8f0d870509fe 55 * Input : wRegValue: new register value.
Sergunb 0:8f0d870509fe 56 * Output : None.
Sergunb 0:8f0d870509fe 57 * Return : None.
Sergunb 0:8f0d870509fe 58 *******************************************************************************/
Sergunb 0:8f0d870509fe 59 void SetISTR(uint16_t wRegValue)
Sergunb 0:8f0d870509fe 60 {
Sergunb 0:8f0d870509fe 61 _SetISTR(wRegValue);
Sergunb 0:8f0d870509fe 62 }
Sergunb 0:8f0d870509fe 63
Sergunb 0:8f0d870509fe 64 /*******************************************************************************
Sergunb 0:8f0d870509fe 65 * Function Name : GetISTR
Sergunb 0:8f0d870509fe 66 * Description : Returns the ISTR register value.
Sergunb 0:8f0d870509fe 67 * Input : None.
Sergunb 0:8f0d870509fe 68 * Output : None.
Sergunb 0:8f0d870509fe 69 * Return : ISTR register Value
Sergunb 0:8f0d870509fe 70 *******************************************************************************/
Sergunb 0:8f0d870509fe 71 uint16_t GetISTR(void)
Sergunb 0:8f0d870509fe 72 {
Sergunb 0:8f0d870509fe 73 return(_GetISTR());
Sergunb 0:8f0d870509fe 74 }
Sergunb 0:8f0d870509fe 75
Sergunb 0:8f0d870509fe 76 /*******************************************************************************
Sergunb 0:8f0d870509fe 77 * Function Name : GetFNR
Sergunb 0:8f0d870509fe 78 * Description : Returns the FNR register value.
Sergunb 0:8f0d870509fe 79 * Input : None.
Sergunb 0:8f0d870509fe 80 * Output : None.
Sergunb 0:8f0d870509fe 81 * Return : FNR register Value
Sergunb 0:8f0d870509fe 82 *******************************************************************************/
Sergunb 0:8f0d870509fe 83 uint16_t GetFNR(void)
Sergunb 0:8f0d870509fe 84 {
Sergunb 0:8f0d870509fe 85 return(_GetFNR());
Sergunb 0:8f0d870509fe 86 }
Sergunb 0:8f0d870509fe 87
Sergunb 0:8f0d870509fe 88 /*******************************************************************************
Sergunb 0:8f0d870509fe 89 * Function Name : SetDADDR
Sergunb 0:8f0d870509fe 90 * Description : Set the DADDR register value.
Sergunb 0:8f0d870509fe 91 * Input : wRegValue: new register value.
Sergunb 0:8f0d870509fe 92 * Output : None.
Sergunb 0:8f0d870509fe 93 * Return : None.
Sergunb 0:8f0d870509fe 94 *******************************************************************************/
Sergunb 0:8f0d870509fe 95 void SetDADDR(uint16_t wRegValue)
Sergunb 0:8f0d870509fe 96 {
Sergunb 0:8f0d870509fe 97 _SetDADDR(wRegValue);
Sergunb 0:8f0d870509fe 98 }
Sergunb 0:8f0d870509fe 99
Sergunb 0:8f0d870509fe 100 /*******************************************************************************
Sergunb 0:8f0d870509fe 101 * Function Name : GetDADDR
Sergunb 0:8f0d870509fe 102 * Description : Returns the DADDR register value.
Sergunb 0:8f0d870509fe 103 * Input : None.
Sergunb 0:8f0d870509fe 104 * Output : None.
Sergunb 0:8f0d870509fe 105 * Return : DADDR register Value
Sergunb 0:8f0d870509fe 106 *******************************************************************************/
Sergunb 0:8f0d870509fe 107 uint16_t GetDADDR(void)
Sergunb 0:8f0d870509fe 108 {
Sergunb 0:8f0d870509fe 109 return(_GetDADDR());
Sergunb 0:8f0d870509fe 110 }
Sergunb 0:8f0d870509fe 111
Sergunb 0:8f0d870509fe 112 /*******************************************************************************
Sergunb 0:8f0d870509fe 113 * Function Name : SetBTABLE
Sergunb 0:8f0d870509fe 114 * Description : Set the BTABLE.
Sergunb 0:8f0d870509fe 115 * Input : wRegValue: New register value.
Sergunb 0:8f0d870509fe 116 * Output : None.
Sergunb 0:8f0d870509fe 117 * Return : None.
Sergunb 0:8f0d870509fe 118 *******************************************************************************/
Sergunb 0:8f0d870509fe 119 void SetBTABLE(uint16_t wRegValue)
Sergunb 0:8f0d870509fe 120 {
Sergunb 0:8f0d870509fe 121 _SetBTABLE(wRegValue);
Sergunb 0:8f0d870509fe 122 }
Sergunb 0:8f0d870509fe 123
Sergunb 0:8f0d870509fe 124 /*******************************************************************************
Sergunb 0:8f0d870509fe 125 * Function Name : GetBTABLE.
Sergunb 0:8f0d870509fe 126 * Description : Returns the BTABLE register value.
Sergunb 0:8f0d870509fe 127 * Input : None.
Sergunb 0:8f0d870509fe 128 * Output : None.
Sergunb 0:8f0d870509fe 129 * Return : BTABLE address.
Sergunb 0:8f0d870509fe 130 *******************************************************************************/
Sergunb 0:8f0d870509fe 131 uint16_t GetBTABLE(void)
Sergunb 0:8f0d870509fe 132 {
Sergunb 0:8f0d870509fe 133 return(_GetBTABLE());
Sergunb 0:8f0d870509fe 134 }
Sergunb 0:8f0d870509fe 135
Sergunb 0:8f0d870509fe 136 /*******************************************************************************
Sergunb 0:8f0d870509fe 137 * Function Name : SetENDPOINT
Sergunb 0:8f0d870509fe 138 * Description : Setthe Endpoint register value.
Sergunb 0:8f0d870509fe 139 * Input : bEpNum: Endpoint Number.
Sergunb 0:8f0d870509fe 140 * wRegValue.
Sergunb 0:8f0d870509fe 141 * Output : None.
Sergunb 0:8f0d870509fe 142 * Return : None.
Sergunb 0:8f0d870509fe 143 *******************************************************************************/
Sergunb 0:8f0d870509fe 144 void SetENDPOINT(uint8_t bEpNum, uint16_t wRegValue)
Sergunb 0:8f0d870509fe 145 {
Sergunb 0:8f0d870509fe 146 _SetENDPOINT(bEpNum, wRegValue);
Sergunb 0:8f0d870509fe 147 }
Sergunb 0:8f0d870509fe 148
Sergunb 0:8f0d870509fe 149 /*******************************************************************************
Sergunb 0:8f0d870509fe 150 * Function Name : GetENDPOINT
Sergunb 0:8f0d870509fe 151 * Description : Return the Endpoint register value.
Sergunb 0:8f0d870509fe 152 * Input : bEpNum: Endpoint Number.
Sergunb 0:8f0d870509fe 153 * Output : None.
Sergunb 0:8f0d870509fe 154 * Return : Endpoint register value.
Sergunb 0:8f0d870509fe 155 *******************************************************************************/
Sergunb 0:8f0d870509fe 156 uint16_t GetENDPOINT(uint8_t bEpNum)
Sergunb 0:8f0d870509fe 157 {
Sergunb 0:8f0d870509fe 158 return(_GetENDPOINT(bEpNum));
Sergunb 0:8f0d870509fe 159 }
Sergunb 0:8f0d870509fe 160
Sergunb 0:8f0d870509fe 161 /*******************************************************************************
Sergunb 0:8f0d870509fe 162 * Function Name : SetEPType
Sergunb 0:8f0d870509fe 163 * Description : sets the type in the endpoint register.
Sergunb 0:8f0d870509fe 164 * Input : bEpNum: Endpoint Number.
Sergunb 0:8f0d870509fe 165 * wType: type definition.
Sergunb 0:8f0d870509fe 166 * Output : None.
Sergunb 0:8f0d870509fe 167 * Return : None.
Sergunb 0:8f0d870509fe 168 *******************************************************************************/
Sergunb 0:8f0d870509fe 169 void SetEPType(uint8_t bEpNum, uint16_t wType)
Sergunb 0:8f0d870509fe 170 {
Sergunb 0:8f0d870509fe 171 _SetEPType(bEpNum, wType);
Sergunb 0:8f0d870509fe 172 }
Sergunb 0:8f0d870509fe 173
Sergunb 0:8f0d870509fe 174 /*******************************************************************************
Sergunb 0:8f0d870509fe 175 * Function Name : GetEPType
Sergunb 0:8f0d870509fe 176 * Description : Returns the endpoint type.
Sergunb 0:8f0d870509fe 177 * Input : bEpNum: Endpoint Number.
Sergunb 0:8f0d870509fe 178 * Output : None.
Sergunb 0:8f0d870509fe 179 * Return : Endpoint Type
Sergunb 0:8f0d870509fe 180 *******************************************************************************/
Sergunb 0:8f0d870509fe 181 uint16_t GetEPType(uint8_t bEpNum)
Sergunb 0:8f0d870509fe 182 {
Sergunb 0:8f0d870509fe 183 return(_GetEPType(bEpNum));
Sergunb 0:8f0d870509fe 184 }
Sergunb 0:8f0d870509fe 185
Sergunb 0:8f0d870509fe 186 /*******************************************************************************
Sergunb 0:8f0d870509fe 187 * Function Name : SetEPTxStatus
Sergunb 0:8f0d870509fe 188 * Description : Set the status of Tx endpoint.
Sergunb 0:8f0d870509fe 189 * Input : bEpNum: Endpoint Number.
Sergunb 0:8f0d870509fe 190 * wState: new state.
Sergunb 0:8f0d870509fe 191 * Output : None.
Sergunb 0:8f0d870509fe 192 * Return : None.
Sergunb 0:8f0d870509fe 193 *******************************************************************************/
Sergunb 0:8f0d870509fe 194 void SetEPTxStatus(uint8_t bEpNum, uint16_t wState)
Sergunb 0:8f0d870509fe 195 {
Sergunb 0:8f0d870509fe 196 _SetEPTxStatus(bEpNum, wState);
Sergunb 0:8f0d870509fe 197 }
Sergunb 0:8f0d870509fe 198
Sergunb 0:8f0d870509fe 199 /*******************************************************************************
Sergunb 0:8f0d870509fe 200 * Function Name : SetEPRxStatus
Sergunb 0:8f0d870509fe 201 * Description : Set the status of Rx endpoint.
Sergunb 0:8f0d870509fe 202 * Input : bEpNum: Endpoint Number.
Sergunb 0:8f0d870509fe 203 * wState: new state.
Sergunb 0:8f0d870509fe 204 * Output : None.
Sergunb 0:8f0d870509fe 205 * Return : None.
Sergunb 0:8f0d870509fe 206 *******************************************************************************/
Sergunb 0:8f0d870509fe 207 void SetEPRxStatus(uint8_t bEpNum, uint16_t wState)
Sergunb 0:8f0d870509fe 208 {
Sergunb 0:8f0d870509fe 209 _SetEPRxStatus(bEpNum, wState);
Sergunb 0:8f0d870509fe 210 }
Sergunb 0:8f0d870509fe 211
Sergunb 0:8f0d870509fe 212 /*******************************************************************************
Sergunb 0:8f0d870509fe 213 * Function Name : SetDouBleBuffEPStall
Sergunb 0:8f0d870509fe 214 * Description : sets the status for Double Buffer Endpoint to STALL
Sergunb 0:8f0d870509fe 215 * Input : bEpNum: Endpoint Number.
Sergunb 0:8f0d870509fe 216 * bDir: Endpoint direction.
Sergunb 0:8f0d870509fe 217 * Output : None.
Sergunb 0:8f0d870509fe 218 * Return : None.
Sergunb 0:8f0d870509fe 219 *******************************************************************************/
Sergunb 0:8f0d870509fe 220 void SetDouBleBuffEPStall(uint8_t bEpNum, uint8_t bDir)
Sergunb 0:8f0d870509fe 221 {
Sergunb 0:8f0d870509fe 222 uint16_t Endpoint_DTOG_Status;
Sergunb 0:8f0d870509fe 223 Endpoint_DTOG_Status = GetENDPOINT(bEpNum);
Sergunb 0:8f0d870509fe 224 if (bDir == EP_DBUF_OUT)
Sergunb 0:8f0d870509fe 225 { /* OUT double buffered endpoint */
Sergunb 0:8f0d870509fe 226 _SetENDPOINT(bEpNum, Endpoint_DTOG_Status & ~EPRX_DTOG1);
Sergunb 0:8f0d870509fe 227 }
Sergunb 0:8f0d870509fe 228 else if (bDir == EP_DBUF_IN)
Sergunb 0:8f0d870509fe 229 { /* IN double buffered endpoint */
Sergunb 0:8f0d870509fe 230 _SetENDPOINT(bEpNum, Endpoint_DTOG_Status & ~EPTX_DTOG1);
Sergunb 0:8f0d870509fe 231 }
Sergunb 0:8f0d870509fe 232 }
Sergunb 0:8f0d870509fe 233
Sergunb 0:8f0d870509fe 234 /*******************************************************************************
Sergunb 0:8f0d870509fe 235 * Function Name : GetEPTxStatus
Sergunb 0:8f0d870509fe 236 * Description : Returns the endpoint Tx status.
Sergunb 0:8f0d870509fe 237 * Input : bEpNum: Endpoint Number.
Sergunb 0:8f0d870509fe 238 * Output : None.
Sergunb 0:8f0d870509fe 239 * Return : Endpoint TX Status
Sergunb 0:8f0d870509fe 240 *******************************************************************************/
Sergunb 0:8f0d870509fe 241 uint16_t GetEPTxStatus(uint8_t bEpNum)
Sergunb 0:8f0d870509fe 242 {
Sergunb 0:8f0d870509fe 243 return(_GetEPTxStatus(bEpNum));
Sergunb 0:8f0d870509fe 244 }
Sergunb 0:8f0d870509fe 245
Sergunb 0:8f0d870509fe 246 /*******************************************************************************
Sergunb 0:8f0d870509fe 247 * Function Name : GetEPRxStatus
Sergunb 0:8f0d870509fe 248 * Description : Returns the endpoint Rx status.
Sergunb 0:8f0d870509fe 249 * Input : bEpNum: Endpoint Number.
Sergunb 0:8f0d870509fe 250 * Output : None.
Sergunb 0:8f0d870509fe 251 * Return : Endpoint RX Status
Sergunb 0:8f0d870509fe 252 *******************************************************************************/
Sergunb 0:8f0d870509fe 253 uint16_t GetEPRxStatus(uint8_t bEpNum)
Sergunb 0:8f0d870509fe 254 {
Sergunb 0:8f0d870509fe 255 return(_GetEPRxStatus(bEpNum));
Sergunb 0:8f0d870509fe 256 }
Sergunb 0:8f0d870509fe 257
Sergunb 0:8f0d870509fe 258 /*******************************************************************************
Sergunb 0:8f0d870509fe 259 * Function Name : SetEPTxValid
Sergunb 0:8f0d870509fe 260 * Description : Valid the endpoint Tx Status.
Sergunb 0:8f0d870509fe 261 * Input : bEpNum: Endpoint Number.
Sergunb 0:8f0d870509fe 262 * Output : None.
Sergunb 0:8f0d870509fe 263 * Return : None.
Sergunb 0:8f0d870509fe 264 *******************************************************************************/
Sergunb 0:8f0d870509fe 265 void SetEPTxValid(uint8_t bEpNum)
Sergunb 0:8f0d870509fe 266 {
Sergunb 0:8f0d870509fe 267 _SetEPTxStatus(bEpNum, EP_TX_VALID);
Sergunb 0:8f0d870509fe 268 }
Sergunb 0:8f0d870509fe 269
Sergunb 0:8f0d870509fe 270 /*******************************************************************************
Sergunb 0:8f0d870509fe 271 * Function Name : SetEPRxValid
Sergunb 0:8f0d870509fe 272 * Description : Valid the endpoint Rx Status.
Sergunb 0:8f0d870509fe 273 * Input : bEpNum: Endpoint Number.
Sergunb 0:8f0d870509fe 274 * Output : None.
Sergunb 0:8f0d870509fe 275 * Return : None.
Sergunb 0:8f0d870509fe 276 *******************************************************************************/
Sergunb 0:8f0d870509fe 277 void SetEPRxValid(uint8_t bEpNum)
Sergunb 0:8f0d870509fe 278 {
Sergunb 0:8f0d870509fe 279 _SetEPRxStatus(bEpNum, EP_RX_VALID);
Sergunb 0:8f0d870509fe 280 }
Sergunb 0:8f0d870509fe 281
Sergunb 0:8f0d870509fe 282 /*******************************************************************************
Sergunb 0:8f0d870509fe 283 * Function Name : SetEP_KIND
Sergunb 0:8f0d870509fe 284 * Description : Clear the EP_KIND bit.
Sergunb 0:8f0d870509fe 285 * Input : bEpNum: Endpoint Number.
Sergunb 0:8f0d870509fe 286 * Output : None.
Sergunb 0:8f0d870509fe 287 * Return : None.
Sergunb 0:8f0d870509fe 288 *******************************************************************************/
Sergunb 0:8f0d870509fe 289 void SetEP_KIND(uint8_t bEpNum)
Sergunb 0:8f0d870509fe 290 {
Sergunb 0:8f0d870509fe 291 _SetEP_KIND(bEpNum);
Sergunb 0:8f0d870509fe 292 }
Sergunb 0:8f0d870509fe 293
Sergunb 0:8f0d870509fe 294 /*******************************************************************************
Sergunb 0:8f0d870509fe 295 * Function Name : ClearEP_KIND
Sergunb 0:8f0d870509fe 296 * Description : set the EP_KIND bit.
Sergunb 0:8f0d870509fe 297 * Input : bEpNum: Endpoint Number.
Sergunb 0:8f0d870509fe 298 * Output : None.
Sergunb 0:8f0d870509fe 299 * Return : None.
Sergunb 0:8f0d870509fe 300 *******************************************************************************/
Sergunb 0:8f0d870509fe 301 void ClearEP_KIND(uint8_t bEpNum)
Sergunb 0:8f0d870509fe 302 {
Sergunb 0:8f0d870509fe 303 _ClearEP_KIND(bEpNum);
Sergunb 0:8f0d870509fe 304 }
Sergunb 0:8f0d870509fe 305 /*******************************************************************************
Sergunb 0:8f0d870509fe 306 * Function Name : Clear_Status_Out
Sergunb 0:8f0d870509fe 307 * Description : Clear the Status Out of the related Endpoint
Sergunb 0:8f0d870509fe 308 * Input : bEpNum: Endpoint Number.
Sergunb 0:8f0d870509fe 309 * Output : None.
Sergunb 0:8f0d870509fe 310 * Return : None.
Sergunb 0:8f0d870509fe 311 *******************************************************************************/
Sergunb 0:8f0d870509fe 312 void Clear_Status_Out(uint8_t bEpNum)
Sergunb 0:8f0d870509fe 313 {
Sergunb 0:8f0d870509fe 314 _ClearEP_KIND(bEpNum);
Sergunb 0:8f0d870509fe 315 }
Sergunb 0:8f0d870509fe 316 /*******************************************************************************
Sergunb 0:8f0d870509fe 317 * Function Name : Set_Status_Out
Sergunb 0:8f0d870509fe 318 * Description : Set the Status Out of the related Endpoint
Sergunb 0:8f0d870509fe 319 * Input : bEpNum: Endpoint Number.
Sergunb 0:8f0d870509fe 320 * Output : None.
Sergunb 0:8f0d870509fe 321 * Return : None.
Sergunb 0:8f0d870509fe 322 *******************************************************************************/
Sergunb 0:8f0d870509fe 323 void Set_Status_Out(uint8_t bEpNum)
Sergunb 0:8f0d870509fe 324 {
Sergunb 0:8f0d870509fe 325 _SetEP_KIND(bEpNum);
Sergunb 0:8f0d870509fe 326 }
Sergunb 0:8f0d870509fe 327 /*******************************************************************************
Sergunb 0:8f0d870509fe 328 * Function Name : SetEPDoubleBuff
Sergunb 0:8f0d870509fe 329 * Description : Enable the double buffer feature for the endpoint.
Sergunb 0:8f0d870509fe 330 * Input : bEpNum: Endpoint Number.
Sergunb 0:8f0d870509fe 331 * Output : None.
Sergunb 0:8f0d870509fe 332 * Return : None.
Sergunb 0:8f0d870509fe 333 *******************************************************************************/
Sergunb 0:8f0d870509fe 334 void SetEPDoubleBuff(uint8_t bEpNum)
Sergunb 0:8f0d870509fe 335 {
Sergunb 0:8f0d870509fe 336 _SetEP_KIND(bEpNum);
Sergunb 0:8f0d870509fe 337 }
Sergunb 0:8f0d870509fe 338 /*******************************************************************************
Sergunb 0:8f0d870509fe 339 * Function Name : ClearEPDoubleBuff
Sergunb 0:8f0d870509fe 340 * Description : Disable the double buffer feature for the endpoint.
Sergunb 0:8f0d870509fe 341 * Input : bEpNum: Endpoint Number.
Sergunb 0:8f0d870509fe 342 * Output : None.
Sergunb 0:8f0d870509fe 343 * Return : None.
Sergunb 0:8f0d870509fe 344 *******************************************************************************/
Sergunb 0:8f0d870509fe 345 void ClearEPDoubleBuff(uint8_t bEpNum)
Sergunb 0:8f0d870509fe 346 {
Sergunb 0:8f0d870509fe 347 _ClearEP_KIND(bEpNum);
Sergunb 0:8f0d870509fe 348 }
Sergunb 0:8f0d870509fe 349 /*******************************************************************************
Sergunb 0:8f0d870509fe 350 * Function Name : GetTxStallStatus
Sergunb 0:8f0d870509fe 351 * Description : Returns the Stall status of the Tx endpoint.
Sergunb 0:8f0d870509fe 352 * Input : bEpNum: Endpoint Number.
Sergunb 0:8f0d870509fe 353 * Output : None.
Sergunb 0:8f0d870509fe 354 * Return : Tx Stall status.
Sergunb 0:8f0d870509fe 355 *******************************************************************************/
Sergunb 0:8f0d870509fe 356 uint16_t GetTxStallStatus(uint8_t bEpNum)
Sergunb 0:8f0d870509fe 357 {
Sergunb 0:8f0d870509fe 358 return(_GetTxStallStatus(bEpNum));
Sergunb 0:8f0d870509fe 359 }
Sergunb 0:8f0d870509fe 360 /*******************************************************************************
Sergunb 0:8f0d870509fe 361 * Function Name : GetRxStallStatus
Sergunb 0:8f0d870509fe 362 * Description : Returns the Stall status of the Rx endpoint.
Sergunb 0:8f0d870509fe 363 * Input : bEpNum: Endpoint Number.
Sergunb 0:8f0d870509fe 364 * Output : None.
Sergunb 0:8f0d870509fe 365 * Return : Rx Stall status.
Sergunb 0:8f0d870509fe 366 *******************************************************************************/
Sergunb 0:8f0d870509fe 367 uint16_t GetRxStallStatus(uint8_t bEpNum)
Sergunb 0:8f0d870509fe 368 {
Sergunb 0:8f0d870509fe 369 return(_GetRxStallStatus(bEpNum));
Sergunb 0:8f0d870509fe 370 }
Sergunb 0:8f0d870509fe 371 /*******************************************************************************
Sergunb 0:8f0d870509fe 372 * Function Name : ClearEP_CTR_RX
Sergunb 0:8f0d870509fe 373 * Description : Clear the CTR_RX bit.
Sergunb 0:8f0d870509fe 374 * Input : bEpNum: Endpoint Number.
Sergunb 0:8f0d870509fe 375 * Output : None.
Sergunb 0:8f0d870509fe 376 * Return : None.
Sergunb 0:8f0d870509fe 377 *******************************************************************************/
Sergunb 0:8f0d870509fe 378 void ClearEP_CTR_RX(uint8_t bEpNum)
Sergunb 0:8f0d870509fe 379 {
Sergunb 0:8f0d870509fe 380 _ClearEP_CTR_RX(bEpNum);
Sergunb 0:8f0d870509fe 381 }
Sergunb 0:8f0d870509fe 382 /*******************************************************************************
Sergunb 0:8f0d870509fe 383 * Function Name : ClearEP_CTR_TX
Sergunb 0:8f0d870509fe 384 * Description : Clear the CTR_TX bit.
Sergunb 0:8f0d870509fe 385 * Input : bEpNum: Endpoint Number.
Sergunb 0:8f0d870509fe 386 * Output : None.
Sergunb 0:8f0d870509fe 387 * Return : None.
Sergunb 0:8f0d870509fe 388 *******************************************************************************/
Sergunb 0:8f0d870509fe 389 void ClearEP_CTR_TX(uint8_t bEpNum)
Sergunb 0:8f0d870509fe 390 {
Sergunb 0:8f0d870509fe 391 _ClearEP_CTR_TX(bEpNum);
Sergunb 0:8f0d870509fe 392 }
Sergunb 0:8f0d870509fe 393 /*******************************************************************************
Sergunb 0:8f0d870509fe 394 * Function Name : ToggleDTOG_RX
Sergunb 0:8f0d870509fe 395 * Description : Toggle the DTOG_RX bit.
Sergunb 0:8f0d870509fe 396 * Input : bEpNum: Endpoint Number.
Sergunb 0:8f0d870509fe 397 * Output : None.
Sergunb 0:8f0d870509fe 398 * Return : None.
Sergunb 0:8f0d870509fe 399 *******************************************************************************/
Sergunb 0:8f0d870509fe 400 void ToggleDTOG_RX(uint8_t bEpNum)
Sergunb 0:8f0d870509fe 401 {
Sergunb 0:8f0d870509fe 402 _ToggleDTOG_RX(bEpNum);
Sergunb 0:8f0d870509fe 403 }
Sergunb 0:8f0d870509fe 404 /*******************************************************************************
Sergunb 0:8f0d870509fe 405 * Function Name : ToggleDTOG_TX
Sergunb 0:8f0d870509fe 406 * Description : Toggle the DTOG_TX bit.
Sergunb 0:8f0d870509fe 407 * Input : bEpNum: Endpoint Number.
Sergunb 0:8f0d870509fe 408 * Output : None.
Sergunb 0:8f0d870509fe 409 * Return : None.
Sergunb 0:8f0d870509fe 410 *******************************************************************************/
Sergunb 0:8f0d870509fe 411 void ToggleDTOG_TX(uint8_t bEpNum)
Sergunb 0:8f0d870509fe 412 {
Sergunb 0:8f0d870509fe 413 _ToggleDTOG_TX(bEpNum);
Sergunb 0:8f0d870509fe 414 }
Sergunb 0:8f0d870509fe 415 /*******************************************************************************
Sergunb 0:8f0d870509fe 416 * Function Name : ClearDTOG_RX.
Sergunb 0:8f0d870509fe 417 * Description : Clear the DTOG_RX bit.
Sergunb 0:8f0d870509fe 418 * Input : bEpNum: Endpoint Number.
Sergunb 0:8f0d870509fe 419 * Output : None.
Sergunb 0:8f0d870509fe 420 * Return : None.
Sergunb 0:8f0d870509fe 421 *******************************************************************************/
Sergunb 0:8f0d870509fe 422 void ClearDTOG_RX(uint8_t bEpNum)
Sergunb 0:8f0d870509fe 423 {
Sergunb 0:8f0d870509fe 424 _ClearDTOG_RX(bEpNum);
Sergunb 0:8f0d870509fe 425 }
Sergunb 0:8f0d870509fe 426 /*******************************************************************************
Sergunb 0:8f0d870509fe 427 * Function Name : ClearDTOG_TX.
Sergunb 0:8f0d870509fe 428 * Description : Clear the DTOG_TX bit.
Sergunb 0:8f0d870509fe 429 * Input : bEpNum: Endpoint Number.
Sergunb 0:8f0d870509fe 430 * Output : None.
Sergunb 0:8f0d870509fe 431 * Return : None.
Sergunb 0:8f0d870509fe 432 *******************************************************************************/
Sergunb 0:8f0d870509fe 433 void ClearDTOG_TX(uint8_t bEpNum)
Sergunb 0:8f0d870509fe 434 {
Sergunb 0:8f0d870509fe 435 _ClearDTOG_TX(bEpNum);
Sergunb 0:8f0d870509fe 436 }
Sergunb 0:8f0d870509fe 437 /*******************************************************************************
Sergunb 0:8f0d870509fe 438 * Function Name : SetEPAddress
Sergunb 0:8f0d870509fe 439 * Description : Set the endpoint address.
Sergunb 0:8f0d870509fe 440 * Input : bEpNum: Endpoint Number.
Sergunb 0:8f0d870509fe 441 * bAddr: New endpoint address.
Sergunb 0:8f0d870509fe 442 * Output : None.
Sergunb 0:8f0d870509fe 443 * Return : None.
Sergunb 0:8f0d870509fe 444 *******************************************************************************/
Sergunb 0:8f0d870509fe 445 void SetEPAddress(uint8_t bEpNum, uint8_t bAddr)
Sergunb 0:8f0d870509fe 446 {
Sergunb 0:8f0d870509fe 447 _SetEPAddress(bEpNum, bAddr);
Sergunb 0:8f0d870509fe 448 }
Sergunb 0:8f0d870509fe 449 /*******************************************************************************
Sergunb 0:8f0d870509fe 450 * Function Name : GetEPAddress
Sergunb 0:8f0d870509fe 451 * Description : Get the endpoint address.
Sergunb 0:8f0d870509fe 452 * Input : bEpNum: Endpoint Number.
Sergunb 0:8f0d870509fe 453 * Output : None.
Sergunb 0:8f0d870509fe 454 * Return : Endpoint address.
Sergunb 0:8f0d870509fe 455 *******************************************************************************/
Sergunb 0:8f0d870509fe 456 uint8_t GetEPAddress(uint8_t bEpNum)
Sergunb 0:8f0d870509fe 457 {
Sergunb 0:8f0d870509fe 458 return(_GetEPAddress(bEpNum));
Sergunb 0:8f0d870509fe 459 }
Sergunb 0:8f0d870509fe 460 /*******************************************************************************
Sergunb 0:8f0d870509fe 461 * Function Name : SetEPTxAddr
Sergunb 0:8f0d870509fe 462 * Description : Set the endpoint Tx buffer address.
Sergunb 0:8f0d870509fe 463 * Input : bEpNum: Endpoint Number.
Sergunb 0:8f0d870509fe 464 * wAddr: new address.
Sergunb 0:8f0d870509fe 465 * Output : None.
Sergunb 0:8f0d870509fe 466 * Return : None.
Sergunb 0:8f0d870509fe 467 *******************************************************************************/
Sergunb 0:8f0d870509fe 468 void SetEPTxAddr(uint8_t bEpNum, uint16_t wAddr)
Sergunb 0:8f0d870509fe 469 {
Sergunb 0:8f0d870509fe 470 _SetEPTxAddr(bEpNum, wAddr);
Sergunb 0:8f0d870509fe 471 }
Sergunb 0:8f0d870509fe 472 /*******************************************************************************
Sergunb 0:8f0d870509fe 473 * Function Name : SetEPRxAddr
Sergunb 0:8f0d870509fe 474 * Description : Set the endpoint Rx buffer address.
Sergunb 0:8f0d870509fe 475 * Input : bEpNum: Endpoint Number.
Sergunb 0:8f0d870509fe 476 * wAddr: new address.
Sergunb 0:8f0d870509fe 477 * Output : None.
Sergunb 0:8f0d870509fe 478 * Return : None.
Sergunb 0:8f0d870509fe 479 *******************************************************************************/
Sergunb 0:8f0d870509fe 480 void SetEPRxAddr(uint8_t bEpNum, uint16_t wAddr)
Sergunb 0:8f0d870509fe 481 {
Sergunb 0:8f0d870509fe 482 _SetEPRxAddr(bEpNum, wAddr);
Sergunb 0:8f0d870509fe 483 }
Sergunb 0:8f0d870509fe 484 /*******************************************************************************
Sergunb 0:8f0d870509fe 485 * Function Name : GetEPTxAddr
Sergunb 0:8f0d870509fe 486 * Description : Returns the endpoint Tx buffer address.
Sergunb 0:8f0d870509fe 487 * Input : bEpNum: Endpoint Number.
Sergunb 0:8f0d870509fe 488 * Output : None.
Sergunb 0:8f0d870509fe 489 * Return : Rx buffer address.
Sergunb 0:8f0d870509fe 490 *******************************************************************************/
Sergunb 0:8f0d870509fe 491 uint16_t GetEPTxAddr(uint8_t bEpNum)
Sergunb 0:8f0d870509fe 492 {
Sergunb 0:8f0d870509fe 493 return(_GetEPTxAddr(bEpNum));
Sergunb 0:8f0d870509fe 494 }
Sergunb 0:8f0d870509fe 495 /*******************************************************************************
Sergunb 0:8f0d870509fe 496 * Function Name : GetEPRxAddr.
Sergunb 0:8f0d870509fe 497 * Description : Returns the endpoint Rx buffer address.
Sergunb 0:8f0d870509fe 498 * Input : bEpNum: Endpoint Number.
Sergunb 0:8f0d870509fe 499 * Output : None.
Sergunb 0:8f0d870509fe 500 * Return : Rx buffer address.
Sergunb 0:8f0d870509fe 501 *******************************************************************************/
Sergunb 0:8f0d870509fe 502 uint16_t GetEPRxAddr(uint8_t bEpNum)
Sergunb 0:8f0d870509fe 503 {
Sergunb 0:8f0d870509fe 504 return(_GetEPRxAddr(bEpNum));
Sergunb 0:8f0d870509fe 505 }
Sergunb 0:8f0d870509fe 506 /*******************************************************************************
Sergunb 0:8f0d870509fe 507 * Function Name : SetEPTxCount.
Sergunb 0:8f0d870509fe 508 * Description : Set the Tx count.
Sergunb 0:8f0d870509fe 509 * Input : bEpNum: Endpoint Number.
Sergunb 0:8f0d870509fe 510 * wCount: new count value.
Sergunb 0:8f0d870509fe 511 * Output : None.
Sergunb 0:8f0d870509fe 512 * Return : None.
Sergunb 0:8f0d870509fe 513 *******************************************************************************/
Sergunb 0:8f0d870509fe 514 void SetEPTxCount(uint8_t bEpNum, uint16_t wCount)
Sergunb 0:8f0d870509fe 515 {
Sergunb 0:8f0d870509fe 516 _SetEPTxCount(bEpNum, wCount);
Sergunb 0:8f0d870509fe 517 }
Sergunb 0:8f0d870509fe 518 /*******************************************************************************
Sergunb 0:8f0d870509fe 519 * Function Name : SetEPCountRxReg.
Sergunb 0:8f0d870509fe 520 * Description : Set the Count Rx Register value.
Sergunb 0:8f0d870509fe 521 * Input : *pdwReg: point to the register.
Sergunb 0:8f0d870509fe 522 * wCount: the new register value.
Sergunb 0:8f0d870509fe 523 * Output : None.
Sergunb 0:8f0d870509fe 524 * Return : None.
Sergunb 0:8f0d870509fe 525 *******************************************************************************/
Sergunb 0:8f0d870509fe 526 void SetEPCountRxReg(uint32_t *pdwReg, uint16_t wCount)
Sergunb 0:8f0d870509fe 527 {
Sergunb 0:8f0d870509fe 528 _SetEPCountRxReg(dwReg, wCount);
Sergunb 0:8f0d870509fe 529 }
Sergunb 0:8f0d870509fe 530 /*******************************************************************************
Sergunb 0:8f0d870509fe 531 * Function Name : SetEPRxCount
Sergunb 0:8f0d870509fe 532 * Description : Set the Rx count.
Sergunb 0:8f0d870509fe 533 * Input : bEpNum: Endpoint Number.
Sergunb 0:8f0d870509fe 534 * wCount: the new count value.
Sergunb 0:8f0d870509fe 535 * Output : None.
Sergunb 0:8f0d870509fe 536 * Return : None.
Sergunb 0:8f0d870509fe 537 *******************************************************************************/
Sergunb 0:8f0d870509fe 538 void SetEPRxCount(uint8_t bEpNum, uint16_t wCount)
Sergunb 0:8f0d870509fe 539 {
Sergunb 0:8f0d870509fe 540 _SetEPRxCount(bEpNum, wCount);
Sergunb 0:8f0d870509fe 541 }
Sergunb 0:8f0d870509fe 542 /*******************************************************************************
Sergunb 0:8f0d870509fe 543 * Function Name : GetEPTxCount
Sergunb 0:8f0d870509fe 544 * Description : Get the Tx count.
Sergunb 0:8f0d870509fe 545 * Input : bEpNum: Endpoint Number.
Sergunb 0:8f0d870509fe 546 * Output : None
Sergunb 0:8f0d870509fe 547 * Return : Tx count value.
Sergunb 0:8f0d870509fe 548 *******************************************************************************/
Sergunb 0:8f0d870509fe 549 uint16_t GetEPTxCount(uint8_t bEpNum)
Sergunb 0:8f0d870509fe 550 {
Sergunb 0:8f0d870509fe 551 return(_GetEPTxCount(bEpNum));
Sergunb 0:8f0d870509fe 552 }
Sergunb 0:8f0d870509fe 553 /*******************************************************************************
Sergunb 0:8f0d870509fe 554 * Function Name : GetEPRxCount
Sergunb 0:8f0d870509fe 555 * Description : Get the Rx count.
Sergunb 0:8f0d870509fe 556 * Input : bEpNum: Endpoint Number.
Sergunb 0:8f0d870509fe 557 * Output : None.
Sergunb 0:8f0d870509fe 558 * Return : Rx count value.
Sergunb 0:8f0d870509fe 559 *******************************************************************************/
Sergunb 0:8f0d870509fe 560 uint16_t GetEPRxCount(uint8_t bEpNum)
Sergunb 0:8f0d870509fe 561 {
Sergunb 0:8f0d870509fe 562 return(_GetEPRxCount(bEpNum));
Sergunb 0:8f0d870509fe 563 }
Sergunb 0:8f0d870509fe 564 /*******************************************************************************
Sergunb 0:8f0d870509fe 565 * Function Name : SetEPDblBuffAddr
Sergunb 0:8f0d870509fe 566 * Description : Set the addresses of the buffer 0 and 1.
Sergunb 0:8f0d870509fe 567 * Input : bEpNum: Endpoint Number.
Sergunb 0:8f0d870509fe 568 * wBuf0Addr: new address of buffer 0.
Sergunb 0:8f0d870509fe 569 * wBuf1Addr: new address of buffer 1.
Sergunb 0:8f0d870509fe 570 * Output : None.
Sergunb 0:8f0d870509fe 571 * Return : None.
Sergunb 0:8f0d870509fe 572 *******************************************************************************/
Sergunb 0:8f0d870509fe 573 void SetEPDblBuffAddr(uint8_t bEpNum, uint16_t wBuf0Addr, uint16_t wBuf1Addr)
Sergunb 0:8f0d870509fe 574 {
Sergunb 0:8f0d870509fe 575 _SetEPDblBuffAddr(bEpNum, wBuf0Addr, wBuf1Addr);
Sergunb 0:8f0d870509fe 576 }
Sergunb 0:8f0d870509fe 577 /*******************************************************************************
Sergunb 0:8f0d870509fe 578 * Function Name : SetEPDblBuf0Addr
Sergunb 0:8f0d870509fe 579 * Description : Set the Buffer 1 address.
Sergunb 0:8f0d870509fe 580 * Input : bEpNum: Endpoint Number
Sergunb 0:8f0d870509fe 581 * wBuf0Addr: new address.
Sergunb 0:8f0d870509fe 582 * Output : None.
Sergunb 0:8f0d870509fe 583 * Return : None.
Sergunb 0:8f0d870509fe 584 *******************************************************************************/
Sergunb 0:8f0d870509fe 585 void SetEPDblBuf0Addr(uint8_t bEpNum, uint16_t wBuf0Addr)
Sergunb 0:8f0d870509fe 586 {
Sergunb 0:8f0d870509fe 587 _SetEPDblBuf0Addr(bEpNum, wBuf0Addr);
Sergunb 0:8f0d870509fe 588 }
Sergunb 0:8f0d870509fe 589 /*******************************************************************************
Sergunb 0:8f0d870509fe 590 * Function Name : SetEPDblBuf1Addr
Sergunb 0:8f0d870509fe 591 * Description : Set the Buffer 1 address.
Sergunb 0:8f0d870509fe 592 * Input : bEpNum: Endpoint Number
Sergunb 0:8f0d870509fe 593 * wBuf1Addr: new address.
Sergunb 0:8f0d870509fe 594 * Output : None.
Sergunb 0:8f0d870509fe 595 * Return : None.
Sergunb 0:8f0d870509fe 596 *******************************************************************************/
Sergunb 0:8f0d870509fe 597 void SetEPDblBuf1Addr(uint8_t bEpNum, uint16_t wBuf1Addr)
Sergunb 0:8f0d870509fe 598 {
Sergunb 0:8f0d870509fe 599 _SetEPDblBuf1Addr(bEpNum, wBuf1Addr);
Sergunb 0:8f0d870509fe 600 }
Sergunb 0:8f0d870509fe 601 /*******************************************************************************
Sergunb 0:8f0d870509fe 602 * Function Name : GetEPDblBuf0Addr
Sergunb 0:8f0d870509fe 603 * Description : Returns the address of the Buffer 0.
Sergunb 0:8f0d870509fe 604 * Input : bEpNum: Endpoint Number.
Sergunb 0:8f0d870509fe 605 * Output : None.
Sergunb 0:8f0d870509fe 606 * Return : None.
Sergunb 0:8f0d870509fe 607 *******************************************************************************/
Sergunb 0:8f0d870509fe 608 uint16_t GetEPDblBuf0Addr(uint8_t bEpNum)
Sergunb 0:8f0d870509fe 609 {
Sergunb 0:8f0d870509fe 610 return(_GetEPDblBuf0Addr(bEpNum));
Sergunb 0:8f0d870509fe 611 }
Sergunb 0:8f0d870509fe 612 /*******************************************************************************
Sergunb 0:8f0d870509fe 613 * Function Name : GetEPDblBuf1Addr
Sergunb 0:8f0d870509fe 614 * Description : Returns the address of the Buffer 1.
Sergunb 0:8f0d870509fe 615 * Input : bEpNum: Endpoint Number.
Sergunb 0:8f0d870509fe 616 * Output : None.
Sergunb 0:8f0d870509fe 617 * Return : Address of the Buffer 1.
Sergunb 0:8f0d870509fe 618 *******************************************************************************/
Sergunb 0:8f0d870509fe 619 uint16_t GetEPDblBuf1Addr(uint8_t bEpNum)
Sergunb 0:8f0d870509fe 620 {
Sergunb 0:8f0d870509fe 621 return(_GetEPDblBuf1Addr(bEpNum));
Sergunb 0:8f0d870509fe 622 }
Sergunb 0:8f0d870509fe 623 /*******************************************************************************
Sergunb 0:8f0d870509fe 624 * Function Name : SetEPDblBuffCount
Sergunb 0:8f0d870509fe 625 * Description : Set the number of bytes for a double Buffer
Sergunb 0:8f0d870509fe 626 * endpoint.
Sergunb 0:8f0d870509fe 627 * Input : bEpNum,bDir, wCount
Sergunb 0:8f0d870509fe 628 * Output : None.
Sergunb 0:8f0d870509fe 629 * Return : None.
Sergunb 0:8f0d870509fe 630 *******************************************************************************/
Sergunb 0:8f0d870509fe 631 void SetEPDblBuffCount(uint8_t bEpNum, uint8_t bDir, uint16_t wCount)
Sergunb 0:8f0d870509fe 632 {
Sergunb 0:8f0d870509fe 633 _SetEPDblBuffCount(bEpNum, bDir, wCount);
Sergunb 0:8f0d870509fe 634 }
Sergunb 0:8f0d870509fe 635 /*******************************************************************************
Sergunb 0:8f0d870509fe 636 * Function Name : SetEPDblBuf0Count
Sergunb 0:8f0d870509fe 637 * Description : Set the number of bytes in the buffer 0 of a double Buffer
Sergunb 0:8f0d870509fe 638 * endpoint.
Sergunb 0:8f0d870509fe 639 * Input : bEpNum, bDir, wCount
Sergunb 0:8f0d870509fe 640 * Output : None.
Sergunb 0:8f0d870509fe 641 * Return : None.
Sergunb 0:8f0d870509fe 642 *******************************************************************************/
Sergunb 0:8f0d870509fe 643 void SetEPDblBuf0Count(uint8_t bEpNum, uint8_t bDir, uint16_t wCount)
Sergunb 0:8f0d870509fe 644 {
Sergunb 0:8f0d870509fe 645 _SetEPDblBuf0Count(bEpNum, bDir, wCount);
Sergunb 0:8f0d870509fe 646 }
Sergunb 0:8f0d870509fe 647 /*******************************************************************************
Sergunb 0:8f0d870509fe 648 * Function Name : SetEPDblBuf1Count
Sergunb 0:8f0d870509fe 649 * Description : Set the number of bytes in the buffer 0 of a double Buffer
Sergunb 0:8f0d870509fe 650 * endpoint.
Sergunb 0:8f0d870509fe 651 * Input : bEpNum, bDir, wCount
Sergunb 0:8f0d870509fe 652 * Output : None.
Sergunb 0:8f0d870509fe 653 * Return : None.
Sergunb 0:8f0d870509fe 654 *******************************************************************************/
Sergunb 0:8f0d870509fe 655 void SetEPDblBuf1Count(uint8_t bEpNum, uint8_t bDir, uint16_t wCount)
Sergunb 0:8f0d870509fe 656 {
Sergunb 0:8f0d870509fe 657 _SetEPDblBuf1Count(bEpNum, bDir, wCount);
Sergunb 0:8f0d870509fe 658 }
Sergunb 0:8f0d870509fe 659 /*******************************************************************************
Sergunb 0:8f0d870509fe 660 * Function Name : GetEPDblBuf0Count
Sergunb 0:8f0d870509fe 661 * Description : Returns the number of byte received in the buffer 0 of a double
Sergunb 0:8f0d870509fe 662 * Buffer endpoint.
Sergunb 0:8f0d870509fe 663 * Input : bEpNum: Endpoint Number.
Sergunb 0:8f0d870509fe 664 * Output : None.
Sergunb 0:8f0d870509fe 665 * Return : Endpoint Buffer 0 count
Sergunb 0:8f0d870509fe 666 *******************************************************************************/
Sergunb 0:8f0d870509fe 667 uint16_t GetEPDblBuf0Count(uint8_t bEpNum)
Sergunb 0:8f0d870509fe 668 {
Sergunb 0:8f0d870509fe 669 return(_GetEPDblBuf0Count(bEpNum));
Sergunb 0:8f0d870509fe 670 }
Sergunb 0:8f0d870509fe 671 /*******************************************************************************
Sergunb 0:8f0d870509fe 672 * Function Name : GetEPDblBuf1Count
Sergunb 0:8f0d870509fe 673 * Description : Returns the number of data received in the buffer 1 of a double
Sergunb 0:8f0d870509fe 674 * Buffer endpoint.
Sergunb 0:8f0d870509fe 675 * Input : bEpNum: Endpoint Number.
Sergunb 0:8f0d870509fe 676 * Output : None.
Sergunb 0:8f0d870509fe 677 * Return : Endpoint Buffer 1 count.
Sergunb 0:8f0d870509fe 678 *******************************************************************************/
Sergunb 0:8f0d870509fe 679 uint16_t GetEPDblBuf1Count(uint8_t bEpNum)
Sergunb 0:8f0d870509fe 680 {
Sergunb 0:8f0d870509fe 681 return(_GetEPDblBuf1Count(bEpNum));
Sergunb 0:8f0d870509fe 682 }
Sergunb 0:8f0d870509fe 683 /*******************************************************************************
Sergunb 0:8f0d870509fe 684 * Function Name : GetEPDblBufDir
Sergunb 0:8f0d870509fe 685 * Description : gets direction of the double buffered endpoint
Sergunb 0:8f0d870509fe 686 * Input : bEpNum: Endpoint Number.
Sergunb 0:8f0d870509fe 687 * Output : None.
Sergunb 0:8f0d870509fe 688 * Return : EP_DBUF_OUT, EP_DBUF_IN,
Sergunb 0:8f0d870509fe 689 * EP_DBUF_ERR if the endpoint counter not yet programmed.
Sergunb 0:8f0d870509fe 690 *******************************************************************************/
Sergunb 0:8f0d870509fe 691 EP_DBUF_DIR GetEPDblBufDir(uint8_t bEpNum)
Sergunb 0:8f0d870509fe 692 {
Sergunb 0:8f0d870509fe 693 if ((uint16_t)(*_pEPRxCount(bEpNum) & 0xFC00) != 0)
Sergunb 0:8f0d870509fe 694 return(EP_DBUF_OUT);
Sergunb 0:8f0d870509fe 695 else if (((uint16_t)(*_pEPTxCount(bEpNum)) & 0x03FF) != 0)
Sergunb 0:8f0d870509fe 696 return(EP_DBUF_IN);
Sergunb 0:8f0d870509fe 697 else
Sergunb 0:8f0d870509fe 698 return(EP_DBUF_ERR);
Sergunb 0:8f0d870509fe 699 }
Sergunb 0:8f0d870509fe 700 /*******************************************************************************
Sergunb 0:8f0d870509fe 701 * Function Name : FreeUserBuffer
Sergunb 0:8f0d870509fe 702 * Description : free buffer used from the application realizing it to the line
Sergunb 0:8f0d870509fe 703 toggles bit SW_BUF in the double buffered endpoint register
Sergunb 0:8f0d870509fe 704 * Input : bEpNum, bDir
Sergunb 0:8f0d870509fe 705 * Output : None.
Sergunb 0:8f0d870509fe 706 * Return : None.
Sergunb 0:8f0d870509fe 707 *******************************************************************************/
Sergunb 0:8f0d870509fe 708 void FreeUserBuffer(uint8_t bEpNum, uint8_t bDir)
Sergunb 0:8f0d870509fe 709 {
Sergunb 0:8f0d870509fe 710 if (bDir == EP_DBUF_OUT)
Sergunb 0:8f0d870509fe 711 { /* OUT double buffered endpoint */
Sergunb 0:8f0d870509fe 712 _ToggleDTOG_TX(bEpNum);
Sergunb 0:8f0d870509fe 713 }
Sergunb 0:8f0d870509fe 714 else if (bDir == EP_DBUF_IN)
Sergunb 0:8f0d870509fe 715 { /* IN double buffered endpoint */
Sergunb 0:8f0d870509fe 716 _ToggleDTOG_RX(bEpNum);
Sergunb 0:8f0d870509fe 717 }
Sergunb 0:8f0d870509fe 718 }
Sergunb 0:8f0d870509fe 719
Sergunb 0:8f0d870509fe 720 /*******************************************************************************
Sergunb 0:8f0d870509fe 721 * Function Name : ToWord
Sergunb 0:8f0d870509fe 722 * Description : merge two byte in a word.
Sergunb 0:8f0d870509fe 723 * Input : bh: byte high, bl: bytes low.
Sergunb 0:8f0d870509fe 724 * Output : None.
Sergunb 0:8f0d870509fe 725 * Return : resulted word.
Sergunb 0:8f0d870509fe 726 *******************************************************************************/
Sergunb 0:8f0d870509fe 727 uint16_t ToWord(uint8_t bh, uint8_t bl)
Sergunb 0:8f0d870509fe 728 {
Sergunb 0:8f0d870509fe 729 uint16_t wRet;
Sergunb 0:8f0d870509fe 730 wRet = (uint16_t)bl | ((uint16_t)bh << 8);
Sergunb 0:8f0d870509fe 731 return(wRet);
Sergunb 0:8f0d870509fe 732 }
Sergunb 0:8f0d870509fe 733 /*******************************************************************************
Sergunb 0:8f0d870509fe 734 * Function Name : ByteSwap
Sergunb 0:8f0d870509fe 735 * Description : Swap two byte in a word.
Sergunb 0:8f0d870509fe 736 * Input : wSwW: word to Swap.
Sergunb 0:8f0d870509fe 737 * Output : None.
Sergunb 0:8f0d870509fe 738 * Return : resulted word.
Sergunb 0:8f0d870509fe 739 *******************************************************************************/
Sergunb 0:8f0d870509fe 740 uint16_t ByteSwap(uint16_t wSwW)
Sergunb 0:8f0d870509fe 741 {
Sergunb 0:8f0d870509fe 742 uint8_t bTemp;
Sergunb 0:8f0d870509fe 743 uint16_t wRet;
Sergunb 0:8f0d870509fe 744 bTemp = (uint8_t)(wSwW & 0xff);
Sergunb 0:8f0d870509fe 745 wRet = (wSwW >> 8) | ((uint16_t)bTemp << 8);
Sergunb 0:8f0d870509fe 746 return(wRet);
Sergunb 0:8f0d870509fe 747 }
Sergunb 0:8f0d870509fe 748
Sergunb 0:8f0d870509fe 749 #endif /* STM32F10X_CL */
Sergunb 0:8f0d870509fe 750 /******************* (C) COPYRIGHT 2010 STMicroelectronics *****END OF FILE****/