Commit 4e57820f authored by 陈家乐's avatar 陈家乐

feat:完事儿

parent 7f310018
......@@ -4,7 +4,7 @@
/*-------------------------------------------------------------------------
* Function Name : Api_CAN_Init
* Description : CAN初始化
* Description : CAN��ʼ��
* Input : None
* Output : None
* Return : None
......@@ -13,12 +13,12 @@
void Api_CAN_Init(void)
{
INT16U b = null;
CANCTL0_INITRQ = Enable; //准备初始化
CANCTL0_INITRQ = Enable; //׼����ʼ��
while(!CANCTL1_INITAK); //等待进入初始化模式
while(!CANCTL1_INITAK); //�ȴ������ʼ��ģʽ
CANCTL1 = CANCTL1_CANE_MASK | CANCTL1_BORM_MASK;
CANCTL1_WUPM = Disable; //所有显性唤醒
CANCTL1_WUPM = Disable; //�������Ի���
/*
SYNC_SEG + (PROP_SEG + PHASE_SEG1) + (PHASE_SEG2)
1 Tq 4--16 Tq 2--8 Tq
......@@ -26,13 +26,13 @@ void Api_CAN_Init(void)
CANBTR1_TSEG_10 = Seg1_5Tq; //351page 75% 75<= sp<=83
CANBTR1_TSEG_20 = Seg2_2Tq;
CANBTR0_SJW = SJW_1Tq; //重新同步
CANBTR0_SJW = SJW_1Tq; //����ͬ��
CANBTR1_SAMP = SAMP_1;
CANBTR0_BRP = 0x01; //0 500K 1 250K
CANBTR0_BRP = 0x00; //0 500K 1 250K
CANIDAC_IDAM = IDAM_2_32Bit;
CANIDAC_IDHIT = IDHIT0; //滤波器 0 有
CANIDAC_IDHIT = IDHIT0; //�˲��� 0 ��Ч
CANIDAR0 = null; //
CANIDAR1 = null;
......@@ -53,22 +53,22 @@ void Api_CAN_Init(void)
CANIDMR7 = 0xFF;
//
CANTIER = null;
CANCTL0_INITRQ = Disable; //完成初始化
while(CANCTL1_INITAK); //等待确认
CANCTL0_INITRQ = Disable; //��ɳ�ʼ��
while(CANCTL1_INITAK); //�ȴ�ȷ��
CANRFLG_RXF = ClearFlag;
CANRIER_RXFIE = Enable; //使能接收中断
CANTIER_TXEIE = Disable; //禁止发送中断
CANRIER_RXFIE = Enable; //ʹ�ܽ����ж�
CANTIER_TXEIE = Disable; //��ֹ�����ж�
CANCTL0_TIME = Enable; //使能时间戳
CANCTL0_CSWAI = WaitRun; //等待模式下可以运行
CANCTL0_TIME = Enable; //ʹ��ʱ���
CANCTL0_CSWAI = WaitRun; //�ȴ�ģʽ�¿�������
CANCTL0_WUPE = Enable;
}
/*-------------------------------------------------------------------------
* Function Name : GET_STAND_ID
* Description : 提取标准ID
* Input : IDR0_Add -> 对应的IDR0的地
* Description : ��ȡ��׼ID
* Input : IDR0_Add -> ��Ӧ��IDR0�ĵ�ַ
* Output : None
* Return : dwPGN
* onther :
......@@ -178,8 +178,8 @@ INT8U Api_CANSendFrame(CAN_message * CanMessage)
/*-------------------------------------------------------------------------
* Function Name : Api_CAN_Rev_isr
* Description : 提取标准ID
* Input : IDR0_Add -> 对应的IDR0的地
* Description : ��ȡ��׼ID
* Input : IDR0_Add -> ��Ӧ��IDR0�ĵ�ַ
* Output : None
* Return : dwPGN
* onther :
......@@ -194,13 +194,13 @@ interrupt void Api_CAN_Rev_isr(void)
switch(stand_id)
{
case 0x18DAF917: //车速
case 0x18DAF917: //����
if(m_dlc == 8)
{
UDS_Receive_Main(&CANRXDSR0);
}
break;
break;
default:
;
......
......@@ -499,7 +499,7 @@ interrupt void Api_RTC_isr(void)
Key.CAN_Step++;
if(Key.CAN_Step > 10)
{
Key.CAN_Step = 1;
Key.CAN_Step = 0;
}
}
}
......
......@@ -178,35 +178,35 @@ void App_Can_Proc(void)
if(GetCtrlTime(CANMsgSend_10ms) >= 10){
// ClearCtrlTime(CANMsgSend_10ms);
//bReturn = Api_CANSendFrame((CAN_message *)&CanMsg_101);
// Clear_CAN_Msg((CAN_message *)&CanMsg_101);
bReturn = Api_CANSendFrame((CAN_message *)&CanMsg_101);
Clear_CAN_Msg((CAN_message *)&CanMsg_101);
//
//bReturn = Api_CANSendFrame((CAN_message *)&CanMsg_111);
// Clear_CAN_Msg((CAN_message *)&CanMsg_111);
//
//bReturn = Api_CANSendFrame((CAN_message *)&CanMsg_37B);
// Clear_CAN_Msg((CAN_message *)&CanMsg_37B);
bReturn = Api_CANSendFrame((CAN_message *)&CanMsg_37B);
Clear_CAN_Msg((CAN_message *)&CanMsg_37B);
//
//bReturn = Api_CANSendFrame((CAN_message *)&CanMsg_12B);
// Clear_CAN_Msg((CAN_message *)&CanMsg_12B);
//
//bReturn = Api_CANSendFrame((CAN_message *)&CanMsg_402);
// Clear_CAN_Msg((CAN_message *)&CanMsg_402);
bReturn = Api_CANSendFrame((CAN_message *)&CanMsg_18202922);
Clear_CAN_Msg((CAN_message *)&CanMsg_18202922);
bReturn = Api_CANSendFrame((CAN_message *)&CanMsg_125);
Clear_CAN_Msg((CAN_message *)&CanMsg_125);
bReturn = Api_CANSendFrame((CAN_message *)&CanMsg_157);
Clear_CAN_Msg((CAN_message *)&CanMsg_157);
bReturn = Api_CANSendFrame((CAN_message *)&CanMsg_SOC);
Clear_CAN_Msg((CAN_message *)&CanMsg_SOC);
bReturn = Api_CANSendFrame((CAN_message *)&CanMsg_SOC1);
Clear_CAN_Msg((CAN_message *)&CanMsg_SOC1);
bReturn = Api_CANSendFrame((CAN_message *)&CanMsg_SOC2);
Clear_CAN_Msg((CAN_message *)&CanMsg_SOC2);
bReturn = Api_CANSendFrame((CAN_message *)&CanMsg_38E);
Clear_CAN_Msg((CAN_message *)&CanMsg_38E);
bReturn = Api_CANSendFrame((CAN_message *)&CanMsg_402);
Clear_CAN_Msg((CAN_message *)&CanMsg_402);
//bReturn = Api_CANSendFrame((CAN_message *)&CanMsg_18202922);
// Clear_CAN_Msg((CAN_message *)&CanMsg_18202922);
//bReturn = Api_CANSendFrame((CAN_message *)&CanMsg_125);
// Clear_CAN_Msg((CAN_message *)&CanMsg_125);
//bReturn = Api_CANSendFrame((CAN_message *)&CanMsg_157);
// Clear_CAN_Msg((CAN_message *)&CanMsg_157);
//bReturn = Api_CANSendFrame((CAN_message *)&CanMsg_SOC);
// Clear_CAN_Msg((CAN_message *)&CanMsg_SOC);
//bReturn = Api_CANSendFrame((CAN_message *)&CanMsg_SOC1);
// Clear_CAN_Msg((CAN_message *)&CanMsg_SOC1);
//bReturn = Api_CANSendFrame((CAN_message *)&CanMsg_SOC2);
// Clear_CAN_Msg((CAN_message *)&CanMsg_SOC2);
//bReturn = Api_CANSendFrame((CAN_message *)&CanMsg_38E);
// Clear_CAN_Msg((CAN_message *)&CanMsg_38E);
//bReturn = Api_CANSendFrame((CAN_message *)&CanMessageID18FEDCD5);
//bReturn = Api_CANSendFrame((CAN_message *)&CanMessageID18FEDED5);
......@@ -271,25 +271,25 @@ void App_Can_Proc(void)
//CurValueStr[ENUM_VSpeed ].val = 0;
CurValueStr[ENUM_RSpeed ].val = 0;
CurValueStr[ENUM_WaterTemp ].val = 0;
CurValueStr[TCS_Warning_Lamp ].val = 0;
CurValueStr[TCS_Work_Mode ].val = 0;
CurValueStr[ISG_Power ].val = 0;
CurValueStr[ISG_Power_Enable ].val = 0;
CurValueStr[ECU_Warning_Lamp ].val = 0;
CurValueStr[MMCU_PowerMode ].val = 0;
//CurValueStr[ENUM_RSpeed ].val = 0;
//CurValueStr[ENUM_WaterTemp ].val = 0;
//CurValueStr[TCS_Warning_Lamp ].val = 0;
//CurValueStr[TCS_Work_Mode ].val = 0;
//CurValueStr[ISG_Power ].val = 0;
//CurValueStr[ISG_Power_Enable ].val = 0;
//CurValueStr[ECU_Warning_Lamp ].val = 0;
//CurValueStr[MMCU_PowerMode ].val = 0;
//
//
CurValueStr[ENUM_VSpeed ].fval = Value_Plus;
CurValueStr[ENUM_RSpeed ].fval = Value_Plus;
CurValueStr[ENUM_WaterTemp ].fval = Value_Plus;
CurValueStr[TCS_Warning_Lamp ].fval = Value_Plus;
CurValueStr[TCS_Work_Mode ].fval = Value_Plus;
CurValueStr[ISG_Power ].fval = Value_Plus;
CurValueStr[ISG_Power_Enable ].fval = Value_Plus;
CurValueStr[ECU_Warning_Lamp ].fval = 1;
CurValueStr[MMCU_PowerMode ].fval = 1;
//CurValueStr[ENUM_WaterTemp ].fval = Value_Plus;
//CurValueStr[TCS_Warning_Lamp ].fval = Value_Plus;
//CurValueStr[TCS_Work_Mode ].fval = Value_Plus;
//CurValueStr[ISG_Power ].fval = Value_Plus;
//CurValueStr[ISG_Power_Enable ].fval = Value_Plus;
//CurValueStr[ECU_Warning_Lamp ].fval = 1;
//CurValueStr[MMCU_PowerMode ].fval = 1;
......
......@@ -53,7 +53,7 @@ void APP_Button_Proc(void){
//count_flag_a = 1;
Key.CAN_Step++;
if(Key.CAN_Step > STEP_MAX){
Key.CAN_Step = 1;
Key.CAN_Step = 0;
}
}
Key.PushTime_1 = null;
......@@ -79,6 +79,11 @@ void APP_Button_Proc(void){
#define TireTemp(value) CurValueStr[ENUM_TireTemp_LF ].val = value; CurValueStr[ENUM_TireTemp_RF ].val = value; CurValueStr[ENUM_TireTemp_LR ].val = value; CurValueStr[ENUM_TireTemp_RR ].val = value;
//uint16_t VSpeed(uint16_t speed)
//{
// return (speed * 108)/100;
//}
#define VSpeed(speed) ((speed * 100)/108 + 1)
unsigned int lost_flag = 0;
unsigned int CAN_init_flag = 0;
unsigned int CAN_lost_flag = 0;
......@@ -96,175 +101,85 @@ void APP_ICM_Proc(void) /*zh321*/ /*FS04*/
// Disable_CAN_Tx();
// CAN_lost_flag = 0;
// }
CurValueStr[MMCU_PowerMode ].val = 2;
CurValueStr[ECU_Warning_Lamp ].val = 0;
CurValueStr[TCS_Warning_Lamp ].val = 0;
//if(count_flag_a==1)
{//Format_CAN_Msg();
switch(Key.CAN_Step)
{
// CurValueStr[ ].val = ;
// CurValueStr[ ].val = ;
// CurValueStr[ ].val = ;
// CurValueStr[ ].val = ;
// CurValueStr[ ].val = ;
// CurValueStr[ENUM_VSpeed ].val = ;
// CurValueStr[ENUM_RSpeed ].val = ;
#if 1
case 0:
CurValueStr[ENUM_VSpeed ].val = 0;//VSpeed(20);
CurValueStr[ENUM_RSpeed ].val = 0;
break;
case 1:
{
CurValueStr[BMCU_Moto1_Locked_RotorFault ].val = 0; //刀盘过载
CurValueStr[MMCU_SeatDetectState ].val = 0; //座椅检测
CurValueStr[MBMS_TOTALSigAcc ].val = 0; //钥匙接入
CurValueStr[MBMS_TOTALSigCharg ].val = 0; //充电指示灯
CurValueStr[MMCU_PowerMode ].val = 2; // READY灯 充电灯和ready冲突
CurValueStr[BMCU_PTOSwicthState ].val = 0;
//CurValueStr[ENUM_VSpeed ].val
CurValueStr[MBMS_Soc1 ].val = 10;
CurValueStr[MBMS_Soc2 ].val = 10;
CurValueStr[MMCU_TravelSpeedGear ].val = 1;
CurValueStr[BMCU_BladeSpeedGear ].val = 0;
CurValueStr[MBMS_StatSoc ].val = 10;
CurValueStr[BMCU_Moto1_Locked_RotorFault ].val = 0;
CurValueStr[ENUM_VSpeed ].val = VSpeed(20);
CurValueStr[ENUM_RSpeed ].val = 1000;
}break;
case 2:
{
CurValueStr[BMCU_Moto1_Locked_RotorFault ].val = 1;
CurValueStr[MBMS_Soc1 ].val = 30;
CurValueStr[MBMS_Soc2 ].val = 30;
CurValueStr[MMCU_TravelSpeedGear ].val = 2;
CurValueStr[BMCU_BladeSpeedGear ].val = 1;
CurValueStr[MBMS_StatSoc ].val = 30;
CurValueStr[MMCU_SeatDetectState ].val = 0;
CurValueStr[ENUM_VSpeed ].val = VSpeed(40);
CurValueStr[ENUM_RSpeed ].val = 2000;
}break;
case 3:
{
CurValueStr[BMCU_Moto1_Locked_RotorFault ].val = 0;
CurValueStr[MMCU_SeatDetectState ].val =1 ;
CurValueStr[MBMS_Soc1 ].val = 50;
CurValueStr[MBMS_Soc2 ].val = 50;
CurValueStr[MMCU_TravelSpeedGear ].val = 0;
CurValueStr[MMCU_ParkingGearState ].val = 1;
CurValueStr[BMCU_BladeSpeedGear ].val = 2;
CurValueStr[MBMS_StatSoc ].val = 50;
CurValueStr[MBMS_TOTALSigAcc ].val = 0;
CurValueStr[ENUM_VSpeed ].val = VSpeed(60);
CurValueStr[ENUM_RSpeed ].val = 3000;
}break;
case 4:
{
CurValueStr[MMCU_SeatDetectState ].val = 0;
CurValueStr[MBMS_TOTALSigAcc ].val = 1;
CurValueStr[MBMS_Soc1 ].val = 70;
CurValueStr[MBMS_Soc2 ].val = 70;
CurValueStr[MMCU_TravelSpeedGear ].val = 0;
CurValueStr[MMCU_ParkingGearState ].val = 1;
CurValueStr[BMCU_BladeSpeedGear ].val = 3;
CurValueStr[MBMS_StatSoc ].val = 70;
CurValueStr[MMCU_PowerMode ].val = 2;
CurValueStr[ECU_Warning_Lamp ].val = 1;
CurValueStr[ENUM_VSpeed ].val = VSpeed(80);
CurValueStr[ENUM_RSpeed ].val = 4000;
}break;
case 5:
{
CurValueStr[MBMS_TOTALSigAcc ].val = 0;
CurValueStr[MMCU_PowerMode ].val = 3;
CurValueStr[MBMS_Soc1 ].val = 100;
CurValueStr[MBMS_Soc2 ].val = 100;
CurValueStr[MMCU_TravelSpeedGear ].val = 0;
CurValueStr[MMCU_ParkingGearState ].val = 1;
CurValueStr[BMCU_BladeSpeedGear ].val = 3;
CurValueStr[MBMS_StatSoc ].val = 100;
CurValueStr[ENUM_VSpeed ].val = VSpeed(100);
CurValueStr[ENUM_RSpeed ].val = 5000;
}break;
case 6:
{
CurValueStr[MMCU_PowerMode ].val = 5;
CurValueStr[MBMS_TOTALSigAcc ].val = 1;
CurValueStr[MBMS_TOTALSigCharg ].val = 1;
CurValueStr[MBMS_Soc1 ].val = 100;
CurValueStr[MBMS_Soc2 ].val = 100;
CurValueStr[MMCU_TravelSpeedGear ].val = 0;
CurValueStr[MMCU_ParkingGearState ].val = 1;
CurValueStr[BMCU_BladeSpeedGear ].val = 3;
CurValueStr[MBMS_StatSoc ].val = 100;
//CurValueStr[MBMS_TOTALSigAcc ].val = 0;
//CurValueStr[MBMS_TOTALSigCharg ].val = 1;
CurValueStr[BMCU_PTOSwicthState ].val = 0;
CurValueStr[ENUM_VSpeed ].val = VSpeed(120);
CurValueStr[ENUM_RSpeed ].val = 6000;
}break;
case 7:
{
CurValueStr[MMCU_PowerMode ].val = 2;
CurValueStr[MBMS_TOTALSigAcc ].val = 0;
CurValueStr[MBMS_TOTALSigCharg ].val = 0;
CurValueStr[BMCU_PTOSwicthState ].val = 1;
CurValueStr[MBMS_Soc1 ].val = 100;
CurValueStr[MBMS_Soc2 ].val = 100;
CurValueStr[MMCU_TravelSpeedGear ].val = 0;
CurValueStr[MMCU_ParkingGearState ].val = 1;
CurValueStr[BMCU_BladeSpeedGear ].val = 3;
CurValueStr[MBMS_StatSoc ].val = 100;
CurValueStr[ENUM_VSpeed ].val = VSpeed(140);
CurValueStr[ENUM_RSpeed ].val = 7000;
}break;
case 8:
{
CurValueStr[BMCU_PTOSwicthState ].val = 0;
CurValueStr[MBMS_Soc1 ].val = 100;
CurValueStr[MBMS_Soc2 ].val = 100;
CurValueStr[MMCU_TravelSpeedGear ].val = 0;
CurValueStr[MMCU_ParkingGearState ].val = 1;
CurValueStr[BMCU_BladeSpeedGear ].val = 3;
CurValueStr[MBMS_StatSoc ].val = 100;
CurValueStr[TCS_Warning_Lamp ].val = 1;
CurValueStr[ENUM_VSpeed ].val = VSpeed(160);
CurValueStr[ENUM_RSpeed ].val = 8000;
}break;
case 9:
{
CurValueStr[MBMS_Soc1 ].val = 100;
CurValueStr[MBMS_Soc2 ].val = 100;
CurValueStr[MMCU_TravelSpeedGear ].val = 0;
CurValueStr[MMCU_ParkingGearState ].val = 1;
CurValueStr[BMCU_BladeSpeedGear ].val = 3;
CurValueStr[MBMS_StatSoc ].val = 100;
CurValueStr[BMCU_Moto1_Locked_RotorFault ].val = 0; //刀盘过载
CurValueStr[MMCU_SeatDetectState ].val = 0; //座椅检测
CurValueStr[MBMS_TOTALSigAcc ].val = 0; //钥匙接入
CurValueStr[MBMS_TOTALSigCharg ].val = 0; //充电指示灯
CurValueStr[MMCU_PowerMode ].val = 2; // READY灯
CurValueStr[BMCU_PTOSwicthState ].val = 0;
CurValueStr[ENUM_VSpeed ].val = VSpeed(180);
CurValueStr[ENUM_RSpeed ].val = 10000;
}break;
case 10:
{
CurValueStr[BMCU_Moto1_Locked_RotorFault ].val = 1; //刀盘过载
CurValueStr[MMCU_SeatDetectState ].val = 1; //座椅检测
CurValueStr[MBMS_TOTALSigAcc ].val = 1; //钥匙接入
CurValueStr[MBMS_TOTALSigCharg ].val = 1; //充电指示灯
CurValueStr[MMCU_PowerMode ].val = 3; // READY灯 充电灯和ready冲突
CurValueStr[BMCU_PTOSwicthState ].val = 1;
CurValueStr[MBMS_Soc1 ].val = 100;
CurValueStr[MBMS_Soc2 ].val = 100;
CurValueStr[MMCU_TravelSpeedGear ].val = 0;
CurValueStr[MMCU_ParkingGearState ].val = 1;
CurValueStr[BMCU_BladeSpeedGear ].val = 3;
CurValueStr[MBMS_StatSoc ].val = 100;
CurValueStr[ECU_Warning_Lamp ].val = 1;
CurValueStr[TCS_Warning_Lamp ].val = 1;
CurValueStr[ENUM_VSpeed ].val = VSpeed(199);
CurValueStr[ENUM_RSpeed ].val = 12000;
}break;
case 11:
......@@ -276,6 +191,8 @@ void APP_ICM_Proc(void) /*zh321*/ /*FS04*/
{
}break;
#endif
}
}
......
......@@ -39,6 +39,13 @@ typedef struct{
enum
{
ENUM_VSpeed = 0,//����
ENUM_RSpeed,
ECU_Warning_Lamp,
TCS_Warning_Lamp,
CAN_List_Num ,
#if 0
ENUM_VSpeed = 0,//����
ENUM_RSpeed ,//�??�??
ENUM_WaterTemp ,// 温度
......@@ -70,12 +77,19 @@ enum
BMCU_Moto1_Locked_RotorFault,
CAN_List_Num ,
#endif
};
EXTERN_APP_TEST volatile s_CurValue CurValueStr[CAN_List_Num];
static const s_CAN_List CAN_List[] =
{
{&CanMsg_101, 2, 0, 8, 0, Offset_Plus, 1, 1, &CurValueStr[ENUM_VSpeed ], Motorola},
{&CanMsg_101, 1, 0, 16, 0, Offset_Plus, 100, 25, &CurValueStr[ENUM_RSpeed ], Motorola},
{&CanMsg_402, 7, 7, 1, 0, Offset_Plus, 1, 1, &CurValueStr[ECU_Warning_Lamp ], Motorola},
{&CanMsg_37B, 3, 2, 1, 0, Offset_Plus, 1, 1, &CurValueStr[TCS_Warning_Lamp ], Motorola}
#if 0
{&CanMsg_101, 2, 0, 8, 0, Offset_Plus, 1, 1, &CurValueStr[ENUM_VSpeed ], Motorola},
{&CanMsg_101, 1, 0, 16, 0, Offset_Plus, 100, 25, &CurValueStr[ENUM_RSpeed ], Motorola},
{&CanMsg_101, 5, 0, 16, 273, Offset_Minus, 10, 1, &CurValueStr[ENUM_WaterTemp ], Motorola},
......@@ -109,7 +123,7 @@ static const s_CAN_List CAN_List[] =
{&CanMsg_SOC, 4, 0, 8, 0, Offset_Plus, 1, 1, &CurValueStr[MBMS_StatSoc ], Motorola},
{&CanMsg_38E, 1, 0, 1, 0, Offset_Plus, 1, 1, &CurValueStr[BMCU_Moto1_Locked_RotorFault ], Motorola},
#endif
};
......
......@@ -10,7 +10,7 @@ Target=USBDM
Layout=C_layout.hwl
LoadDialogOptions=AUTOERASEANDFLASH RUNANDSTOPAFTERLOAD="main"
CPU=HC12
MainFrame=0,1,-1,-1,-1,-1,1368,-956,2520,-291
MainFrame=0,1,-1,-1,-1,-1,-634,-383,518,282
TOOLBAR=57600 57601 32795 0 57635 57634 57637 0 57671 57669 0 32777 32776 32782 32780 32781 32778 0 32806
AEFWarningDialog=FALSE
......@@ -45,7 +45,7 @@ NV_AUTO_ID=1
[USBDM]
COMSETTINGS=SETCOMM DRIVER NOPROTOCOL NOPERIODICAL
NV_PARAMETER_FILE=C:\Program Files (x86)\Freescale\CWS12v5.1\prog\FPP\mcu02F2.fpp
NV_PARAMETER_FILE=
NV_SAVE_WSP=0
NV_AUTO_ID=1
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment