📄 int.lst
字号:
172 // Timer0 For CAN Error -- If there is no CAN information form the bus for
173 // 10ms, CPU will close all the outputs.
174 //-----------------------------------------------------------------------------
175 void Timer_Init (void) {
176 1 SFRPAGE = TIMER01_PAGE;
177 1 TMOD |= 0x01;
178 1 CKCON |= 0x02;
179 1 TH0 = 0xFF;
C51 COMPILER V7.10 INT 07/27/2008 17:14:41 PAGE 4
180 1 TL0 = 0xFF;
181 1 }
182
183
184 /*
185 //-----------------------------------------------------------------------------
186 // CAN_send(unsigned char MsgNum,unsigned char *p ) :update the data & start send
187 //-----------------------------------------------------------------------------
188 void CAN_Transmit(unsigned char MsgNum,unsigned char *p_data )
189 {
190 unsigned char num;
191
192 SFRPAGE = CAN0_PAGE;
193 CAN0ADR = IF1CMDMSK;
194 CAN0DATL = 0x87; //wr/rd=1,mask=0,arb=0,control=0,,clrintpnd=0,txrqet=1,dataa=1,datab=1
195
196 CAN0ADR = IF1DATA1;
197 for(num=0;num<8;num++)
198 {
199 CAN0DATH=p_data[num];
200 num++;
201 CAN0DATL=p_data[num];
202 }
203
204 CAN0ADR = IF1CMDRQST;
205 CAN0DATL = MsgNum; //
206 }
207
208
209 //-----------------------------------------------------------------------------
210 // CAN_receive(unsigned char MsgNum,unsigned char *p )
211 //-----------------------------------------------------------------------------
212 void CAN_Receive (unsigned char MsgNum, unsigned char *p )
213 {
214 unsigned char num;
215
216 SFRPAGE = CAN0_PAGE;
217 CAN0ADR = IF2CMDMSK;
218 CAN0DATL = 0x0F;
219 CAN0ADR = IF2CMDRQST;
220 CAN0DATL = MsgNum;
221
222 CAN0ADR = IF2DATA1;
223 for(num=0;num<4;num++)
224 {
225 *p++ = CAN0DATH;
226 *p++ = CAN0DATL;
227 }
228 }
229 */
230
231 /*
232 //-----------------------------------------------------------------------------
233 // remote_rqst_int(unsigned char MsgNum , unsigned char id)
234 //wr/rd=1,mask=0,arb=1,control=1,,clrintpnd=0,txrqet=0,dataa=1,datab=1
235 //-----------------------------------------------------------------------------
236 void CAN_RemoteRqst_Init(unsigned char MsgNum , unsigned char id) //id=1
237 {
238
239 // unsigned char id_tempL,id_tempH;
240 // id_tempL = id << 2; // id & 0x0F) << 2
241 // id_tempH = id >> 6;
C51 COMPILER V7.10 INT 07/27/2008 17:14:41 PAGE 5
242 // id_tempH = id_tempH || 0x80; // MsgVal=1, Dir =0
243
244 SFRPAGE = CAN0_PAGE;
245 CAN0ADR = IF1CMDMSK;
246 CAN0DATL = 0xb3; //wr/rd=1,mask=0,arb=1,control=1,,clrintpnd=0,txrqet=0,dataa=1,datab=1
247 //?? remote data??
248
249 CAN0ADR = IF1ARB1;
250 CAN0DATH = 0x00;
251 CAN0DATL = 0x00;
252 CAN0DATH = 0x80; // MsgVal=1, Dir =0
253 CAN0DATL = (id << 2 ) & 0x3C; //IF2ARB
254 //MsgVal=1, Xad=0,Dir=0:receive
255
256 CAN0DATH = 0x04; //not use the filter,RxEn=1
257 CAN0DATL = 0x88; //IF2MSGC
258
259 CAN0ADR = IF1CMDRQST;
260 CAN0DATL = MsgNum;
261 }
262 */
263
264 /*
265 //-----------------------------------------------------------------------------
266 // remote_rqst(unsigned char MsgNum)
267 //-----------------------------------------------------------------------------
268 void CAN_RemoteRqst(unsigned char MsgNum)
269 {
270 SFRPAGE = CAN0_PAGE;
271
272 CAN0ADR = IF1CMDMSK;
273 CAN0DATL = 0x87; //wr/rd=1,mask=0,arb=0,control=0,,clrintpnd=0,txrqet=1,dataa=1,datab=1
274 //?? remote data??
275
276 CAN0ADR = IF1CMDRQST;
277 CAN0DATL = MsgNum;
278 }
279 */
280
281 void CAN_Remote_Send_Init(unsigned char MsgNum,unsigned char id )
282 {
283 1 SFRPAGE = CAN0_PAGE;
284 1 CAN0ADR = IF1CMDMSK;
285 1 CAN0DATL = 0xb3; //wr/rd=1,mask=0,arb=1,control=1,,clrintpnd=0,txrqet=0,dataa=1,datab=1
286 1
287 1 CAN0ADR = IF1ARB1;
288 1 CAN0DATH = 0x00;
289 1 CAN0DATL = 0x00;
290 1 CAN0DATH = 0xA0; //
291 1 CAN0DATL = (id << 2 ) & 0x3C; //0x80 | (((DO_Address & 0x0F) << 2)); //IF1ARB
292 1 //MsgVal=1, Xad=0,Dir=1:send
293 1 CAN0DATH = 0x0a; // not use the filter,UMask=0,RmtEn=1,TxIE=1
294 1 CAN0DATL = 0x88; //IF1MSGC: eob=1, dlc =8
295 1
296 1 CAN0DATH = 0x00;
297 1 CAN0DATL = 0x00; //data A1
298 1 CAN0DATH = 0x00;
299 1 CAN0DATL = 0x00; //data A2
300 1 CAN0DATH = 0x00;
301 1 CAN0DATL = 0x00; //data B1
302 1 CAN0DATH = 0x00;
303 1 CAN0DATL = 0x00; //data B2
C51 COMPILER V7.10 INT 07/27/2008 17:14:41 PAGE 6
304 1
305 1 CAN0ADR = IF1CMDRQST;
306 1 CAN0DATL = MsgNum; //
307 1 }
308
309
310 void CAN_Remote_Updata(unsigned char MsgNum,unsigned char *p_data )
311 {
312 1 unsigned char num;
313 1
314 1 SFRPAGE = CAN0_PAGE;
315 1 CAN0ADR = IF2CMDMSK;
316 1 CAN0DATL = 0x08; //wr/rd=0,mask=0,arb=0,control=0,,clrintpnd=1,txrqet=0,dataa=0,datab=0
317 1 CAN0ADR = IF2CMDRQST;
318 1 CAN0DATL = MsgNum; //
319 1
320 1 CAN0ADR = IF1CMDMSK;
321 1 CAN0DATL = 0x8b; //wr/rd=1,mask=0,arb=0,control=0,,clrintpnd=1,txrqet=0,dataa=1,datab=1
322 1
323 1 CAN0ADR = IF1DATA1;
324 1 for(num=0;num<8;num++)
325 1 {
326 2 CAN0DATH=p_data[num];
327 2 num++;
328 2 CAN0DATL=p_data[num];
329 2 }
330 1
331 1 CAN0ADR = IF1CMDRQST;
332 1 CAN0DATL = MsgNum;
333 1 }
334
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 335 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 8 ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 3
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 + -