📄 can.lst
字号:
C51 COMPILER V7.06 CAN 10/23/2004 16:55:18 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE CAN
OBJECT MODULE PLACED IN Can.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Can.c OPTIMIZE(4,SPEED) BROWSE MOD517(NOAU) DEBUG OBJECTEXTEND
stmt level source
1 //****************************************************************************
2 // @Module CAN
3 // @Filename CAN.C
4 // @Project
5 //----------------------------------------------------------------------------
6 // @Controller Infineon C505C-2R
7 //
8 // @Compiler Keil
9 //
10 // @Codegenerator DAvE 2-0-0
11 //
12 // @Description This file contains all functions that use the CAN peripheral
13 //
14 //
15 //----------------------------------------------------------------------------
16 // @Date 2001-2-24 12:51:13
17 //****************************************************************************
18
19 ///////////////////////////////////////////////////////////////////////////////
20 // Author:Li An Chuan //
21 // All copyrights for this routine are reserved;Unauthorized down loading or //
22 // other kinds of copying prohibited! //
23 ///////////////////////////////////////////////////////////////////////////////
24
25 //Project includes
26 #include "MAIN.H"
27 #include "CAN.H"
28 #include "PER.H"
29
30 //***************************************************************************
31 // @Global Variables
32 //***************************************************************************
33
34 ////////////////////初始化函数/////////////////////////////////////////////////
35 //****************************************************************************
36 // @Function void CAN_vInit(void)
37 //
38 //----------------------------------------------------------------------------
39 // @Description This function initializes the CAN component. It effects
40 // all necessary configurations of the SFR, depending on
41 // the selected operating mode. The configuration determines
42 // whether the CAN interrupts are to be released and the
43 // priority of the released interrupt.
44 //
45 //----------------------------------------------------------------------------
46 // @Returnvalue none
47 //
48 //----------------------------------------------------------------------------
49 // @Parameters none
50 //
51 //----------------------------------------------------------------------------
52 // @Date 01-2-24 12:51:13
53 //
54 //****************************************************************************
55
C51 COMPILER V7.06 CAN 10/23/2004 16:55:18 PAGE 2
56 void CAN_vInit(void) reentrant
57 {
58 1
59 1 // ------------ CAN Control/Status Register --------------
60 1 // start the initialization of the CAN Modul
61 1 CR = 0x41; // set INIT and CCE
62 1
63 1 /// ------------ Bit Timing Register ---------------------
64 1 /// baudrate = 250.000 KBaud
65 1 /// there are 5 time quanta before sample point
66 1 /// there are 4 time quanta after sample point
67 1 /// the (re)synchronization jump width is 2 time quanta
68 1 BTR1 = 0x49; // set Bit Timing Register
69 1 BTR0 = 0x42;
70 1
71 1 GMS1 = 0x60; // set Global Mask Short Register 1
72 1 GMS0 = 0x00; // set Global Mask Short Register 0
73 1
74 1 UGML1 = 0xFF; // set Upper Global Mask Long Register 1
75 1 UGML0 = 0xFF; // set Upper Global Mask Long Register 0
76 1
77 1 LGML1 = 0xFF; // set Lower Global Mask Long Register 1
78 1 LGML0 = 0xFF; // set Lower Global Mask Long Register 0
79 1
80 1 UMLM1 = 0xFF; //set last message object Mask Register
81 1 UMLM0 = 0xFF;
82 1 LMLM1 = 0xFF;
83 1 LMLM0 = 0xFF;
84 1
85 1 // ------------------------------------------------------------------------
86 1 /// ----------------- Configure Message Object 1 ---------------------------
87 1 // ------------------------------------------------------------------------
88 1 /// Message object 1 is valid.
89 1 /// disable transmit interrupt
90 1 ///ID=0x01;CVN-101M
91 1 CAN_OBJ[0].MCR1 = 0x55; // set Message Control Register 1
92 1 CAN_OBJ[0].MCR0 = 0x95; // set Message Control Register 0;
93 1 // enable MSGVAL and TXIE
94 1 /// message direction is transmit
95 1 /// standard 11-bit identifier
96 1 /// 8 valid data bytes
97 1 CAN_OBJ[0].MCFG = 0x88; // set Message Configuration Register
98 1 //data length 8;transmit direction
99 1 //ID=01;
100 1 CAN_OBJ[0].UAR1 = 0x20; // set Upper Arbitration Register 1
101 1 CAN_OBJ[0].UAR0 = 0x00; // set Upper Arbitration Register 0
102 1 CAN_OBJ[0].LAR1 = 0x00; // set Lower Arbitration Register 1
103 1 CAN_OBJ[0].LAR0 = 0x00; // set Lower Arbitration Register 0
104 1
105 1 CAN_OBJ[0].Data[0] = 0x00; // set data byte 0
106 1 CAN_OBJ[0].Data[1] = 0x00; // set data byte 1
107 1 CAN_OBJ[0].Data[2] = 0x00; // set data byte 2
108 1 CAN_OBJ[0].Data[3] = 0x00; // set data byte 3
109 1 CAN_OBJ[0].Data[4] = 0x00; // set data byte 4
110 1 CAN_OBJ[0].Data[5] = 0x00; // set data byte 5
111 1 CAN_OBJ[0].Data[6] = 0x00; // set data byte 6
112 1 CAN_OBJ[0].Data[7] = 0x00; // set data byte 7
113 1
114 1 // ------------------------------------------------------------------------
115 1 /// ----------------- Configure Message Object 2 ---------------------------
116 1 // ------------------------------------------------------------------------
117 1 /// Message object 2 is valid
C51 COMPILER V7.06 CAN 10/23/2004 16:55:18 PAGE 3
118 1 /// enable receive interrupt
119 1 CAN_OBJ[1].MCR1 = 0x55; // set Message Control Register 1
120 1 CAN_OBJ[1].MCR0 = 0x95; // set Message Control Register 0
121 1 // enable MSGVAL and RXIE
122 1 /// message direction is receive
123 1 /// standard 11-bit identifier
124 1 CAN_OBJ[1].MCFG = 0x88; // set Message Configuration Register
125 1
126 1 CAN_OBJ[1].UAR1 = 0x40; // set Upper Arbitration Register 1
127 1 CAN_OBJ[1].UAR0 = 0x00; // set Upper Arbitration Register 0
128 1 CAN_OBJ[1].LAR1 = 0x00; // set Lower Arbitration Register 1
129 1 CAN_OBJ[1].LAR0 = 0x00; // set Lower Arbitration Register 0
130 1 //ID=0x02.
131 1
132 1 // ------------------------------------------------------------------------
133 1 /// ----------------- Configure Message Object 3 ---------------------------
134 1 /// message object 3 is not valid
135 1 CAN_OBJ[2].MCR1 = 0x55; // set Message Control Register 1
136 1 CAN_OBJ[2].MCR0 = 0x99; // set Message Control Register 0;
137 1 // enable MSGVAL and TXIE
138 1 /// message direction is transmit
139 1 /// standard 11-bit identifier
140 1 /// 8 valid data bytes
141 1 CAN_OBJ[2].MCFG = 0x00; // set Message Configuration Register
142 1 //data length 8;transmit direction
143 1 //ID=03;
144 1 CAN_OBJ[2].UAR1 = 0x60; // set Upper Arbitration Register 1
145 1 CAN_OBJ[2].UAR0 = 0x00; // set Upper Arbitration Register 0
146 1 CAN_OBJ[2].LAR1 = 0x00; // set Lower Arbitration Register 1
147 1 CAN_OBJ[2].LAR0 = 0x00; // set Lower Arbitration Register 0
148 1
149 1 CAN_OBJ[2].Data[0] = 0x00; // set data byte 0
150 1 CAN_OBJ[2].Data[1] = 0x00; // set data byte 1
151 1 CAN_OBJ[2].Data[2] = 0x00; // set data byte 2
152 1 CAN_OBJ[2].Data[3] = 0x00; // set data byte 3
153 1 CAN_OBJ[2].Data[4] = 0x00; // set data byte 4
154 1 CAN_OBJ[2].Data[5] = 0x00; // set data byte 5
155 1 CAN_OBJ[2].Data[6] = 0x00; // set data byte 6
156 1 CAN_OBJ[2].Data[7] = 0x00; // set data byte 7
157 1
158 1 // ------------------------------------------------------------------------
159 1 /// ----------------- Configure Message Object 4 ---------------------------
160 1 // ------------------------------------------------------------------------
161 1 /// message object 4 is not valid
162 1 CAN_OBJ[3].MCR1 = 0x55; // set Message Control Register 1
163 1 CAN_OBJ[3].MCR0 = 0x95; // set Message Control Register 0;
164 1 // enable MSGVAL and TXIE
165 1 /// message direction is transmit
166 1 /// standard 11-bit identifier
167 1 /// 8 valid data bytes
168 1 CAN_OBJ[3].MCFG = 0x88; // set Message Configuration Register
169 1 //data length 8;transmit direction
170 1 //ID=04;
171 1 CAN_OBJ[3].UAR1 = 0x80; // set Upper Arbitration Register 1
172 1 CAN_OBJ[3].UAR0 = 0x00; // set Upper Arbitration Register 0
173 1 CAN_OBJ[3].LAR1 = 0x00; // set Lower Arbitration Register 1
174 1 CAN_OBJ[3].LAR0 = 0x00; // set Lower Arbitration Register 0
175 1
176 1 CAN_OBJ[3].Data[0] = 0x00; // set data byte 0
177 1 CAN_OBJ[3].Data[1] = 0x00; // set data byte 1
178 1 CAN_OBJ[3].Data[2] = 0x00; // set data byte 2
179 1 CAN_OBJ[3].Data[3] = 0x00; // set data byte 3
C51 COMPILER V7.06 CAN 10/23/2004 16:55:18 PAGE 4
180 1 CAN_OBJ[3].Data[4] = 0x00; // set data byte 4
181 1 CAN_OBJ[3].Data[5] = 0x00; // set data byte 5
182 1 CAN_OBJ[3].Data[6] = 0x00; // set data byte 6
183 1 CAN_OBJ[3].Data[7] = 0x00; // set data byte 7
184 1 // ------------------------------------------------------------------------
185 1 /// ----------------- Configure Message Object 5 ---------------------------
186 1 // ------------------------------------------------------------------------
187 1 /// message object 5 is not valid
188 1 CAN_OBJ[4].MCR1 = 0x55; // set Message Control Register 1
189 1 CAN_OBJ[4].MCR0 = 0x95; // set Message Control Register 0;
190 1 // enable MSGVAL and TXIE
191 1 /// message direction is transmit
192 1 /// standard 11-bit identifier
193 1 /// 8 valid data bytes
194 1 CAN_OBJ[4].MCFG = 0x88; // set Message Configuration Register
195 1 //data length 8;transmit direction
196 1 //ID=05;
197 1 CAN_OBJ[4].UAR1 = 0xa0; // set Upper Arbitration Register 1
198 1 CAN_OBJ[4].UAR0 = 0x00; // set Upper Arbitration Register 0
199 1 CAN_OBJ[4].LAR1 = 0x00; // set Lower Arbitration Register 1
200 1 CAN_OBJ[4].LAR0 = 0x00; // set Lower Arbitration Register 0
201 1
202 1 CAN_OBJ[4].Data[0] = 0x00; // set data byte 0
203 1 CAN_OBJ[4].Data[1] = 0x00; // set data byte 1
204 1 CAN_OBJ[4].Data[2] = 0x00; // set data byte 2
205 1 CAN_OBJ[4].Data[3] = 0x00; // set data byte 3
206 1 CAN_OBJ[4].Data[4] = 0x00; // set data byte 4
207 1 CAN_OBJ[4].Data[5] = 0x00; // set data byte 5
208 1 CAN_OBJ[4].Data[6] = 0x00; // set data byte 6
209 1 CAN_OBJ[4].Data[7] = 0x00; // set data byte 7
210 1
211 1 // ------------------------------------------------------------------------
212 1 /// ----------------- Configure Message Object 6 ---------------------------
213 1 // ------------------------------------------------------------------------
214 1 /// message object 5 is not valid
215 1 CAN_OBJ[5].MCR1 = 0x55; // set Message Control Register 1
216 1 CAN_OBJ[5].MCR0 = 0x95; // set Message Control Register 0;
217 1 // enable MSGVAL and TXIE
218 1 /// message direction is transmit
219 1 /// standard 11-bit identifier
220 1 /// 8 valid data bytes
221 1 CAN_OBJ[5].MCFG = 0x88; // set Message Configuration Register
222 1 //data length 8;transmit direction
223 1 //ID=05;
224 1 CAN_OBJ[5].UAR1 = 0xc0; // set Upper Arbitration Register 1
225 1 CAN_OBJ[5].UAR0 = 0x00; // set Upper Arbitration Register 0
226 1 CAN_OBJ[5].LAR1 = 0x00; // set Lower Arbitration Register 1
227 1 CAN_OBJ[5].LAR0 = 0x00; // set Lower Arbitration Register 0
228 1
229 1 CAN_OBJ[5].Data[0] = 0x00; // set data byte 0
230 1 CAN_OBJ[5].Data[1] = 0x00; // set data byte 1
231 1 CAN_OBJ[5].Data[2] = 0x00; // set data byte 2
232 1 CAN_OBJ[5].Data[3] = 0x00; // set data byte 3
233 1 CAN_OBJ[5].Data[4] = 0x00; // set data byte 4
234 1 CAN_OBJ[5].Data[5] = 0x00; // set data byte 5
235 1 CAN_OBJ[5].Data[6] = 0x00; // set data byte 6
236 1 CAN_OBJ[5].Data[7] = 0x00; // set data byte 7
237 1
238 1 // ------------------------------------------------------------------------
239 1 /// ----------------- Configure Message Object 7 ---------------------------
240 1 /// message object 7 is not valid
241 1 CAN_OBJ[6].MCR1 = 0x55; // set Message Control Register 1
C51 COMPILER V7.06 CAN 10/23/2004 16:55:18 PAGE 5
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -