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

📄 sja1000.c

📁 工业CAN网络节点控制系统设计
💻 C
字号:
#include <REGX52.h>
#include <absacc.h>	

#include "xkcan_defs.h"
#include "sja1000.h"

void SJAReset(void)
{
	SJA1000_CS = 1;
	SJA1000_RST = 0;
	SJA1000_RST = 1;
}

void wbyte(ubyte addr,  ubyte dat)
{
	ubyte addr_t;
	addr_t = P2 & (~(1<<SJA1000_CS_SHIFT));
	
	// The correct form of wbyte
	// XBYTE[addr|(addr_t<<8)] = dat;
	
	// This is the wrong form
	XBYTE[addr|(addr_t<<8)] = ((dat&0x80)>>1 | (dat&0x40)<<1 | (dat&0x3f));
	
	
	P2 = addr_t | (1<<SJA1000_CS_SHIFT); 
}

ubyte rbyte(ubyte addr)
{
	ubyte dat;
	ubyte addr_t;
	addr_t = P2 & (~(1<<SJA1000_CS_SHIFT));
	dat = XBYTE[addr|(addr_t<<8)];
	P2 = addr_t | (1<<SJA1000_CS_SHIFT); 
	
	// The correct form of wbyte
	// return dat;
	
	// This is the wrong form
	return ((dat&0x80)>>1 | (dat&0x40)<<1 | (dat&0x3f));
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -