📄 atmelusbci.lst
字号:
C51 COMPILER V7.20 ATMELUSBCI 03/21/2007 13:33:19 PAGE 1
C51 COMPILER V7.20, COMPILATION OF MODULE ATMELUSBCI
OBJECT MODULE PLACED IN atmelusbci.OBJ
COMPILER INVOKED BY: C:\Program Files\keil\C51\BIN\C51.EXE atmelusbci.c LARGE BROWSE DEBUG OBJECTEXTEND
line level source
1 /*
2 * Copyright (c) 2004,北京博创兴业科技有限公司
3 * All rights reserved.
4 *
5 * 文件名称:atmelusbci.c
6 * 文件标识:atmelusbci
7 * 摘 要:USB操作相应函数定义
8 *
9 * 当前版本:2.0
10 * 作 者:Kent
11 * 完成日期:2004年5月20日
12 *
13 * 取代版本:1.1
14 * 原作者 :Frank
15 * 完成日期:2003年8月10日
16 */
17
18 #include "REGSND1.H"
19 #include "atmelusbci.h"
20
21 #define OSCclk 20//采用20M时钟,后续的许多编程内容与此时钟频率有关
22
23 //设置PLL的时钟,并得到USB工作所需要的48M时钟
24 int AtmelUSBInit(unsigned char NDIV, unsigned int RDIV, unsigned char USBCD)
25 {
26 1 int i;
27 1 //USB 时钟的频率计算方法
28 1 // PLLclk=(OSCclk*(RDIV+1))/(int)(NDIV+1);
29 1 // USBclk=PLLclk/(int)(USBCD+1);
30 1
31 1 CKCON |= X2;//Set to select 6 clock periods per machine cycle即X2模式启动
32 1 //set PLL CLK
33 1 PLLNDIV = 0x7f & NDIV;//set NDIV
34 1 PLLCON |= (0x3 & RDIV) << 6;//set RDIV
35 1 PLLRDIV = (0x3ff & RDIV) >> 2;
36 1
37 1 USBCLK = USBCD & 0x03;//设置USBCLK
38 1
39 1 PLLCON &= (~PLLRES);//Enable PLL
40 1 PLLCON |= PLLEN;
41 1
42 1 //USBCON Register
43 1 USBCON &= (~USBE);//禁止USB控制器
44 1
45 1 for (i=0; i<3000; i++);//延时
46 1
47 1 USBCON |= USBE;//使能USB控制器
48 1 return (0);
49 1 }
50
51 //设置端点的工作模式
52 void EpEnable(void)
53 {
54 1 UEPNUM = 0x00;//Ep0 as control Endpoint
55 1 UEPCONX = 0x80;
C51 COMPILER V7.20 ATMELUSBCI 03/21/2007 13:33:19 PAGE 2
56 1
57 1 UEPNUM = 0x01;//Ep1 as Bulk-in Endpoint
58 1 UEPCONX = 0x86;
59 1
60 1 UEPNUM = 0x02;//Ep2 as Bulk-out Endpoint
61 1 UEPCONX = 0x82;
62 1
63 1 UEPRST = 0x07;//rest FIFO
64 1 UEPRST = 0x00;
65 1
66 1 UEPIEN = 0x07;//Endpoint Interrupt Enable
67 1
68 1 USBIEN |= EEOFINT;
69 1 USBADDR = FEN;//Function Enable
70 1
71 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 108 ----
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 + -