CAN 2.0A/B的扩展知肆帧最多可携带8字节数据。所以你应当合理设计通讯协议,在ID域中体现出包序号和拼包要求,16字节数据拆分为两个8字节的块,用两个帧分别传输。搭春轿接收端根据ID判定是否需要拼包、这是第几包,在应用层或协议层自行完成拼包。
//请参考以下程序片段//----------------------------低优先级中断入口-----------------------------------
#pragma code InterruptVectorLow = 0x18
void InterruptVectorLow (void) //低衫滑优先级中断向量函数
{
_asm
goto ISR_Low //内嵌汇编指令
_endasm
}
#pragma code
#pragma interruptlow ISR_Low
void ISR_Low (void)
{
if (INTCONbits.TMR0IF)
{ //check for TMR0 overflow
INTCONbits.TMR0IF = 0 //clear interrupt flag
TMR0H = 0XCF
TMR0L = 0X2B
_100ms_num++
}
}
//-------------------------高优先级中断入口--------------------------------
#pragma code InterruptVectorHigh = 0x08
void InterruptVectorHigh (void)
{
_asm
goto ISR_High //内嵌汇编贺信指令
_endasm
}
#pragma code
#pragma interrupt ISR_High
void ISR_High (void)
{
if(INTCONbits.INT0IF == 1)
{
INTCONbits.INT0IF = 0 //清除INT0中断标志位 INT0下降沿说明禅塌轮外部供电掉电
Bit.Start=0
T0CONbits.TMR0ON = 0 //关闭定时器
_100ms_num=0
Write_eeprom_uint(tl_data_add,tl)//保存tl数据
Write_eeprom_uint(th_data_add,th) //保存th数据
Write_eeprom_uint(out_num_data_add,(out_num)) //保存out_num数据
Write_eeprom_uint(input_num_data_add,input_num)//保存out_num数据
Delay10KTCYx(100)
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)