?? d12driver.lst
字號:
C51 COMPILER V7.50 D12DRIVER 03/07/2006 08:28:19 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE D12DRIVER
OBJECT MODULE PLACED IN D12Driver.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE D12Driver.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /****************************************Copyright (c)**************************************************
2 ** 廣州周立功單片機發(fā)展有限公司
3 ** 研 究 所
4 ** 產(chǎn)品一部
5 **
6 ** http://www.zlgmcu.com
7 **
8 ** 文 件 名: D12Driver.c
9 ** 最后修改日期: 2004年11月15日
10 ** 描 述: USB驅(qū)動程序軟件包: PDIUSBD12 設備端驅(qū)動程序 應用層
11 ** 版 本: V5.0
12 **********************************************************************************************************
-/
13
14 #include <reg52.h>
15 #include "D12Config.h"
16 #include "D12CI.h"
17 #include "D12HAL.h"
18 #include "Chap_9.h"
19 #include "Descriptor.h"
20 #include "D12Driver.h"
21 #include "string.h"
22
23 INT8U idata GenEpBuf[EP1_PACKET_SIZE]; //端點1接收緩沖區(qū)
24 extern INT8U xdata RecBuf[1024]; /* 緩沖區(qū) */
25 extern INT8U idata EP2_tx; //端點2發(fā)送中斷標志
26 extern INT8U idata Rcv128Bytes; //端點收到128字節(jié)標志位
27 extern INT8U num_Of_64len; //長度為64字節(jié)的包數(shù)
28 extern INT8U num_of_less64len; //長度小于64字節(jié)的包長度
29 extern INT16 offset; //偏移量
30
31
32 /*********************************************************************
33 ** 函數(shù)名稱: Init_D12()
34 ** 功能描述: 設置D12與硬件的連接, 初始化D12, 復位D12
35 ** 輸 入: 無
36 ** 輸 出: 0: 初始化成功 1: 初始化失敗
37 **********************************************************************/
38 INT8U Init_D12(void)
39 {
40 1
41 1 bEPPflags.value = 0; //初始化USB事件標志變量
42 1
43 1 Init_D12Port(); //初始化PDIUSBD12與51單片機連接的端口
44 1 Rst_D12(); //復位PDIUSBD12
45 1 reconnect_USB(); //重新連接USB
46 1
47 1 if (D12_ReadChipID() != 0x1012) //讀取芯片ID號,如果不為1012H
48 1 return 1; //則復位失敗
49 1
50 1 return 0; //初始化成功
51 1 }
52
53 /*******************************************************************
54 ** 函數(shù)名稱: usbserve()
C51 COMPILER V7.50 D12DRIVER 03/07/2006 08:28:19 PAGE 2
55 ** 功能描述: USB事件處理函數(shù)
56 ** 輸 入: 無
57 ** 輸 出: 無
58 ********************************************************************/
59 void usbserve(void)
60 {
61 1 if (bEPPflags.bits.setup_packet){ //Setup包處理
62 2 DISABLE();
63 2 bEPPflags.bits.setup_packet = 0;
64 2 control_handler(); //調(diào)用請求處理子程序
65 2 ENABLE();
66 2 }//if setup_packet
67 1
68 1 if (bEPPflags.bits.bus_reset) { //USB總線復位處理
69 2 DISABLE();
70 2 bEPPflags.bits.bus_reset = 0;
71 2 ENABLE();
72 2 d12_busreset();
73 2 } // if bus reset
74 1
75 1 if (bEPPflags.bits.suspend) { //D12掛起改變處理
76 2 DISABLE();
77 2 bEPPflags.bits.suspend= 0;
78 2 ENABLE();
79 2 d12_suspend();
80 2 } // if suspend change
81 1
82 1 //在此添加其它usb事件處理代碼
83 1 }
84
85
86 /*******************************************************************
87 ** 函數(shù)名稱: d12_busreset()
88 ** 功能描述: USB總線復位處理函數(shù)
89 ** 輸 入: 無
90 ** 輸 出: 無
91 ********************************************************************/
92 void d12_busreset(void)
93 {
94 1 //在此添加總線復位處理代碼
95 1 }
96
97 /*******************************************************************
98 ** 函數(shù)名稱: dma_eot()
99 ** 功能描述: DMA結束處理函數(shù)
100 ** 輸 入: 無
101 ** 輸 出: 無
102 ********************************************************************/
103 void dma_eot(void)
104 {
105 1 //在此添加DMA結束處理代碼
106 1 }
107
108 /*******************************************************************
109 ** 函數(shù)名稱: d12_suspend()
110 ** 功能描述: 總線掛起改變處理函數(shù)
111 ** 輸 入: 無
112 ** 輸 出: 無
113 ********************************************************************/
114 void d12_suspend(void)
115 {
116 1 //在此添加總線掛起改變代碼
C51 COMPILER V7.50 D12DRIVER 03/07/2006 08:28:19 PAGE 3
117 1 }
118
119 /*******************************************************************
120 ** 函數(shù)名稱: ep1_txdone()
121 ** 功能描述: 端點1 IN(發(fā)送)處理處理函數(shù)
122 ** 輸 入: 無
123 ** 輸 出: 無
124 ********************************************************************/
125 void ep1_txdone(void)
126 {
127 1 D12_ReadLastTransactionStatus(3); //清中斷標志位
128 1 }
129
130 /*******************************************************************
131 ** 函數(shù)名稱: ep1_txdone()
132 ** 功能描述: 端點1 OUT(接收)處理處理函數(shù)
133 ** 輸 入: 無
134 ** 輸 出: 無
135 ********************************************************************/
136 void ep1_rxdone(void)
137 {
138 1 INT8U len;
139 1 D12_ReadLastTransactionStatus(2); //清中斷標志位
140 1 len = D12_ReadEndpoint(2,sizeof(GenEpBuf),GenEpBuf); //讀取數(shù)據(jù)
141 1 if(len != 0)
142 1 bEPPflags.bits.ep1_rxdone = 1; //標志接收到數(shù)據(jù)
143 1 }
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -