Committer:
Sergunb
Date:
Mon Sep 04 12:03:42 2017 +0000
Revision:
0:f1834a63f7c1
Initial commit

Who changed what in which revision?

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