atmelusbci.lst

来自「这个是一个完整的MP3项目」· LST 代码 · 共 95 行

LST
95
字号
C51 COMPILER V7.50   ATMELUSBCI                                                            03/16/2006 09:11:14 PAGE 1   


C51 COMPILER V7.50, 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
  22          
  23          int AtmelUSBInit(unsigned char NDIV, unsigned int RDIV, unsigned char USBCD)
  24          {
  25   1              int i;
  26   1              //set PLL CLK
  27   1              
  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
  32   1              PLLNDIV =       0x7f&NDIV;//set NDIV
  33   1              PLLCON  |=      (0x3&RDIV) << 6;//set RDIV
  34   1              PLLRDIV =       (0x3ff&RDIV) >> 2;
  35   1      
  36   1              USBCLK = USBCD&0x03;
  37   1      
  38   1              PLLCON &= (~PLLRES);//Enable PLL
  39   1              PLLCON |= PLLEN;
  40   1      
  41   1      
  42   1              //USBCON Register
  43   1              USBCON &= (~USBE);
  44   1              for (i=0; i<3000; i++)
  45   1              USBCON |= USBE;
  46   1              return (0);
  47   1      }
  48          
  49          void EpEnable(void)
  50          {
  51   1      
  52   1              UEPNUM = 0x00;//Ep0 as control Endpoint
  53   1              UEPCONX = 0x80;
  54   1      
  55   1              UEPNUM = 0x01;//Ep1 as Bulk-in Endpoint
C51 COMPILER V7.50   ATMELUSBCI                                                            03/16/2006 09:11:14 PAGE 2   

  56   1              UEPCONX = 0x86;
  57   1      
  58   1              UEPNUM = 0x02;//Ep2 as Bulk-out Endpoint
  59   1              UEPCONX = 0x82;
  60   1      
  61   1              UEPRST = 0x07;//rest FIFO 
  62   1              UEPRST = 0x00;
  63   1      
  64   1              UEPIEN = 0x07;//Endpoint Interrupt Enable
  65   1      
  66   1              USBIEN |= EEOFINT;
  67   1              USBADDR = FEN;//Function Enable
  68   1              
  69   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 + =
减小字号Ctrl + -
显示快捷键?