📄 isr.lst
字号:
182 1 }
183
184 void Isr_EP0Setup(void)
185 {
186 1 // Getting Setup Packet
187 1 ISP1581_IntClearl(int_ep0set);
188 1 SetupToken_Handler();
189 1 }
190 void Isr_Ep00RxDone(unsigned char nosetup)
191 {
192 1 UCHAR i;
193 1 unsigned short len;
194 1
195 1 //ISP1581_IntClearl(int_ep0rx);
196 1 switch (bZBoardFlags.bits.DCP_state)
197 1 {
198 2 case USBFSM4DCP_DATAOUT:
199 2
200 2 if(ControlData.wLength >= ControlData.wCount)
201 2 len = ControlData.wLength - ControlData.wCount;
202 2 else
203 2 len = 0x0;
204 2
205 2 i =ISP1581_ReadControlEndpoint(ControlData.dataBuffer + ControlData.wCount, len);
206 2 ControlData.wCount += i;
207 2
208 2 if(ControlData.wCount <= ControlData.wLength && i <= EP0_PACKET_SIZE)
209 2 {
210 3 bZBoardFlags.bits.CONTROL_HANDLE_DONE = 1;
211 3 bZBoardFlags.bits.DCP_state = USBFSM4DCP_REQUESTPROC;
212 3 }
213 2 else // too much data out than expected
214 2 {
215 3 if(nosetup)
216 3 {
217 4 ISP1581_StallEP0InControlWrite();
218 4 bZBoardFlags.bits.DCP_state = USBFSM4DCP_STALL;
219 4 }
220 3 }
221 2 ISP1581_IntClearl(int_ep0rx);
222 2 break;
223 2 case USBFSM4DCP_CONTROLREADHANDSHAKE:
224 2 bZBoardFlags.bits.DCP_state = USBFSM4DCP_IDLE;
225 2 ISP1581_IntClearl(int_ep0rx);
226 2 break;
227 2 case USBFSM4DCP_IDLE:
228 2 bZBoardFlags.bits.DCP_state = USBFSM4DCP_IDLE;
229 2 if(nosetup)
230 2 {//MCU_LED0 = 0;
231 3 ISP1581_IntClearl(int_ep0rx);}
232 2 break;
233 2 case USBFSM4DCP_STALL:
234 2 if(nosetup)
235 2 ISP1581_IntClearl(int_ep0rx);
236 2 break;
237 2 default:
238 2 if(nosetup)
239 2 {
C51 COMPILER V8.02 ISR 08/03/2006 10:10:36 PAGE 5
240 3
241 3 ISP1581_StallEP0InControlWrite();
242 3 bZBoardFlags.bits.DCP_state = USBFSM4DCP_STALL;
243 3 }
244 2 break;
245 2 }
246 1 }
247 void Isr_Ep00TxDone(unsigned char nosetup)
248 {
249 1 short i;
250 1 ISP1581_IntClearl(int_ep0tx);
251 1 switch (bZBoardFlags.bits.DCP_state)
252 1 {
253 2 case USBFSM4DCP_CONTROLREADHANDSHAKE:
254 2 ISP1581_ControlReadHandshake();
255 2 bZBoardFlags.bits.DCP_state = USBFSM4DCP_CONTROLREADHANDSHAKE;
256 2 break;
257 2 case USBFSM4DCP_CONTROLWRITEHANDSHAKE:
258 2 bZBoardFlags.bits.DCP_state = USBFSM4DCP_IDLE;
259 2 break;
260 2 case USBFSM4DCP_DATAIN:
261 2 i = ControlData.wLength - ControlData.wCount;
262 2 if( i >= EP0_PACKET_SIZE)
263 2 {
264 3 ISP1581_WriteControlEndpoint(ControlData.pData + ControlData.wCount, EP0_PACKET_SIZE);
265 3 ControlData.wCount += EP0_PACKET_SIZE;
266 3 bZBoardFlags.bits.DCP_state = USBFSM4DCP_DATAIN;
267 3 }
268 2 else if( i != 0)
269 2 {
270 3 ISP1581_WriteControlEndpoint(ControlData.pData + ControlData.wCount, i);
271 3 ControlData.wCount += i;
272 3 bZBoardFlags.bits.DCP_state = USBFSM4DCP_CONTROLREADHANDSHAKE;
273 3 }
274 2 else if (i == 0)
275 2 {
276 3 ISP1581_WriteControlEndpoint(0, 0);
277 3 bZBoardFlags.bits.DCP_state = USBFSM4DCP_CONTROLREADHANDSHAKE;
278 3 }
279 2 break;
280 2 case USBFSM4DCP_STALL:
281 2 bZBoardFlags.bits.DCP_state = USBFSM4DCP_IDLE;
282 2 break;
283 2 case USBFSM4DCP_IDLE:
284 2 //MCU_LED0=0;
285 2 break;
286 2 case USBFSM4DCP_REQUESTPROC:
287 2
288 2 break;
289 2 case USBFSM4DCP_SETUPPROC:
290 2
291 2 break;
292 2 case USBFSM4DCP_DATAOUT:
293 2
294 2 break;
295 2 default:
296 2 // do nothing, maybe just 1st nak for control in.
297 2 if(nosetup)
298 2 {
299 3 //MCU_LED0=0;
300 3 ISP1581_StallEP0InControlRead();
301 3 bZBoardFlags.bits.DCP_state = USBFSM4DCP_STALL;
C51 COMPILER V8.02 ISR 08/03/2006 10:10:36 PAGE 6
302 3 }
303 2 break;
304 2
305 2 }
306 1 }
307
308 void Isr_Ep01rxDone(void)
309 {
310 1 unsigned short len;
311 1 ISP1581_IntClearl(int_ep1rx);
312 1 len= ISP1581_ReadBulkEndpoint(EPINDEX4EP01OUT,GenEpBuf,EP1_PACKET_SIZE);
313 1 }
314 void Isr_Ep01txDone(void)
315 {
316 1 ISP1581_IntClearl(int_ep1tx);
317 1 }
318 void Isr_Ep02rxDone(void)
319 {
320 1 unsigned short len;
321 1 ISP1581_IntClearl(int_ep2rx);
322 1 len= ISP1581_ReadBulkEndpoint(EPINDEX4EP02OUT,GenEpBuf,maxepsize_FS);
323 1
324 1 }
325 void Isr_Ep02txDone(void)
326 {
327 1 ISP1581_IntClearl(int_ep2tx);
328 1 }
329 void Isr_Ep03rxDone(void)
330 {
331 1 ISP1581_IntClearh(int_ep3rx);
332 1 }
333 void Isr_Ep03txDone(void)
334 {
335 1 ISP1581_IntClearh(int_ep3tx);
336 1 }
337 void Isr_Ep04rxDone(void)
338 {
339 1 unsigned short len;
340 1 ISP1581_IntClearh(int_ep4rx);
341 1 len= ISP1581_ReadBulkEndpoint(EPINDEX4EP04OUT,GenEpBuf,EP4_PACKET_SIZE);
342 1 ioRequest.bCommand=GenEpBuf[0];
343 1 bZBoardFlags.bits.bLED = 1;
344 1
345 1 }
346 void Isr_Ep04txDone(void)
347 {
348 1 ISP1581_IntClearh(int_ep4tx);
349 1 }
350
351
352 ///////////////////////////////////////////////////////////////////////////
353
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1021 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 4 19
IDATA SIZE = 64 ----
BIT SIZE = ---- ----
C51 COMPILER V8.02 ISR 08/03/2006 10:10:36 PAGE 7
EDATA SIZE = ---- ----
HDATA SIZE = ---- ----
XDATA CONST SIZE = ---- ----
FAR CONST SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -