⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sja_pelican.lst

📁 参考周立功的basic模式的CAN通讯
💻 LST
📖 第 1 页 / 共 3 页
字号:
 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 + -