📄 sja_pelican.lst
字号:
346 2 return 1;
347 2 }
C51 COMPILER V7.06 SJA_PELICAN 05/16/2006 10:19:37 PAGE 7
348 1
349 1 Sja_PeliCan = REG_TxBuffer1; //访问地址指向发送缓冲区1
*** ERROR C202 IN LINE 349 OF SJA_PELICAN.C: 'XBYTE': undefined identifier
350 1 if ( (SendDataBuf[1]&0x10) == 0 ) //判断RTR,从而得出是数据帧还是远程帧
351 1 {
352 2 //输入数据帧
353 2 TempCount = ( ((SendDataBuf[1]&0x0f) > 8) ? 8 : TempCount ) + 2;
354 2 }
355 1 else
356 1 {
357 2 TempCount = 2; //远程帧
358 2 }
359 1
360 1 memcpy(Sja_PeliCan, SendDataBuf, TempCount);
361 1 return 0;
362 1 }
363
364 /************************************************************************
365 *函数原型: bit PCan_Data_Recv (unsigned char *RcvDataBuf, *
366 * unsigned char *ucBufLen) *
367 *参数说明: RcvDataBuf, 存放微处理器保存数据缓冲区 *
368 *返回值: 0; 接收成功 *
369 * 1; 接收失败 *
370 *说明: CAN控制器接收数据,仅限于接收数据 *
371 ************************************************************************/
372 bit PCan_Data_Recv(unsigned char *RcvDataBuf, unsigned char *ucBufLen)
373 {
374 1 Sja_PeliCan = REG_STATUS; //访问地址指向状态寄存器
*** ERROR C202 IN LINE 374 OF SJA_PELICAN.C: 'REG_STATUS': undefined identifier
375 1 if ( (*Sja_PeliCan&0x01) == 0 ) //判断报文是否有效
376 1 {
377 2 *ucBufLen = 0;
378 2 return 1;
379 2 }
380 1
381 1
382 1 Sja_PeliCan = REG_RxFramInfo;
*** ERROR C202 IN LINE 382 OF SJA_PELICAN.C: 'XBYTE': undefined identifier
383 1 RcvDataBuf[0] = *Sja_PeliCan;
384 1
385 1 Sja_PeliCan = REG_RxBuffer1;
*** ERROR C202 IN LINE 385 OF SJA_PELICAN.C: 'XBYTE': undefined identifier
386 1 RcvDataBuf[1] = *Sja_PeliCan;
387 1
388 1 Sja_PeliCan = REG_RxBuffer2;
*** ERROR C202 IN LINE 388 OF SJA_PELICAN.C: 'XBYTE': undefined identifier
389 1 RcvDataBuf[2] = *Sja_PeliCan;
390 1
391 1 Sja_PeliCan = REG_RxBuffer3;
*** ERROR C202 IN LINE 391 OF SJA_PELICAN.C: 'XBYTE': undefined identifier
392 1 RcvDataBuf[3] = *Sja_PeliCan;
393 1
394 1 Sja_PeliCan = REG_RxBuffer4;
*** ERROR C202 IN LINE 394 OF SJA_PELICAN.C: 'XBYTE': undefined identifier
395 1 RcvDataBuf[4] = *Sja_PeliCan;
396 1
397 1 Sja_PeliCan = REG_RxBuffer5;
*** ERROR C202 IN LINE 397 OF SJA_PELICAN.C: 'XBYTE': undefined identifier
398 1 RcvDataBuf[5] = *Sja_PeliCan;
399 1
400 1 Sja_PeliCan = REG_RxBuffer6;
*** ERROR C202 IN LINE 400 OF SJA_PELICAN.C: 'XBYTE': undefined identifier
C51 COMPILER V7.06 SJA_PELICAN 05/16/2006 10:19:37 PAGE 8
401 1 RcvDataBuf[6] = *Sja_PeliCan;
402 1
403 1 Sja_PeliCan = REG_RxBuffer7;
*** ERROR C202 IN LINE 403 OF SJA_PELICAN.C: 'XBYTE': undefined identifier
404 1 RcvDataBuf[7] = *Sja_PeliCan;
405 1
406 1 Sja_PeliCan = REG_RxBuffer8;
*** ERROR C202 IN LINE 406 OF SJA_PELICAN.C: 'XBYTE': undefined identifier
407 1 RcvDataBuf[8] = *Sja_PeliCan;
408 1
409 1 Sja_PeliCan = REG_RxBuffer9;
*** ERROR C202 IN LINE 409 OF SJA_PELICAN.C: 'XBYTE': undefined identifier
410 1 RcvDataBuf[9] = *Sja_PeliCan;
411 1
412 1 Sja_PeliCan = REG_RxBuffer10;
*** ERROR C202 IN LINE 412 OF SJA_PELICAN.C: 'XBYTE': undefined identifier
413 1 RcvDataBuf[10] = *Sja_PeliCan;
414 1
415 1 Sja_PeliCan = REG_RxBuffer11;
*** ERROR C202 IN LINE 415 OF SJA_PELICAN.C: 'XBYTE': undefined identifier
416 1 RcvDataBuf[11] = *Sja_PeliCan;
417 1
418 1 Sja_PeliCan = REG_RxBuffer12;
*** ERROR C202 IN LINE 418 OF SJA_PELICAN.C: 'XBYTE': undefined identifier
419 1 RcvDataBuf[12] = *Sja_PeliCan;
420 1
421 1 *ucBufLen = 13;
422 1
423 1 //if ( (*Sja_PeliCan&0x10) == 0 ) //如果是数据帧
424 1 //{
425 1 //*ucBufLen = (*Sja_PeliCan&0x0f) + 2; //计算报文中数据的个数
426 1 //}
427 1 //else
428 1 //{
429 1 //*ucBufLen = 2;
430 1 // }
431 1 //Sja_PeliCan = REG_RxBuffer1; //访问地址指向接收缓冲区1
432 1 //memcpy(RcvDataBuf, Sja_PeliCan, *ucBufLen ); //读取接收缓冲区的报文
433 1
434 1 return 0;
435 1 }
436
437 /************************************************************************
438 *函数原型: bit PCan_Cmd_Prg(unsigned char cmd) *
439 *参数说明: unsigned char cmd: sja1000运行的命令字 *
440 * 0x01: 发送请求 *
441 * 0x02: 中止发送 *
442 * 0x04: 释放接收缓冲区 *
443 * 0x08: 清除超载状态 *
444 * 0x10: 进入睡眠状态 *
445 * *
446 *返回值: *
447 * 0 ; 表示命令执行成功 *
448 * 1 ; 表示命令执行失败 *
449 * *
450 *说明: 执行sja1000命令 *
451 ************************************************************************/
452 bit PCan_Cmd_Prg(unsigned char cmd)
453 {
454 1 Sja_PeliCan = REG_COMMAND; //访问地址指向命令寄存器
*** ERROR C202 IN LINE 454 OF SJA_PELICAN.C: 'REG_COMMAND': undefined identifier
455 1 *Sja_PeliCan = cmd; //启动命令字
C51 COMPILER V7.06 SJA_PELICAN 05/16/2006 10:19:37 PAGE 9
456 1 switch ( cmd )
457 1 {
458 2 case CMD_SEND: //发送请求命令
459 2 return 0;
460 2 break;
461 2
462 2 case CMD_ABORT_SEND: //夭折发送命令
463 2 Sja_PeliCan = REG_STATUS; //访问地址指向状态寄存器
*** ERROR C202 IN LINE 463 OF SJA_PELICAN.C: 'REG_STATUS': undefined identifier
464 2 if ( (*Sja_PeliCan & 0x20) ==0 )//判断是否正在发送
465 2 {
466 3 return 0;
467 3 }
468 2 else
469 2 {
470 3 return 1;
471 3 }
472 2 break;
473 2
474 2 case CMD_RELEASE_RXBUFF: //释放接收缓冲区
475 2 Sja_PeliCan = REG_STATUS; //访问地址指向状态寄存器
*** ERROR C202 IN LINE 475 OF SJA_PELICAN.C: 'REG_STATUS': undefined identifier
476 2 if ( (*Sja_PeliCan & 0x01) == 1 )//判断是否释放成功
477 2 {
478 3 return 1;
479 3 }
480 2 else
481 2 {
482 3 return 0;
483 3 }
484 2 break;
485 2
486 2 case CMD_CLEAR_OVER_STAT: //清除超载状态
487 2 Sja_PeliCan = REG_STATUS; //访问地址指向状态寄存器
*** ERROR C202 IN LINE 487 OF SJA_PELICAN.C: 'REG_STATUS': undefined identifier
488 2 if((*Sja_PeliCan & 0x02) == 0 ) //判断清除超载是否成功
489 2 {
490 3 return 0;
491 3 }
492 2 else
493 2 {
494 3 return 1;
495 3 }
496 2 break;
497 2
498 2 case CMD_GOTO_SLEEP: //进入睡眠状态命令
499 2 return 0;
500 2 break;
501 2
502 2 default:
503 2 return 1;
504 2 break;
505 2 }
506 1 }
507
C51 COMPILATION COMPLETE. 0 WARNING(S), 37 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -