📄 schedule.c
字号:
#define LIN_SCHEDULE_GLOBALS
#include "LIN_Header.h"
const LIN_Sch_Cnst LIN_Schedule_TblA[] =
{
{0x97,2,2/* 10ms, 5ms/Timer Tick */},
{0x5b,1,2},
{0x00,0,0},
};
const LIN_Sch_Cnst LIN_Schedule_TblB[] =
{
{0xd8,4,3},//1
{0x11,4,3},//2
{0x50,2,2},//3
{0x9c,4,3},//4
{0xd6,5,3},//5
{0x55,5,3},//6
{0x14,4,3},//7
{0xd8,4,3},//8
{0x92,3,3},//9
{0xd3,2,2},//10
{0x11,4,4},//11
{0x50,2,2},//12
{0x9c,4,3},//13
{0xd6,5,3},//14
{0x55,5,3},//15
{0x14,4,3},//16
{0x99,2,2},//17
{0x1a,2,2},//18
{0x0,0,0},//End of Schedule
};//Unconditional Frame Schedule
void LIN_Schedule(void)
{
// LIN_MSG_NODATA 0x01
// LIN_MSG_NOCHANGE 0x02
// LIN_MSG_UPDATED 0x20
/*
1.query Schedule_TblA for event trigerred frame transmit
2.qurey Schedule_TblB for normal frame transmit
*/
//L_U8 index;
if(LIN_Schedule_TblA[LIN_Schedule_IndexA].Frame_PID != LIN_NULL_FRAME)
{
LIN_Frame_Index = (LIN_Schedule_TblA[LIN_Schedule_IndexA].Frame_PID & 0x3f);
if(LIN_MsgStatus[LIN_Frame_Index] == LIN_MSG_UPDATED)
{//the data have been updated since last transmision
if(LIN_Frame_Index == 0x17)
{
Msg_17_Encode();
LIN_SetTimer(LIN_Schedule_TblA[LIN_Schedule_IndexA].Timeout);
LIN_SendBreak();//start Frame transmission
}
else if(LIN_Frame_Index == 0x1b)
{
Msg_1B_Encode();
LIN_SetTimer(LIN_Schedule_TblA[LIN_Schedule_IndexA].Timeout);
LIN_SendBreak();
}
}
else if(LIN_Schedule_TblB[LIN_Schedule_IndexB].Frame_PID != LIN_NULL_FRAME)
{
LIN_Frame_Index = (LIN_Schedule_TblB[LIN_Schedule_IndexB].Frame_PID & 0x3f);
LIN_TX_Buf[LIN_INDEX_ID] = LIN_Schedule_TblB[LIN_Schedule_IndexB].Frame_PID;
LIN_SetTimer(LIN_Schedule_TblB[LIN_Schedule_IndexB].Timeout);
LIN_SendBreak();
}
else
{
}
}
else if(LIN_Schedule_TblB[LIN_Schedule_IndexB].Frame_PID != LIN_NULL_FRAME)
{
LIN_Frame_Index = (LIN_Schedule_TblB[LIN_Schedule_IndexB].Frame_PID & 0x3f);
LIN_TX_Buf[LIN_INDEX_ID] = LIN_Schedule_TblB[LIN_Schedule_IndexB].Frame_PID;
LIN_SetTimer(LIN_Schedule_TblB[LIN_Schedule_IndexB].Timeout);
LIN_SendBreak();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -