📄 usb.lst
字号:
C51 COMPILER V7.07 USB 03/24/2008 13:20:22 PAGE 1
C51 COMPILER V7.07, COMPILATION OF MODULE USB
OBJECT MODULE PLACED IN usb.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\c51.exe usb.c DB OE
stmt level source
1
2
3 #include <c8051f320.h> // Header file for SiLabs c8051f320
4 #include "usb_api.h" // Header file for USB_API.lib
5
6
7 extern void Dab_Read_Register(int reg_addr,int *ptrdata);
8 extern void Dab_Write_Register(int reg_addr,int reg_data);
9
10 extern void DabFM_Read_Register(int reg_addr,int *ptrdata);
11 extern void DabFM_Write_Register(int reg_addr,int reg_data);
12
13
14 extern xdata unsigned char command_packet[8];
15 extern unsigned char access_data_stream;
16
17
18 //ISR for USB_API, run when API interrupts are enabled, and an interrupt is received
19
20 void USB_API_ISR(void) interrupt 16
21
22 {
23 1
24 1 int register_addr;
25 1 int register_data;
26 1 unsigned char read_reg_data[8];//add preamble 0a0b0c0d0e0f when read registers
27 1
28 1 BYTE INTVAL = Get_Interrupt_Source(); // type of API interrupts
29 1
30 1 read_reg_data[0]=0x0a;
31 1 read_reg_data[1]=0x0b;
32 1 read_reg_data[2]=0x0c;
33 1 read_reg_data[3]=0x0d;
34 1 read_reg_data[4]=0x0e;
35 1 read_reg_data[5]=0x0f;
36 1
37 1 if (INTVAL & RX_COMPLETE)
38 1 {
39 2 Block_Read(command_packet, 8);//8个字节
40 2
41 2 if((command_packet[0]==0xaa)&&(command_packet[1]==0xbb))
42 2 {
43 3 if(command_packet[2] == 0x00)//DAB
44 3 {
45 4 switch(command_packet[3])
46 4 {
47 5 case 0x00:// write
48 5 register_addr=command_packet[4]<<8;//high 8 bit
49 5 register_addr=register_addr|command_packet[5];
50 5
51 5 register_data=command_packet[6]<<8;
52 5 register_data=register_data|command_packet[7];
53 5 //EX0=0;
54 5 Dab_Write_Register(register_addr,register_data);
55 5 //EX0=1;
C51 COMPILER V7.07 USB 03/24/2008 13:20:22 PAGE 2
56 5 break;
57 5
58 5 case 0x11://read
59 5 register_addr=command_packet[4]<<8;//high 8 bit
60 5 register_addr=register_addr|command_packet[5];
61 5 //EX0=0;
62 5 Dab_Read_Register(register_addr,®ister_data);
63 5 //EX0=1;
64 5 read_reg_data[7]= register_data & 0x00ff;
65 5 read_reg_data[6] = (register_data >> 8) & 0x00ff;
66 5
67 5 Block_Write(read_reg_data, 8);
68 5 break;
69 5
70 5 case 0x55://access data stream enable
71 5 EX0=1;
72 5 access_data_stream=1;
73 5 break;
74 5
75 5 case 0xaa://access data stream disable
76 5 EX0=0;
77 5 access_data_stream=0;
78 5 break;
79 5
80 5 default:
81 5 break;
82 5
83 5
84 5 }//end switch
85 4
86 4
87 4 }//end if "DAB"
88 3
89 3 if(command_packet[2] == 0x11)//FM
90 3 {
91 4 switch(command_packet[3])
92 4 {
93 5 case 0x00:// write
94 5 register_addr=command_packet[4]<<8;//high 8 bit
95 5 register_addr=register_addr|command_packet[5];
96 5
97 5 register_data=command_packet[6]<<8;
98 5 register_data=register_data|command_packet[7];
99 5 //EX0=0;
100 5 DabFM_Write_Register(register_addr,register_data);
101 5 //EX0=1;
102 5 break;
103 5
104 5 case 0x11://read
105 5 register_addr=command_packet[4]<<8;//high 8 bit
106 5 register_addr=register_addr|command_packet[5];
107 5 //EX0=0;
108 5 DabFM_Read_Register(register_addr,®ister_data);
109 5 //EX0=1;
110 5 read_reg_data[7]= register_data & 0x00ff;
111 5 read_reg_data[6] = (register_data >> 8) & 0x00ff;
112 5
113 5 Block_Write(read_reg_data, 8);
114 5 break;
115 5
116 5 default:
117 5 break;
C51 COMPILER V7.07 USB 03/24/2008 13:20:22 PAGE 3
118 5
119 5
120 5 }//end switch
121 4
122 4
123 4
124 4
125 4 }//end if "FM"
126 3
127 3
128 3
129 3
130 3
131 3 }//end if((command_packet[0]==0xaa)&&(command_packet[1]==0xbb))
132 2
133 2
134 2 }//end if (INTVAL & RX_COMPLETE)
135 1
136 1
137 1 }
138
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 349 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 12
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 + -