sja1000 中断_SJA1000PeliCAN模式下自收发问题

/*************************************************************************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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值