User | Revision | Line number | New 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****/
|