/*************************************************************************MCU:ATmega16MCLK:内部震荡8M熔丝位:低14高48CAN总线模块:独立可编程CAN芯片SJA1000CAN模块晶振:16M功能说明:自收发:按下key,1602第一行显示按下的次数,然后作为报文数据发送, 再由节点本身自己接收,并将接收的数据显示在第二行。接线说明:A0-A7口对应接SJA1000八位地址/数据线 C2-C7口接控制线 D2口接SJA1000INT0,D3口接外部按键key**************************************************************************/#include #include #include"yanshi.c"//提供ms和us延时函数#include"1602.c"//1602显示函数#define uchar unsigned char#define uint unsigned int#define mclk 8000000//8M晶振#pragma interrupt_handler can_rxd:2//外部中断INT0申明#pragma interrupt_handler key:3//外部中断INT1申明#pragma interrupt_handler usart_recieve:12//串口中断申明/*************************************************************************功能说明:SJA1000控制引脚定义**************************************************************************//*模块CANTest指示灯 pc2,高电平亮*/#define LED_H PORTC|=BIT(2)#define LED_L PORTC&=~BIT(2)/*SJA1000的RST信号线 PC3,低电平有效*/#define SJA_RST_H PORTC|=BIT(3)#define SJA_RST_L PORTC&=~BIT(3)/*SJA1000的WR信号线 PC4,低电平有效*/#define SJA_WR_H PORTC|=BIT(4)#define SJA_WR_L PORTC&=~BIT(4)/*SJA1000的RD信号线 PC5,低电平有效*/#define SJA_RD_H PORTC|=BIT(5)#define SJA_RD_L PORTC&=~BIT(5)/*SJA1000的CS信号线 PC6,低电平有效*/#define SJA_CS_H PORTC|=BIT(6)#define SJA_CS_L PORTC&=~BIT(6)/*SJA1000的ALE信号线 PC7,高电平有效*/#define SJA_ALE_H PORTC|=BIT(7)#define SJA_ALE_L PORTC&=~BIT(7)/*SJA1000的INT0信号线 PD2,外部中断INT0*/#define SJA_INT_H PORTD|=BIT(2)#define SJA_INT_L PORTD&=~BIT(2)/*SJA1000的KEY信号线 PD3,外部中断INT1*/#define SJA_KEY_H PORTD|=BIT(3)#define SJA_KEY_L PORTD&=~BIT(3)/*************************************************************************功能说明:SJA1000内部寄存器地址定义,各寄存器具体功能参阅SJA1000数据手册注意事项:不可随意修改模式:PeliCAN模式和扩展帧EFF模式描述符配置说明:BIT7:1,EFF:扩展帧格式 0,SFF:标准帧格式 BIT6:1,远程帧 0,数据帧 BIT3-0:数据长度代码**************************************************************************/#define MODR 0x00 //模式寄存器#define CMR 0x01 //命令寄存器#define SR 0x02 //状态寄存器#define IR 0x03 //中断寄存器#define IER 0x04 //中断使能寄存器#define BTR0 0x06 //总线定时寄存器0#define BTR1 0x07 //总线定时寄存器1#define OCR 0x08 //输出控制寄存器#define TEST 0x09 //测试寄存器#define ALC 0x0B //仲裁丢失捕捉#define ECC 0x0C //错误代码捕捉#define EWLR 0x0D //错误报警限额#define RXERR 0x0E //接收错误计数器#define TXERR 0x0F //发送错误计数器/*验收代码寄存器*/#define ACR0 0x10#define ACR1 0x11#define ACR
sja1000 中断_SJA1000PeliCAN模式下自收发问题
最新推荐文章于 2024-04-24 17:40:27 发布