You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
223 lines
5.5 KiB
223 lines
5.5 KiB
#include "CanCycleSend_app.h"
|
|
#include "CanApp.h"
|
|
#include "user.h"
|
|
#include "eeprom_app.h"
|
|
#include "mode_key.h"
|
|
|
|
//INT16U Can1MsgTxCyclicCounter[12];
|
|
//qiuadd
|
|
INT16U Can1MsgTxCyclicCounter[26];
|
|
|
|
//INT16U Can1MsgTxTimer[12];
|
|
//qiuadd
|
|
INT16U Can1MsgTxTimer[26];
|
|
void Can1_CommunicationInit(void)
|
|
{
|
|
for(int i=0;i<26;i++)
|
|
{
|
|
Can1MsgTxCyclicCounter[i] = 0;
|
|
Can1MsgTxTimer[i] = FOREMOST_TIME;
|
|
}
|
|
for(int i=0;i<26;i++)
|
|
{
|
|
Can1MsgTxCyclicCounter[i] = CycleTime_22NID[i];
|
|
}
|
|
CAN_AppUpdata_time = FOREMOST_TIME;
|
|
UserCanRxSignal.CycleSendEnable_flg =1;
|
|
ModeKey_Init();
|
|
}
|
|
CanTxMsg TxMsg;
|
|
|
|
//extern uint8_t one_cycle_pedal_flag;
|
|
u8 errorstate;
|
|
u8 ID230cnt;
|
|
u8 ID231cnt;
|
|
u8 ID232cnt;
|
|
u8 ID233cnt;
|
|
void Can1_CommunicationTask(void)
|
|
{
|
|
INT32U Can_ID;
|
|
|
|
ModeKey_Task();
|
|
|
|
for(int i=0;i<26;i++)
|
|
{
|
|
if(Can1MsgTxCyclicCounter[i] != CycleTime_22NID[i])
|
|
{
|
|
Can1MsgTxCyclicCounter[i] = CycleTime_22NID[i];
|
|
Can1MsgTxTimer[i] = FOREMOST_TIME;
|
|
}
|
|
}
|
|
|
|
if(UserCanRxSignal.CycleSendEnable_flg==1)
|
|
{
|
|
MC_Broadcast_Update();
|
|
if (Get1MsTickInterval(Can1MsgTxTimer[0]) >= Can1MsgTxCyclicCounter[0])
|
|
{
|
|
Can1MsgTxTimer[0] = Get1MsTickVal();
|
|
Can_ID = 0x18ff0200;
|
|
write(h_can1, DateTxBroadcast.ID00, 8, &Can_ID);
|
|
}
|
|
|
|
if (Get1MsTickInterval(Can1MsgTxTimer[1]) >= Can1MsgTxCyclicCounter[1])
|
|
{
|
|
Can1MsgTxTimer[1] = Get1MsTickVal();
|
|
Can_ID = 0x18ff0201;
|
|
write(h_can1, DateTxBroadcast.ID01, 8, &Can_ID);
|
|
}
|
|
|
|
if (Get1MsTickInterval(Can1MsgTxTimer[2]) >= Can1MsgTxCyclicCounter[2])
|
|
{
|
|
Can1MsgTxTimer[2] = Get1MsTickVal();
|
|
Can_ID = 0x18ff0202;
|
|
write(h_can1, DateTxBroadcast.ID02, 8, &Can_ID);
|
|
}
|
|
|
|
if (Get1MsTickInterval(Can1MsgTxTimer[3]) >= Can1MsgTxCyclicCounter[3])
|
|
{
|
|
Can1MsgTxTimer[3] = Get1MsTickVal();
|
|
Can_ID = 0x18ff0203;
|
|
write(h_can1, DateTxBroadcast.ID03, 8, &Can_ID);
|
|
}
|
|
|
|
if (Get1MsTickInterval(Can1MsgTxTimer[4]) >= Can1MsgTxCyclicCounter[4])
|
|
{
|
|
Can1MsgTxTimer[4] = Get1MsTickVal();
|
|
Can_ID = 0x18ff0204;
|
|
write(h_can1, DateTxBroadcast.ID04, 8, &Can_ID);
|
|
}
|
|
|
|
if (Get1MsTickInterval(Can1MsgTxTimer[5]) >= Can1MsgTxCyclicCounter[5])
|
|
{
|
|
Can1MsgTxTimer[5] = Get1MsTickVal();
|
|
Can_ID = 0x18ff0205;
|
|
write(h_can1, DateTxBroadcast.ID05, 8, &Can_ID);
|
|
}
|
|
|
|
if (Get1MsTickInterval(Can1MsgTxTimer[6]) >= Can1MsgTxCyclicCounter[6]&&ID230cnt<5)
|
|
{
|
|
Can1MsgTxTimer[6] = Get1MsTickVal();
|
|
ID230cnt++;
|
|
if(ID230cnt>5)
|
|
ID230cnt=5;
|
|
Can_ID = 0x18ff0230;
|
|
write(h_can1, DateTxBroadcast.ID06, 8, &Can_ID);
|
|
}
|
|
|
|
if (Get1MsTickInterval(Can1MsgTxTimer[7]) >= Can1MsgTxCyclicCounter[7]&&ID231cnt<5)
|
|
{
|
|
Can1MsgTxTimer[7] = Get1MsTickVal();
|
|
ID231cnt++;
|
|
if(ID231cnt>5)
|
|
ID231cnt=5;
|
|
Can_ID = 0x18ff0231;
|
|
write(h_can1, DateTxBroadcast.ID07, 8, &Can_ID);
|
|
}
|
|
|
|
if (Get1MsTickInterval(Can1MsgTxTimer[8]) >= Can1MsgTxCyclicCounter[8]&&ID232cnt<5)
|
|
{
|
|
Can1MsgTxTimer[8] = Get1MsTickVal();
|
|
ID232cnt++;
|
|
if(ID232cnt>5)
|
|
ID232cnt=5;
|
|
Can_ID = 0x18ff0232;
|
|
write(h_can1, DateTxBroadcast.ID08, 8, &Can_ID);
|
|
}
|
|
|
|
if (Get1MsTickInterval(Can1MsgTxTimer[9]) >= Can1MsgTxCyclicCounter[9]&&ID233cnt<5)
|
|
{
|
|
Can1MsgTxTimer[9] = Get1MsTickVal();
|
|
ID233cnt++;
|
|
if(ID233cnt>5)
|
|
ID233cnt=5;
|
|
Can_ID = 0x18ff0233;
|
|
write(h_can1, DateTxBroadcast.ID09, 8, &Can_ID);
|
|
}
|
|
|
|
// if (Get1MsTickInterval(Can1MsgTxTimer[10]) >= Can1MsgTxCyclicCounter[10])
|
|
// {
|
|
// Can1MsgTxTimer[10] = Get1MsTickVal();
|
|
// Can_ID = 0x18ff0240;
|
|
// write(h_can1, DateTxBroadcast.ID10, 8, &Can_ID);
|
|
// }
|
|
//
|
|
// if (Get1MsTickInterval(Can1MsgTxTimer[11]) >= Can1MsgTxCyclicCounter[11])
|
|
// {
|
|
// Can1MsgTxTimer[11] = Get1MsTickVal();
|
|
// Can_ID = 0x18ff0241;
|
|
// write(h_can1, DateTxBroadcast.ID11, 8, &Can_ID);
|
|
// }
|
|
//
|
|
// if (Get1MsTickInterval(Can1MsgTxTimer[12]) >= Can1MsgTxCyclicCounter[12])
|
|
// {
|
|
// Can1MsgTxTimer[12] = Get1MsTickVal();
|
|
// Can_ID = 0x18ff0242;
|
|
// write(h_can1, DateTxBroadcast.ID12, 8, &Can_ID);
|
|
// }
|
|
//
|
|
// if (Get1MsTickInterval(Can1MsgTxTimer[13]) >= Can1MsgTxCyclicCounter[13])
|
|
// {
|
|
// Can1MsgTxTimer[13] = Get1MsTickVal();
|
|
// Can_ID = 0x18ff0243;
|
|
// write(h_can1, DateTxBroadcast.ID13, 8, &Can_ID);
|
|
// }
|
|
|
|
// 0x18FF0101��0x18FF0108~0x18FF010C ΪVCU���մ���֡���������ڷ��͡�
|
|
if (Get1MsTickInterval(Can1MsgTxTimer[20]) >= Can1MsgTxCyclicCounter[20])
|
|
{
|
|
Can1MsgTxTimer[20] = Get1MsTickVal();
|
|
Can_ID = 0x18ff0600;
|
|
write(h_can1, DateTxBroadcast.ID20, 8, &Can_ID);
|
|
}
|
|
|
|
if (Get1MsTickInterval(Can1MsgTxTimer[21]) >= Can1MsgTxCyclicCounter[21])
|
|
{
|
|
Can1MsgTxTimer[21] = Get1MsTickVal();
|
|
Can_ID = 0x18ff0601;
|
|
write(h_can1, DateTxBroadcast.ID21, 8, &Can_ID);
|
|
}
|
|
|
|
if (Get1MsTickInterval(Can1MsgTxTimer[22]) >= Can1MsgTxCyclicCounter[22])
|
|
{
|
|
Can1MsgTxTimer[22] = Get1MsTickVal();
|
|
Can_ID = 0x18ff0250;
|
|
write(h_can1, DateTxBroadcast.ID22, 8, &Can_ID);
|
|
}
|
|
|
|
if (Get1MsTickInterval(Can1MsgTxTimer[23]) >= Can1MsgTxCyclicCounter[23])
|
|
{
|
|
Can1MsgTxTimer[23] = Get1MsTickVal();
|
|
Can_ID = 0x18ff0260;
|
|
write(h_can1, DateTxBroadcast.ID23, 8, &Can_ID);
|
|
}
|
|
|
|
if (Get1MsTickInterval(Can1MsgTxTimer[24]) >= Can1MsgTxCyclicCounter[24])
|
|
{
|
|
Can1MsgTxTimer[24] = Get1MsTickVal();
|
|
Can_ID = 0x18ff0261;
|
|
write(h_can1, DateTxBroadcast.ID24, 8, &Can_ID);
|
|
}
|
|
|
|
if (Get1MsTickInterval(Can1MsgTxTimer[25]) >= Can1MsgTxCyclicCounter[25])
|
|
{
|
|
Can1MsgTxTimer[25] = Get1MsTickVal();
|
|
Can_ID = 0x18ff0262;
|
|
write(h_can1, DateTxBroadcast.ID25, 8, &Can_ID);
|
|
}
|
|
|
|
uint8_t error_code = CAN_GetLastErrorCode(CAN1);
|
|
if (error_code != CAN_ErrorCode_NoErr) {
|
|
// �д��鿴������
|
|
errorstate=error_code;
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
for(int i=0;i<26;i++)
|
|
{
|
|
Can1MsgTxTimer[i] = FOREMOST_TIME;
|
|
}
|
|
}
|
|
}
|
|
|
|
|