欢迎来到天天文库
浏览记录
ID:46865850
大小:216.29 KB
页数:16页
时间:2019-11-28
《ATmega16控制的sja1000_can总线自收发程序》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、/*****************************************************************************************功能说明:SJA1000配置文件其它说明:无*****************************************************************************************/#include#include#include#include2、h>/*******************************************************************************功能说明:SJA1000控制线其它说明:无*******************************************************************************/#defineBSJA1000_ALE_PINPORTD3、=(1<<3)//置位#defineCSJA1000_ALE_PINPORTD&=~(1<<3)//清位//SJA1000的ALE信号线PD3#de4、fineBSJA1000_RST_PINPORTD5、=(1<<2)#defineCSJA1000_RST_PINPORTD&=~(1<<2)//SJA1000的RST信号线PD2#defineSJA1000_INT_PIN(PIND&0x80)#defineBSJA1000_INT_PINPORTD6、=(1<<7)#defineCSJA1000_INT_PINPORTD&=~(1<<7);///////////////////////////////////////////端口连接//SJA1000的INT信号线PD7#defineBSJA1000_CS_PINPO7、RTD8、=(1<<6)#defineCSJA1000_CS_PINPORTD&=~(1<<6)//SJA1000的CS信号线PD6#defineBSJA1000_RD_PINPORTD9、=(1<<5)#defineCSJA1000_RD_PINPORTD&=~(1<<5)//SJA1000的RD信号线PD5#defineBSJA1000_WR_PINPORTD10、=(1<<4)#defineCSJA1000_WR_PINPORTD&=~(1<<4)//SJA1000的WR信号线PD4#defineSJA1000_DATE_PORTPORTA#defineSJA100011、_DATE_PINPINA//SJA1000的地址、数据线PA/*******************************************************************************功能说明:计算SJA1000在电路中的实际地址:基址+内部寄存器地址其它说明:以下的定义为SJA1000的内部寄存器的地址,不可修改各寄存器的具体功能清参阅sja1000的数据手册*******************************************************************************///控制寄12、存器#defineREG_MODE0x00//内部控制寄存器#defineREG_COMMAND0x01//命令寄存器#defineREG_STATUS0x02//状态寄存器#defineREG_INTERRUPT0x03//中断寄存器#defineREG_INTENABLE0x04//中断使能寄存器#defineREG_BTR00x06//总线定时寄存器0#defineREG_BTR10x07//总线定时寄存器1#defineREG_OCR0x08//输出控制寄存器#defineREG_TEST0x09//测试寄存器#defineREG_RESVER10x0A//13、保留1#defineREG_ARBITRATE0x0B//仲裁丢失捕捉#defineREG_ERRCATCH0x0C//错误代码捕捉#defineREG_ERRLIMIT0x0D//错误报警限额#defineREG_RXERR0x0E//接收错误计数器#defineREG_TXERR0x0F//发送错误计数器#defineREG_ACR10x10//验收代码寄存器#defineREG_ACR20x11//验收代码寄存器#defineREG_ACR30x12//验收代码寄存器#defineREG_ACR40x13//验收代码寄存器#defineREG_AMR10x
2、h>/*******************************************************************************功能说明:SJA1000控制线其它说明:无*******************************************************************************/#defineBSJA1000_ALE_PINPORTD
3、=(1<<3)//置位#defineCSJA1000_ALE_PINPORTD&=~(1<<3)//清位//SJA1000的ALE信号线PD3#de
4、fineBSJA1000_RST_PINPORTD
5、=(1<<2)#defineCSJA1000_RST_PINPORTD&=~(1<<2)//SJA1000的RST信号线PD2#defineSJA1000_INT_PIN(PIND&0x80)#defineBSJA1000_INT_PINPORTD
6、=(1<<7)#defineCSJA1000_INT_PINPORTD&=~(1<<7);///////////////////////////////////////////端口连接//SJA1000的INT信号线PD7#defineBSJA1000_CS_PINPO
7、RTD
8、=(1<<6)#defineCSJA1000_CS_PINPORTD&=~(1<<6)//SJA1000的CS信号线PD6#defineBSJA1000_RD_PINPORTD
9、=(1<<5)#defineCSJA1000_RD_PINPORTD&=~(1<<5)//SJA1000的RD信号线PD5#defineBSJA1000_WR_PINPORTD
10、=(1<<4)#defineCSJA1000_WR_PINPORTD&=~(1<<4)//SJA1000的WR信号线PD4#defineSJA1000_DATE_PORTPORTA#defineSJA1000
11、_DATE_PINPINA//SJA1000的地址、数据线PA/*******************************************************************************功能说明:计算SJA1000在电路中的实际地址:基址+内部寄存器地址其它说明:以下的定义为SJA1000的内部寄存器的地址,不可修改各寄存器的具体功能清参阅sja1000的数据手册*******************************************************************************///控制寄
12、存器#defineREG_MODE0x00//内部控制寄存器#defineREG_COMMAND0x01//命令寄存器#defineREG_STATUS0x02//状态寄存器#defineREG_INTERRUPT0x03//中断寄存器#defineREG_INTENABLE0x04//中断使能寄存器#defineREG_BTR00x06//总线定时寄存器0#defineREG_BTR10x07//总线定时寄存器1#defineREG_OCR0x08//输出控制寄存器#defineREG_TEST0x09//测试寄存器#defineREG_RESVER10x0A//
13、保留1#defineREG_ARBITRATE0x0B//仲裁丢失捕捉#defineREG_ERRCATCH0x0C//错误代码捕捉#defineREG_ERRLIMIT0x0D//错误报警限额#defineREG_RXERR0x0E//接收错误计数器#defineREG_TXERR0x0F//发送错误计数器#defineREG_ACR10x10//验收代码寄存器#defineREG_ACR20x11//验收代码寄存器#defineREG_ACR30x12//验收代码寄存器#defineREG_ACR40x13//验收代码寄存器#defineREG_AMR10x
此文档下载收益归作者所有