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

#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;
}
}
}