解决过日无法休眠问题,适用于7-8号车
This commit is contained in:
322
User.c
322
User.c
@@ -17,6 +17,7 @@ uword RgCanPerid = 1000;
|
||||
UnTimeOutput sleeptime = {0};
|
||||
UnTimeOutput waketime = {0};
|
||||
UnTimeOutput currenttime = {0};
|
||||
UnTimeOutput inittime = {00,1,1,0,0,0,0,0};// Ĭ<><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2000<30>꣬1<EAA3AC><31>1<EFBFBD><31> <20><><EFBFBD>գ<EFBFBD>0<EFBFBD><30>0<EFBFBD><30>00
|
||||
UnTimeOutput un_time_output1 = {0};//<2F><><EFBFBD><EFBFBD><EFBFBD>趨ʱ<E8B6A8><CAB1>
|
||||
UnInfCanKGFOutput un_inf_can_kgf_output2 = {0};//kgf<67><66><EFBFBD><EFBFBD>
|
||||
UnInfCanKGFOutput un_inf_can_kgf_output1 = {0};//kgf<67><66><EFBFBD><EFBFBD>
|
||||
@@ -109,7 +110,7 @@ void canSendTo(ubyte index,ubyte *buf)
|
||||
CanTransmitbuf[6] = buf[4];
|
||||
CanTransmitbuf[7] = buf[5];
|
||||
CanTransmitbuf[4] = buf[6];
|
||||
CanTransmitbuf[5] = buf[7];
|
||||
CanTransmitbuf[5] = buf[7];
|
||||
|
||||
CAN_waitTransmit(index);//<2F><><EFBFBD><EFBFBD>ǰ<EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD>һ֡<D2BB><D6A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ᶪ֡
|
||||
CAN_vLoadData(index, (ulong *)CanTransmitbuf);// װ<><D7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -127,7 +128,7 @@ void CanTX(void)
|
||||
UnInfCan_1.ArrData.Arr[0][7] = currenttime.bit_data.week;
|
||||
UnInfCan_1.ArrData.Arr[0][6] = currenttime.bit_data.minute;
|
||||
UnInfCan_1.ArrData.Arr[0][5] = currenttime.bit_data.second;
|
||||
UnInfCan_1.ArrData.Arr[0][4] = sleepstate;
|
||||
UnInfCan_1.ArrData.Arr[0][4] = waketime.bit_data.day;
|
||||
|
||||
CanTransmit();
|
||||
}
|
||||
@@ -136,231 +137,69 @@ void CanTX(void)
|
||||
//------------------------------------------------------------------
|
||||
void SystemStateMachine(SystemState *RgSTT)
|
||||
{
|
||||
ubyte i = 0;
|
||||
//----------------------------------------------
|
||||
|
||||
switch (*RgSTT)
|
||||
{
|
||||
//-------------------------------------------
|
||||
case STATE_INIT:
|
||||
if(NORMAL == flg_wake_ecu)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
if(STOP_PIN == ON) //<2F><>ͣ<EFBFBD><CDA3><EFBFBD>ػ<EFBFBD><D8BB><EFBFBD>
|
||||
{
|
||||
*RgSTT = STATE_ON; // <20><><EFBFBD><EFBFBD>ΪON<4F><4E><EFBFBD><EFBFBD><EFBFBD>빤<EFBFBD><EBB9A4>״̬
|
||||
wake_time_10min.bit_data.day = 0;
|
||||
wake_time_10min.bit_data.hour = 0;
|
||||
wake_time_10min.bit_data.week = 0;
|
||||
wake_time_10min.bit_data.minute = 10;
|
||||
bm8563ClearAlarmFlag(); //<2F><><EFBFBD><EFBFBD>0
|
||||
bm8563SetAlarm(&wake_time_10min);//<2F><><EFBFBD><EFBFBD>10<31><30><EFBFBD><EFBFBD>
|
||||
}
|
||||
else
|
||||
{
|
||||
*RgSTT = STATE_OFF; // RTC<54><43><EFBFBD>ѣ<EFBFBD>ֱ<EFBFBD>ӽ<EFBFBD><D3BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><D7BC>
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
*RgSTT = STATE_INIT;
|
||||
}
|
||||
break;
|
||||
|
||||
//-------------------------------------------
|
||||
if(NORMAL == flg_wake_ecu)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
bm8563SetAlarm(&waketime); //<2F><><EFBFBD>û<EFBFBD><C3BB><EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
memcpy(&waketimelast,&waketime,sizeof(UnTimeOutput));
|
||||
*RgSTT = STATE_ON;
|
||||
}
|
||||
else
|
||||
{
|
||||
*RgSTT = STATE_INIT;
|
||||
}
|
||||
break;
|
||||
|
||||
case STATE_ON:
|
||||
if(bm8563CheckAlarmFlag() || ( (STOP_PIN == OFF) && (POWER_STANDBY == powerstate) ) || (WAKE_UP_PIN == OFF) )//10<EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><EFBFBD>˻<EFBFBD><EFBFBD>߰<EFBFBD><EFBFBD>¼<EFBFBD>ͣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߹ر<EFBFBD><EFBFBD>ܿ<EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
||||
bm8563ClearAlarmFlag();
|
||||
bm8563SetAlarm(&sleeptime);
|
||||
KGF_PIN = 0; //KGF<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
CAN_PIN = 1; //canоƬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
BATTERY_PIN = 0;//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
*RgSTT = STATE_ON; // <20><><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD>Ѻ<EFBFBD><D1BA><EFBFBD><EFBFBD>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD>
|
||||
PS_vSetPowerDown();//<2F><><EFBFBD><EFBFBD>
|
||||
}
|
||||
else if( (POWER_WORKING == powerstate) || (POWER_EMERGENCY == powerstate) )//<2F><><EFBFBD>ڹ<EFBFBD><DAB9><EFBFBD>״̬
|
||||
{
|
||||
*RgSTT = STATE_ON2; // <20><><EFBFBD><EFBFBD>STATE_ON2
|
||||
}
|
||||
else
|
||||
{
|
||||
*RgSTT = STATE_ON; // <20><><EFBFBD><EFBFBD>
|
||||
}
|
||||
// <20><><EFBFBD><EFBFBD>ON״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
break;
|
||||
//-------------------------------------------
|
||||
if( (bm8563CheckAlarmFlag()) || (OFF == WAKE_UP_PIN) )//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD>䵽<EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD>ѹ<EFBFBD><EFBFBD><EFBFBD>عر<EFBFBD>
|
||||
{
|
||||
bm8563SetTime(&inittime);//20250802 <20><>ʼ<EFBFBD><CABC>ʱ<EFBFBD><CAB1> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊʱ<CEAA>䲻<EFBFBD>Ե<EFBFBD><D4B5><EFBFBD><EFBFBD><EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bm8563SetAlarm(&sleeptime);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
KGF_PIN = 0; //KGF<47><46><EFBFBD><EFBFBD>
|
||||
CAN_PIN = 1; //canоƬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
BATTERY_PIN = 0;//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
*RgSTT = STATE_INIT; // <EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>״̬
|
||||
PS_vSetPowerDown();//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
else if(0 != memcmp(&waketimelast,&waketime,sizeof(UnTimeOutput)))//<2F>Ƚ<EFBFBD>ֵ<EFBFBD>Ƿ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
memcpy(&waketimelast,&waketime,sizeof(UnTimeOutput));
|
||||
bm8563SetAlarm(&waketime);
|
||||
*RgSTT = STATE_ON; // <20><><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD>Ѻ<EFBFBD><D1BA><EFBFBD><EFBFBD>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
else if( (POWER_WORKING == powerstate) || (POWER_EMERGENCY == powerstate) )//<2F><><EFBFBD>ڹ<EFBFBD><DAB9><EFBFBD>״̬
|
||||
{
|
||||
*RgSTT = STATE_ON2; // <20><><EFBFBD><EFBFBD>STATE_ON2
|
||||
}
|
||||
else
|
||||
{
|
||||
*RgSTT = STATE_ON; // <20><><EFBFBD><EFBFBD>
|
||||
}
|
||||
break;
|
||||
|
||||
case STATE_ON2:
|
||||
if(POWER_STANDBY == powerstate)//<2F>µ<EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD>ͽ<EFBFBD><CDBD><EFBFBD>ON<4F><4E>ʱ<EFBFBD>ж<EFBFBD>
|
||||
{
|
||||
*RgSTT = STATE_ON; //
|
||||
wake_time_10min.bit_data.day = 0;
|
||||
wake_time_10min.bit_data.hour = 0;
|
||||
wake_time_10min.bit_data.week = 0;
|
||||
wake_time_10min.bit_data.minute = 10;
|
||||
bm8563ClearAlarmFlag(); //<2F><><EFBFBD><EFBFBD>0
|
||||
bm8563SetAlarm(&wake_time_10min);//<2F><><EFBFBD><EFBFBD>10<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
else if(WAKE_UP_PIN == OFF)//<2F>ܿ<EFBFBD><DCBF>عر<D8B9>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
bm8563ClearAlarmFlag();
|
||||
bm8563SetAlarm(&sleeptime);
|
||||
KGF_PIN = 0; //KGF<47><46><EFBFBD><EFBFBD>
|
||||
CAN_PIN = 1; //canоƬ<D0BE><C6AC><EFBFBD><EFBFBD>
|
||||
BATTERY_PIN = 0;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
*RgSTT = STATE_ON2; // <20><><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD>Ѻ<EFBFBD><D1BA><EFBFBD><EFBFBD>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD>
|
||||
PS_vSetPowerDown();//<2F><><EFBFBD><EFBFBD>
|
||||
}
|
||||
else
|
||||
{
|
||||
*RgSTT = STATE_ON2; // <20><><EFBFBD><EFBFBD>
|
||||
}
|
||||
break;
|
||||
//-------------------------------------------
|
||||
case STATE_OFF:
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>´λ<C2B4><CEBB><EFBFBD>
|
||||
bm8563ClearAlarmFlag();
|
||||
bm8563SetAlarm(&waketime);
|
||||
memcpy(&waketimelast,&waketime,sizeof(UnTimeOutput));
|
||||
|
||||
*RgSTT = STATE_OFF2; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><DFBC><EFBFBD>
|
||||
break;
|
||||
|
||||
//-------------------------------------------
|
||||
case STATE_OFF2:
|
||||
if (STOP_PIN == ON) //<2F>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
*RgSTT = STATE_ON; // <20><><EFBFBD><EFBFBD>ΪON<4F><4E><EFBFBD><EFBFBD><EFBFBD>빤<EFBFBD><EBB9A4>״̬
|
||||
wake_time_10min.bit_data.day = 0;
|
||||
wake_time_10min.bit_data.hour = 0;
|
||||
wake_time_10min.bit_data.week = 0;
|
||||
wake_time_10min.bit_data.minute = 10;
|
||||
bm8563ClearAlarmFlag(); //<2F><><EFBFBD><EFBFBD>0
|
||||
bm8563SetAlarm(&wake_time_10min);//<2F><><EFBFBD><EFBFBD>10<31><30><EFBFBD><EFBFBD>
|
||||
}
|
||||
else if(POWER_WORKING == powerstate)//<2F><><EFBFBD>ڹ<EFBFBD><DAB9><EFBFBD>״̬
|
||||
{
|
||||
*RgSTT = STATE_ON2; // <20><><EFBFBD><EFBFBD>״̬
|
||||
}
|
||||
else if(0 != memcmp(&waketimelast,&waketime,sizeof(UnTimeOutput)))//<2F>Ƚ<EFBFBD>ֵ<EFBFBD>Ƿ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
memcpy(&waketimelast,&waketime,sizeof(UnTimeOutput));
|
||||
bm8563SetAlarm(&waketime);
|
||||
*RgSTT = STATE_OFF2; // <20><><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD>Ѻ<EFBFBD><D1BA><EFBFBD><EFBFBD>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
else if(bm8563CheckAlarmFlag()) //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD>䵽
|
||||
{
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
||||
bm8563ClearAlarmFlag();
|
||||
bm8563SetAlarm(&sleeptime);
|
||||
KGF_PIN = 0; //KGF<47><46><EFBFBD><EFBFBD>
|
||||
CAN_PIN = 1; //canоƬ<D0BE><C6AC><EFBFBD><EFBFBD>
|
||||
BATTERY_PIN = 0;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
*RgSTT = STATE_OFF2; // <20><><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD>Ѻ<EFBFBD><D1BA><EFBFBD><EFBFBD>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD>
|
||||
PS_vSetPowerDown();//<2F><><EFBFBD><EFBFBD>
|
||||
}
|
||||
else
|
||||
{
|
||||
*RgSTT = STATE_OFF2; // <20>ⲿ<EFBFBD><E2B2BF><EFBFBD><EFBFBD>
|
||||
}
|
||||
break;
|
||||
default:break;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// switch (*RgSTT)
|
||||
// {
|
||||
// //-------------------------------------------
|
||||
// case STATE_INIT:
|
||||
// if(1 == flgwakeecu)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// {
|
||||
// if (WAKE_UP_PIN == ON) {
|
||||
// *RgSTT = STATE_ON; // <20><><EFBFBD><EFBFBD>ΪON<4F><4E><EFBFBD><EFBFBD><EFBFBD>빤<EFBFBD><EBB9A4>״̬
|
||||
// } else {
|
||||
// *RgSTT = STATE_OFF; // <20><><EFBFBD><EFBFBD>ΪOFF<46><46>ֱ<EFBFBD>ӽ<EFBFBD><D3BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><D7BC>
|
||||
// }
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// *RgSTT = STATE_INIT;
|
||||
// }
|
||||
// break;
|
||||
|
||||
// //-------------------------------------------
|
||||
// case STATE_ON:
|
||||
// if( (WAKE_UP_PIN == OFF) || ( (STOP_PIN == OFF) && (POWER_STANDBY == powerstate) ) )//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܿ<EFBFBD><DCBF>ضϿ<D8B6><CFBF><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD>ذ<EFBFBD><D8B0><EFBFBD><EFBFBD>Ҵ<EFBFBD><D2B4><EFBFBD><EFBFBD>µ<EFBFBD>ģʽ
|
||||
// {
|
||||
// // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>´λ<C2B4><CEBB><EFBFBD>
|
||||
// bm8563SetAlarm(&sleeptime);
|
||||
// *RgSTT = STATE_OFF; // <20><><EFBFBD><EFBFBD>ΪOFF<46><46>ֱ<EFBFBD>ӽ<EFBFBD><D3BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><D7BC>
|
||||
// KGF_PIN = 0; //KGF<47><46><EFBFBD><EFBFBD>
|
||||
// CAN_PIN = 1; //canоƬ<D0BE><C6AC><EFBFBD><EFBFBD>
|
||||
// PS_vSetPowerDown();//<2F><><EFBFBD><EFBFBD>
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// *RgSTT = STATE_ON; // <20><><EFBFBD><EFBFBD>ΪON<4F><4E><EFBFBD><EFBFBD><EFBFBD>빤<EFBFBD><EBB9A4>״̬
|
||||
// }
|
||||
// // <20><><EFBFBD><EFBFBD>ON״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// break;
|
||||
|
||||
// //-------------------------------------------
|
||||
// case STATE_OFF:
|
||||
// if (WAKE_UP_PIN == ON) {
|
||||
// *RgSTT = STATE_ON; // <20>ⲿ<EFBFBD><E2B2BF><EFBFBD><EFBFBD>
|
||||
// } else {
|
||||
// // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>´λ<C2B4><CEBB><EFBFBD>
|
||||
// bm8563SetAlarm(&waketime);
|
||||
//
|
||||
// memcpy(&waketimelast,&waketime,sizeof(UnTimeOutput));
|
||||
//
|
||||
// *RgSTT = STATE_OFF2; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><DFBC><EFBFBD>
|
||||
// }
|
||||
// break;
|
||||
|
||||
// //-------------------------------------------
|
||||
// case STATE_OFF2:
|
||||
// if (WAKE_UP_PIN == ON) //<2F>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// {
|
||||
// *RgSTT = STATE_ON; // <20>ⲿ<EFBFBD><E2B2BF><EFBFBD><EFBFBD>
|
||||
// }
|
||||
// else if(0 != memcmp(&waketimelast,&waketime,sizeof(UnTimeOutput)))//<2F>Ƚ<EFBFBD>ֵ<EFBFBD>Ƿ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// {
|
||||
// memcpy(&waketimelast,&waketime,sizeof(UnTimeOutput));
|
||||
// bm8563SetAlarm(&waketime);
|
||||
// *RgSTT = STATE_OFF2; // <20><><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD>Ѻ<EFBFBD><D1BA><EFBFBD><EFBFBD>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD>
|
||||
// }
|
||||
// else if (bm8563CheckAlarmFlag())
|
||||
// {
|
||||
// // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
||||
// bm8563ClearAlarmFlag();
|
||||
//
|
||||
// bm8563SetAlarm(&sleeptime);
|
||||
// KGF_PIN = 0; //KGF<47><46><EFBFBD><EFBFBD>
|
||||
// CAN_PIN = 1; //canоƬ<D0BE><C6AC><EFBFBD><EFBFBD>
|
||||
// *RgSTT = STATE_OFF2; // <20><><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD>Ѻ<EFBFBD><D1BA><EFBFBD><EFBFBD>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD>
|
||||
// PS_vSetPowerDown();//<2F><><EFBFBD><EFBFBD>
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// *RgSTT = STATE_OFF2; // <20>ⲿ<EFBFBD><E2B2BF><EFBFBD><EFBFBD>
|
||||
// }
|
||||
// break;
|
||||
// default:break;
|
||||
// }
|
||||
|
||||
if( (WAKE_UP_PIN == OFF) || (POWER_STANDBY == powerstate) )//<2F>ܿ<EFBFBD><DCBF>عرջ<D8B1><D5BB>߽<EFBFBD><DFBD><EFBFBD>standy
|
||||
{
|
||||
bm8563SetTime(&inittime);//20250802 <20><>ʼ<EFBFBD><CABC>ʱ<EFBFBD><CAB1> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊʱ<CEAA>䲻<EFBFBD>Ե<EFBFBD><D4B5><EFBFBD><EFBFBD><EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bm8563SetAlarm(&sleeptime);
|
||||
KGF_PIN = 0; //KGF<47><46><EFBFBD><EFBFBD>
|
||||
CAN_PIN = 1; //canоƬ<D0BE><C6AC><EFBFBD><EFBFBD>
|
||||
BATTERY_PIN = 0;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
*RgSTT = STATE_INIT; // <EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
PS_vSetPowerDown();//<2F><><EFBFBD><EFBFBD>
|
||||
}
|
||||
else
|
||||
{
|
||||
*RgSTT = STATE_ON2; // <20><><EFBFBD><EFBFBD>
|
||||
}
|
||||
break;
|
||||
default:;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
//CAN<41><4E><EFBFBD>ͽ<EFBFBD><CDBD><EFBFBD>
|
||||
void CanRXTX(void)
|
||||
{
|
||||
@@ -417,6 +256,7 @@ void CanRXTX(void)
|
||||
UnInfCan_1.ArrData.ArrRX[0][6] = StrCanRx.ulDATAH.ubDB[1];
|
||||
UnInfCan_1.ArrData.ArrRX[0][5] = StrCanRx.ulDATAH.ubDB[2];
|
||||
UnInfCan_1.ArrData.ArrRX[0][4] = StrCanRx.ulDATAH.ubDB[3];
|
||||
|
||||
|
||||
CAN_vReleaseObj(DF_SwRx);
|
||||
|
||||
@@ -426,7 +266,10 @@ void CanRXTX(void)
|
||||
|
||||
//<2F>趨<EFBFBD><E8B6A8><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
TimeTemp = UnInfCan_1.ArrData.ArrRX[0][0] + ((ulong)UnInfCan_1.ArrData.ArrRX[0][1] << 8) ;//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
|
||||
if(TimeTemp >= MAX_TIME)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>30<33><30>
|
||||
{
|
||||
TimeTemp = MAX_TIME;
|
||||
}
|
||||
// <20><><EFBFBD><EFBFBD> <20><> Сʱ
|
||||
HoursTemp = TimeTemp / 60;
|
||||
sleeptime.bit_data.minute = TimeTemp % 60;
|
||||
@@ -435,9 +278,9 @@ void CanRXTX(void)
|
||||
DaysTemp = HoursTemp / 24;
|
||||
sleeptime.bit_data.hour = HoursTemp % 24;
|
||||
|
||||
if(DaysTemp >= 31)//<2F>³<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ
|
||||
if(DaysTemp >= 30)//<2F>ճ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ
|
||||
{
|
||||
sleeptime.bit_data.day = 31;
|
||||
sleeptime.bit_data.day = 30;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -446,7 +289,10 @@ void CanRXTX(void)
|
||||
|
||||
//<2F>趨<EFBFBD><E8B6A8><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
TimeTemp = UnInfCan_1.ArrData.ArrRX[0][2] + ((ulong)UnInfCan_1.ArrData.ArrRX[0][3] << 8);//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
||||
|
||||
if(TimeTemp > MAX_TIME)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>30<33><30>
|
||||
{
|
||||
TimeTemp = MAX_TIME;
|
||||
}
|
||||
// <20><><EFBFBD><EFBFBD> <20><> Сʱ
|
||||
HoursTemp = TimeTemp / 60;
|
||||
waketime.bit_data.minute = TimeTemp % 60;
|
||||
@@ -455,9 +301,9 @@ void CanRXTX(void)
|
||||
DaysTemp = HoursTemp / 24;
|
||||
waketime.bit_data.hour = HoursTemp % 24;
|
||||
|
||||
if(DaysTemp >= 31)//<2F>³<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ
|
||||
if(DaysTemp >= 30)//<2F>ճ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ
|
||||
{
|
||||
waketime.bit_data.day = 31;
|
||||
waketime.bit_data.day = 30;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -465,9 +311,6 @@ void CanRXTX(void)
|
||||
}
|
||||
}
|
||||
|
||||
UnSwSample_1.arr[2] = waketime.bit_data.minute;
|
||||
UnSwSample_1.arr[1] = sleeptime.bit_data.minute;
|
||||
|
||||
//<2F><><EFBFBD>ߴ<EFBFBD><DFB4><EFBFBD>
|
||||
SystemStateMachine(&sleepstate);
|
||||
|
||||
@@ -478,10 +321,23 @@ void CanRXTX(void)
|
||||
FlgCan_1 = 1;
|
||||
|
||||
bm8563GetTime(¤ttime);//1s<31><73><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ʱ<EFBFBD><CAB1>
|
||||
// CanTX();
|
||||
|
||||
UnSwSample_1.bit_data.temperature[1] = 0;
|
||||
UnSwSample_1.bit_data.temperature[0] = 0;
|
||||
// <20><>ȡ<EFBFBD><C8A1><EFBFBD>ӣ<EFBFBD><D3A3><EFBFBD>ַ0x03<30><33>
|
||||
UnSwSample_1.arr[4] = (BM8563_ReadReg(BM8563_ALARM_MIN));
|
||||
|
||||
// <20><>ȡСʱ<D0A1><CAB1><EFBFBD><EFBFBD>ַ0x04<30><34>
|
||||
UnSwSample_1.arr[2] = (BM8563_ReadReg(BM8563_ALARM_HOUR)); // 24Сʱ<D0A1><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Bit6-7
|
||||
|
||||
// <20><>ȡ<EFBFBD>գ<EFBFBD><D5A3><EFBFBD>ַ0x05<30><35>
|
||||
UnSwSample_1.arr[1] = (BM8563_ReadReg(BM8563_ALARM_DAY)); // <20><><EFBFBD>ο<EFBFBD><CEBF><EFBFBD>λ
|
||||
|
||||
// <20><>ȡ<EFBFBD>գ<EFBFBD><D5A3><EFBFBD>ַ0x05<30><35>
|
||||
UnSwSample_1.arr[5] = (BM8563_ReadReg(BM8563_ALARM_DAY)); // <20><><EFBFBD>ο<EFBFBD><CEBF><EFBFBD>λ
|
||||
|
||||
// <20><>ȡ<EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD>ַ0x06<30><36>BM8563<36><33>ֵΪ0x01-0x07<30><37><EFBFBD><EFBFBD><EFBFBD><EFBFBD>BCDת<44><D7AA><EFBFBD><EFBFBD>
|
||||
UnSwSample_1.arr[3] = BM8563_ReadReg(BM8563_ALARM_WEEK); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3λ
|
||||
|
||||
CanTX();
|
||||
|
||||
if(vcu_can_cnt == vcu_can_last)//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
|
||||
{
|
||||
@@ -521,7 +377,7 @@ void CanRXTX(void)
|
||||
|
||||
if(1 == flg_KGF)//<2F>ȴ<EFBFBD>KGF<47><46><EFBFBD>Ѻ<EFBFBD><D1BA>ٷ<EFBFBD><D9B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
canSendTo(DF_SwTxTemp,(ubyte *)&UnSwSample_1);
|
||||
canSendTo(DF_SwTxTemp,(ubyte *)&UnSwSample_1.arr[0]);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -532,7 +388,7 @@ void CanRXTX(void)
|
||||
CAN_vInit();
|
||||
can_error_cnt = 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user