📄 periph.lst
字号:
C51 COMPILER V8.02 PERIPH 01/09/2009 15:06:33 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE PERIPH
OBJECT MODULE PLACED IN .\PERIPH.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE .\PERIPH.C OPTIMIZE(6,SPEED) DEBUG OBJECTEXTEND
line level source
1 #pragma NOIV // Do not generate interrupt vectors
2 //-----------------------------------------------------------------------------
3 // File: periph.c
4 // Contents: Hooks required to implement USB peripheral function.
5 //
6 // Copyright (c) 1997 AnchorChips, Inc. All rights reserved
7 //-----------------------------------------------------------------------------
8 #include <ezusb.h>
9 #include <ezregs.h>
10
11 extern BOOL GotSUD; // Received setup data flag
12 extern BOOL Sleep;
13 extern BOOL Rwuen;
14 extern BOOL Selfpwr;
15
16 BYTE Configuration; // Current configuration
17 BYTE AlternateSetting; // Alternate settings
18
19 typedef struct _ISO_REPORT
20 {
21 WORD length;
22 WORD frame;
23 } ISO_REPORT, *PISO_REPORT;
24
25 //-----------------------------------------------------------------------------
26 // Task Dispatcher hooks
27 // The following hooks are called by the task dispatcher.
28 //-----------------------------------------------------------------------------
29
30 void TD_Init(void) // Called once at startup
31 {
32 1 // Enable the SOF and USB Reset interrupts
33 1 USBIEN |= bmSOF + bmURES;
34 1
35 1 // Enable the ISO IN endpoints
36 1 INISOVAL = bmEP8;
37 1
38 1
39 1 // Set up the addresses for the ISO buffers
40 1 IN8ADDR = 0x00;
41 1
42 1 }
43
44 void TD_Poll(void) // Called repeatedly while the device is idle
45 {
46 1 }
47
48 BOOL TD_Suspend(void) // Called before the device goes into suspend mode
49 {
50 1 return(TRUE);
51 1 }
52
53 BOOL TD_Resume(void) // Called after the device resumes
54 {
55 1 return(TRUE);
C51 COMPILER V8.02 PERIPH 01/09/2009 15:06:33 PAGE 2
56 1 }
57
58 //-----------------------------------------------------------------------------
59 // Device Request hooks
60 // The following hooks are called by the end point 0 device request parser.
61 //-----------------------------------------------------------------------------
62
63 BOOL DR_GetDescriptor(void)
64 {
65 1 return(TRUE);
66 1 }
67
68 BOOL DR_SetConfiguration(void) // Called when a Set Configuration command is received
69 {
70 1 Configuration = SETUPDAT[2];
71 1 return(TRUE); // Handled by user code
72 1 }
73
74 BOOL DR_GetConfiguration(void) // Called when a Get Configuration command is received
75 {
76 1 IN0BUF[0] = Configuration;
77 1 EZUSB_SET_EP_BYTES(IN0BUF_ID,1);
78 1 return(TRUE); // Handled by user code
79 1 }
80
81 BOOL DR_SetInterface(void) // Called when a Set Interface command is received
82 {
83 1 AlternateSetting = SETUPDAT[2];
84 1 return(TRUE); // Handled by user code
85 1 }
86
87 BOOL DR_GetInterface(void) // Called when a Set Interface command is received
88 {
89 1 IN0BUF[0] = AlternateSetting;
90 1 EZUSB_SET_EP_BYTES(IN0BUF_ID,1);
91 1 return(TRUE); // Handled by user code
92 1 }
93
94 BOOL DR_GetStatus(void)
95 {
96 1 return(TRUE);
97 1 }
98
99 BOOL DR_ClearFeature(void)
100 {
101 1 return(TRUE);
102 1 }
103
104 BOOL DR_SetFeature(void)
105 {
106 1 return(TRUE);
107 1 }
108
109 BOOL DR_VendorCmnd(void)
110 {
111 1 return(FALSE);
112 1 }
113
114 //-----------------------------------------------------------------------------
115 // USB Interrupt Handlers
116 // The following functions are called by the USB interrupt jump table.
117 //-----------------------------------------------------------------------------
C51 COMPILER V8.02 PERIPH 01/09/2009 15:06:33 PAGE 3
118
119 // Setup Data Available Interrupt Handler
120 void ISR_Sudav(void) interrupt 0
121 {
122 1 GotSUD = TRUE; // Set flag
123 1 EZUSB_IRQ_CLEAR();
124 1 USBIRQ = bmSUDAV; // Clear SUDAV IRQ
125 1 }
126
127 // Setup Token Interrupt Handler
128 void ISR_Sutok(void) interrupt 0
129 {
130 1 EZUSB_IRQ_CLEAR();
131 1 USBIRQ = bmSUTOK; // Clear SUTOK IRQ
132 1 }
133
134 void ISR_Sof(void) interrupt 0
135 {
136 1 register BYTE framel = USBFRAMEL;
137 1 register BYTE frameh = USBFRAMEH;
138 1 register BYTE i;
139 1
140 1 IN8DATA = framel;
141 1 IN8DATA = frameh;
142 1
143 1
144 1 for (i=0;i<62;i++)
145 1 IN8DATA = i;
146 1
147 1 EZUSB_IRQ_CLEAR();
148 1 USBIRQ = bmSOF; // Clear SOF IRQ
149 1 }
150
151 void ISR_Ures(void) interrupt 0
152 {
153 1 EZUSB_IRQ_CLEAR();
154 1 USBIRQ = bmURES; // Clear URES IRQ
155 1 }
156
157 void ISR_IBN(void) interrupt 0
158 {
159 1 // ISR for the IN Bulk NAK (IBN) interrupt.
160 1 }
161
162 void ISR_Susp(void) interrupt 0
163 {
164 1 Sleep = TRUE;
165 1 EZUSB_IRQ_CLEAR();
166 1 USBIRQ = bmSUSP;
167 1 }
168
169 void ISR_Ep0in(void) interrupt 0
170 {
171 1 }
172
173 void ISR_Ep0out(void) interrupt 0
174 {
175 1 }
176
177 void ISR_Ep1in(void) interrupt 0
178 {
179 1 }
C51 COMPILER V8.02 PERIPH 01/09/2009 15:06:33 PAGE 4
180
181 void ISR_Ep1out(void) interrupt 0
182 {
183 1 }
184
185 void ISR_Ep2in(void) interrupt 0
186 {
187 1 }
188
189 void ISR_Ep2out(void) interrupt 0
190 {
191 1 }
192
193 void ISR_Ep3in(void) interrupt 0
194 {
195 1 }
196
197 void ISR_Ep3out(void) interrupt 0
198 {
199 1 }
200
201 void ISR_Ep4in(void) interrupt 0
202 {
203 1 }
204
205 void ISR_Ep4out(void) interrupt 0
206 {
207 1 }
208
209 void ISR_Ep5in(void) interrupt 0
210 {
211 1 }
212
213 void ISR_Ep5out(void) interrupt 0
214 {
215 1 }
216
217 void ISR_Ep6in(void) interrupt 0
218 {
219 1 }
220
221 void ISR_Ep6out(void) interrupt 0
222 {
223 1 }
224
225 void ISR_Ep7in(void) interrupt 0
226 {
227 1 }
228
229 void ISR_Ep7out(void) interrupt 0
230 {
231 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 252 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 2 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
C51 COMPILER V8.02 PERIPH 01/09/2009 15:06:33 PAGE 5
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -