📄 sjaosap.c
字号:
/*
********************************************************************************************************************
*描述: USB-to-CAN项目sja1000应用函数
*文件名: sjaosap.C
*应用语言: KEIL C51
*版本 : V1.0
*广州周立功单片机发展有限公司 保留所有的版权
********************************************************************************************************************
*/
#define _GLOBAL_SJAOSAP_
/*
************************************************************************************************************************
** 导入头文件
************************************************************************************************************************
*/
#include "sjaosap.h"
#include "SJA1000_PELI_APP.H"
#include "rtosmain.H"
#include "DISPLAY_LED.H"
#include <intrins.h>
/*
********************************************************************************************************************
* 函数原型
********************************************************************************************************************
*/
void sjacan1_isr(void) interrupt 0 using 3
{
unsigned char xdata *p =&CAN1_SJA_BaseAdr+REG_CAN_CMR ;
unsigned char i;
SJA_CS_Point =&CAN1_SJA_BaseAdr; //重置操作指针
*P_CanIntFlagApp = *P_Can1IntFlagApp; //度取中断标志
if(P_CanIntFlagApp->RcvIntFlag){ //接收数据
for(i=0;i<13;i++){
BufCan1[i] =*(SJA_CS_Point+REG_CAN_RXFMINFO +i);
}
*p= RRB_BIT;
P_structDisplayLedApp->DisplayBuf[2]=BufCan1[7]&0x0f;
P_structDisplayLedApp->DisplayBuf[1]=BufCan1[7]>>4;
P_structDisplayLedApp->DisplayBuf[4]=BufCan1[8]&0x0f;
P_structDisplayLedApp->DisplayBuf[3]=BufCan1[8]>>4;
}
if(P_CanIntFlagApp->TsIntFlag){
SJATxOK();
}
if(P_CanIntFlagApp->EiIntFlag){
SJAEIPrg();
}
if(P_CanIntFlagApp->DoiIntFlag){
SJADOIPrg();
}
if(P_CanIntFlagApp->WuiIntFlag){
SJAWUIPrg();
}
if(P_CanIntFlagApp->EpiIntFlag){
SJAEPIPrg();
}
if(P_CanIntFlagApp->AliIntFlag){
SJAALIPrg();
}
if(P_CanIntFlagApp->BeiIntFlag){
SJABEIPrg();
}
}
/*
void sjacan2_isr(void) interrupt 1 using 3
{
}
*/
/*
********************************************************************************************************************
* 发送结束
********************************************************************************************************************
*/
void SJATxOK(void){
}
/*
********************************************************************************************************************
* 错误报警
********************************************************************************************************************
*/
void SJAEIPrg(void){
}
/*
********************************************************************************************************************
* 数据溢出
********************************************************************************************************************
*/
void SJADOIPrg(void){
}
/*
********************************************************************************************************************
* 唤醒中断
********************************************************************************************************************
*/
void SJAWUIPrg(void){
}
/*
********************************************************************************************************************
* 消极错误处理
********************************************************************************************************************
*/
void SJAEPIPrg(void){
ReadECCReg();
}
/*
********************************************************************************************************************
* 仲裁丢失处理
********************************************************************************************************************
*/
void SJAALIPrg(void){
ReadALCReg();
}
/*
********************************************************************************************************************
* 总线错误处理
********************************************************************************************************************
*/
void SJABEIPrg(void){
}
/*
********************************************************************************************************************
* sja初始化处理
********************************************************************************************************************
*/
char SJAInitConfig(void){
unsigned char status;
if(SJATestRstMode()){ //处于工作模式
status = SJAEntryResetMode();
}
if(status == 0){
status =SJAEntryPeliCANMode();
status = SJASetClockDivision(0xc8);
if(status!=0){
return status;
}
/* status = SJAQuitResetMode();
if(status!=0){
return status;
}
status = SJAEntryResetMode();
if(status!=0){
return status;
}*/
status = SJASetOutControl(0xAA);
if(status!=0){
return status;
}
status = SJASetAccCode(33,44,55,55);
if(status!=0){
return status;
}
status = SJASetAccMask(0xff,0xff,0xff,0xff);
if(status!=0){
return status;
}
status = SJASetBandRateStandard(ByteRate_1000k);
if(status!=0){
return status;
}
WriteSJAReg(REG_CAN_MOD,0x1c);
status = SJAQuitResetMode();
if(status!=0){
return status;
}
WriteSJAReg(REG_CAN_IER,0xff);
}
return status;
}
/*
********************************************************************************************************************
* sja应用函数 定义结束
********************************************************************************************************************
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -