📄 atmelusbci.lst
字号:
C51 COMPILER V6.23a ATMELUSBCI 05/31/2003 10:20:29 PAGE 1
C51 COMPILER V6.23a, COMPILATION OF MODULE ATMELUSBCI
OBJECT MODULE PLACED IN atmelusbci.OBJ
COMPILER INVOKED BY: E:\Program Files\keil\C51\BIN\C51.EXE atmelusbci.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include <REGSND1.H>
2 #include "atmelusbci.h"
3
4 #define OSCclk 16
5
6 int AtmelUSBInit(unsigned char NDIV,unsigned int RDIV,unsigned char USBCD)
7 {
8 1 int i;
9 1 //set PLL CLK
10 1
11 1 // PLLclk=(OSCclk*(RDIV+1))/(int)(NDIV+1);
12 1 // USBclk=PLLclk/(int)(USBCD+1);
13 1
14 1 // CKCON|=X2;//Set to select 6 clock periods per machine cycle
15 1 PLLNDIV = 0x7f&NDIV;//set NDIV
16 1 PLLCON |= (0x3&RDIV)<<6;//set RDIV
17 1 PLLRDIV = (0x3ff&RDIV)>>2;
18 1
19 1 USBCLK=USBCD&0x03;
20 1
21 1 PLLCON&=(~PLLRES);//Enable PLL
22 1 PLLCON|=PLLEN;
23 1
24 1
25 1 //USBCON Register
26 1 USBCON&=(~USBE);
27 1 for(i=0;i<3000;i++)
28 1 USBCON|=USBE;
29 1 return(0);
30 1 }
31
32 void EpEnable(void)
33 {
34 1
35 1 UEPNUM=0x00;//Ep0 as control Endpoint
36 1 UEPCONX=0x80;
37 1
38 1 UEPNUM=0x01;//Ep1 as Bulk-in Endpoint
39 1 UEPCONX=0x86;
40 1
41 1 UEPNUM=0x02;//Ep2 as Bulk-out Endpoint
42 1 UEPCONX=0x82;
43 1
44 1 UEPRST=0x07;//rest FIFO
45 1 UEPRST=0x00;
46 1
47 1 UEPIEN=0x07;//Endpoint Interrupt Enable
48 1
49 1 USBIEN|=EEOFINT;
50 1 USBADDR=FEN;//Function Enable
51 1
52 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
C51 COMPILER V6.23a ATMELUSBCI 05/31/2003 10:20:29 PAGE 2
CODE SIZE = 105 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -