sja1000.i

来自「AVR单片机系统开发经典实例部分源程序」· I 代码 · 共 1,013 行

I
1,013
字号
#line 1 "C:\AVR\CAN\sja1000.c"
#line 1 "C:/icc/include/iom128v.h"




#line 7 "C:/icc/include/iom128v.h"


#line 11 "C:/icc/include/iom128v.h"


#line 14 "C:/icc/include/iom128v.h"


#line 17 "C:/icc/include/iom128v.h"


#line 20 "C:/icc/include/iom128v.h"






























































































































































































































































































































































































































































































































































































































































































































































































#line 2 "C:\AVR\CAN\sja1000.c"

#line 1 "C:\AVR\CAN/sja1000.h"

#line 6 "C:\AVR\CAN/sja1000.h"


#line 24 "C:\AVR\CAN/sja1000.h"






























































































































































void sja100_rw_test(void);


#line 4 "C:\AVR\CAN\sja1000.c"




static void sja1000_port_init(INT8U reg)
{
(*(volatile unsigned char *)0x3A) = 0xff;
(*(volatile unsigned char *)0x64) |=(1 << 2);
((*(volatile unsigned char *)0x65) &= ~(1 << 2));
(*(volatile unsigned char *)0x34) |= ((1 << 2)|(1 << 1)|(1 << 0));
(*(volatile unsigned char *)0x35) |= ((1 << 2)|(1 << 1)|(1 << 0));

(*(volatile unsigned char *)0x3B) = reg;
((*(volatile unsigned char *)0x65) |=(1 << 2));

((*(volatile unsigned char *)0x65) &= ~(1 << 2));

}


static INT8U sja1000_rb(INT8U reg)
{
	INT8U ret;
	sja1000_port_init(reg);

(*(volatile unsigned char *)0x3A) = 0x0;
(*(volatile unsigned char *)0x3B) = 0xff;
(*(volatile unsigned char *)0x35) &= ~((1 << 2)|(1 << 1));
	asm("nop");
	ret =(*(volatile unsigned char *)0x39);
(*(volatile unsigned char *)0x35) |= ((1 << 2)|(1 << 1));
	return ret;
}

static void sja1000_wb(INT8U reg,INT8U c)
{


	sja1000_port_init(reg);

(*(volatile unsigned char *)0x3B) = c;
(*(volatile unsigned char *)0x35) &= ~((1 << 2)|(1 << 0));

(*(volatile unsigned char *)0x35) |= ~((1 << 2)|(1 << 0));
}

void sja100_rw_test(void)
{
	volatile static INT8U i = 0;
	INT8U j;
	sja1000_wb(4, i++);
	j = sja1000_rb(4);




}

⌨️ 快捷键说明

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