Commit eb64547d authored by 郑萍's avatar 郑萍

Merge branch 'dev' of http://tyw-server.synology.me:12345/shihao/haojin750tft into zhengping

parents 17aa366e 77d95c2f
...@@ -275,7 +275,7 @@ ...@@ -275,7 +275,7 @@
</OCR_RVCT3> </OCR_RVCT3>
<OCR_RVCT4> <OCR_RVCT4>
<Type>1</Type> <Type>1</Type>
<StartAddress>0x0</StartAddress> <StartAddress>0xc400</StartAddress>
<Size>0x73c00</Size> <Size>0x73c00</Size>
</OCR_RVCT4> </OCR_RVCT4>
<OCR_RVCT5> <OCR_RVCT5>
...@@ -361,7 +361,7 @@ ...@@ -361,7 +361,7 @@
</VariousControls> </VariousControls>
</Aads> </Aads>
<LDads> <LDads>
<umfTarg>1</umfTarg> <umfTarg>0</umfTarg>
<Ropi>0</Ropi> <Ropi>0</Ropi>
<Rwpi>0</Rwpi> <Rwpi>0</Rwpi>
<noStLib>0</noStLib> <noStLib>0</noStLib>
...@@ -718,6 +718,16 @@ ...@@ -718,6 +718,16 @@
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\..\..\..\Source\Application\Can_User.c</FilePath> <FilePath>..\..\..\..\Source\Application\Can_User.c</FilePath>
</File> </File>
<File>
<FileName>FaultCode.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\..\Source\Application\FaultCode.c</FilePath>
</File>
<File>
<FileName>FaultCode.h</FileName>
<FileType>5</FileType>
<FilePath>..\..\..\..\Source\Application\FaultCode.h</FilePath>
</File>
</Files> </Files>
</Group> </Group>
<Group> <Group>
......
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
; *** Scatter-Loading Description File generated by uVision *** ; *** Scatter-Loading Description File generated by uVision ***
; ************************************************************* ; *************************************************************
LR_IROM1 0x00000000 0x00073C00 { ; load region size_region LR_IROM1 0x0000c400 0x00073C00 { ; load region size_region
ER_IROM1 0x00000000 0x00073C00 { ; load address = execution address ER_IROM1 0x0000c400 0x00073C00 { ; load address = execution address
*.o (RESET, +First) *.o (RESET, +First)
*(InRoot$$Sections) *(InRoot$$Sections)
.ANY (+RO) .ANY (+RO)
...@@ -12,8 +12,8 @@ LR_IROM1 0x00000000 0x00073C00 { ; load region size_region ...@@ -12,8 +12,8 @@ LR_IROM1 0x00000000 0x00073C00 { ; load region size_region
RW_IRAM1 0x20000000 0x0000FF00 { ; RW data RW_IRAM1 0x20000000 0x0000FF00 { ; RW data
.ANY (+RW +ZI) .ANY (+RW +ZI)
} }
RW_IRAM2 0x2000FF00 0x00000100 { RW_IRAM2 0x2000FF00 0x00000100 { ; RW data
.ANY (+RW +ZI) .ANY (RW_FUNC_PLL)
} }
} }
#include "Backlight.h" #include "Backlight.h"
#include "Components.h" #include "Components.h"
#define BACK_LIGHT_Val_1 100
#define BACK_LIGHT_Val_2 300
#define BACK_LIGHT_Val_3 500
#define BACK_LIGHT_Val_4 700
#define BACK_LIGHT_Val_5 900
#define LIGHT_DATA_TIME 10u /*这里填写多长时间采集一个数据,单位ms*/
#define LIGHT_DATA_NUM 20u /*燃油电阻采集数据总数 最大255*/
#define LIGHT_CAL_START 5u /*数据排序后取中间部分计算平均:起始*/
#define LIGHT_CAL_END 15u /*数据排序后取中间部分计算平均:结束*/
Light_uint8_t LightADCompleteFlg = 0u;
Light_uint16_t LightR = 0u;
Light_uint16_t LightR_Status = 0;
Light_uint16_t LightR_Status_Count = 0u;
Light_uint16_t NtcDataCount;
Light_uint16_t NtcData[LIGHT_DATA_NUM];
typedef struct typedef struct
{ {
Light_uint16_t Temperature; /* 温度 */ Light_uint16_t Temperature; /* 温度 */
...@@ -41,6 +57,106 @@ _st_BacklightLevel BacklightLevelTable[BacklightLevel_Max] = ...@@ -41,6 +57,106 @@ _st_BacklightLevel BacklightLevelTable[BacklightLevel_Max] =
}; };
void Data_Light_Res_service(Light_uint8_t deltaTime)//获取光感阻值,并做平均
{
uint16_t LightRes = 0;
uint8_t i, j;
uint32_t temp32;
static uint16_t timeCount = 0;
if(GET_Backlight() == Backlight_ATUO)
{
if (timeCount >= LIGHT_DATA_TIME)
{
timeCount = 0;
if (NtcDataCount < LIGHT_DATA_NUM)
{
/*获取光敏电阻*/
LightRes = ADC_Read_Signal(ADC_CH_LIGHT_SENSITIVE); // ADC_Read_Signal(ADC_CH_FUEL1);
/*四舍五入*/
if (LightRes < 32000)
{
if (LightRes % 10 >= 5)
{
LightRes += 5;
}
}
else
{
LightRes = 32000;
}
/*由小到大插入数据*/
for (i = 0; i < NtcDataCount; i++)
{
if (LightRes < NtcData[i])
{
break;
}
}
for (j = NtcDataCount; j > i; j--)
{
NtcData[j] = NtcData[j - 1];
}
NtcData[i] = LightRes;
NtcDataCount++;
}
else
{
/*一组数据采集完毕,取中间部分计算平均值*/
temp32 = 0;
for (i = LIGHT_CAL_START; i < LIGHT_CAL_END; i++)
{
temp32 += NtcData[i];
}
LightR = (uint16_t) (temp32 / (LIGHT_CAL_END - LIGHT_CAL_START));
NtcDataCount = 0;
LightADCompleteFlg = 1;
}
}
timeCount += deltaTime;
if(LightADCompleteFlg)
{
if(LightR_Status == 0)
{
if(LightR >20)
{
LightR_Status_Count++;
}
else
{
LightR_Status_Count = 0 ;
}
TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, 200);
}
else
{
if(LightR <20)
{
LightR_Status_Count++;
}
else
{
LightR_Status_Count = 0 ;
}
TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, 800);
}
if(LightR_Status_Count>=150)
{
LightR_Status_Count = 0;
LightR_Status = !LightR_Status;
}
}
}
else
{
BackLight_Process();
}
}
Light_uint16_t GetBacklightDutyByLevel(Light_uint16_t level) Light_uint16_t GetBacklightDutyByLevel(Light_uint16_t level)
...@@ -377,4 +493,32 @@ void BackLight_Service(void) ...@@ -377,4 +493,32 @@ void BackLight_Service(void)
{ {
Backlight_Operate.SetPwmCbk(0); Backlight_Operate.SetPwmCbk(0);
} }
} }
\ No newline at end of file
void BackLight_Process(void)
{
if(Menu_Item_Select_Get(MENU_ITEM_BACKLIGHT_5) == 1)
{
TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, BACK_LIGHT_Val_5);
}
else if(Menu_Item_Select_Get(MENU_ITEM_BACKLIGHT_4) == 1)
{
TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, BACK_LIGHT_Val_4);
}
else if(Menu_Item_Select_Get(MENU_ITEM_BACKLIGHT_3) == 1)
{
TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, BACK_LIGHT_Val_3);
}
else if(Menu_Item_Select_Get(MENU_ITEM_BACKLIGHT_2) == 1)
{
TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, BACK_LIGHT_Val_2);
}
else if(Menu_Item_Select_Get(MENU_ITEM_BACKLIGHT_1) == 1)
{
TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, BACK_LIGHT_Val_1);
}
else
{
TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, BACK_LIGHT_Val_4);
}
}
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
#endif /* NULL */ #endif /* NULL */
void Backlight_KL30_Wakeup_Init(void); void Backlight_KL30_Wakeup_Init(void);
void BackLight_Process(void);
......
#include "FaultCode.h"
static _st_Init FaultCodeInit;
static uint16_t u16FaultCodeDtcCount = 0;
static uint16_t u16FaultCodeDtcCountBack = 0;
static uint16_t u16FaultCodeDtcCounttemp = 0;
static _st_FaultCode stFaultCode[MaxFaultCode] = {0};
static _st_FaultCode stFaultCodeBack[MaxFaultCode] = {0};
static _st_FaultCode stFaultCodetemp[MaxFaultCode] = {0};
static uint8_t u8FaultCodeValid = 0;
uint32_t Get_FaultCodeDtc1(void)
{
uint32_t u16FaultCode = 0x0000;
uint8_t DTCH1 = 0;
uint8_t DTCM1 = 0;
uint32_t DTC1 = 0;
DTCH1 = Get_CAN_CH0_ID_402_Sig_ECU_DTCH1();
DTCM1 = Get_CAN_CH0_ID_402_Sig_ECU_DTCM1();
if(DTCH1 > 0)
{
DTC1 |= (DTCH1 & 0xFF);
}
else
{
;
}
DTC1 <<= 8;
if(DTCM1 > 0)
{
DTC1 |= (DTCM1 & 0xFF);
}
else
{
;
}
// if (((DTCH1 & 0xF0) >> 4) >= 0xA)
// {
// DTC1 |= ((DTCH1 & 0xF0) >> 4);
// }
// else
// {
// DTC1 |= (DTCH1 & 0xF0) >> 4;
// }
// DTC1 <<= 8;
// if ((DTCH1 & 0xF) >= 0xA)
// {
// DTC1 |= (DTCH1 & 0xF);
// }
// else
// {
// DTC1 |= DTCH1 & 0xF;
// }
// DTC1 <<= 8;
// if (((DTCM1 & 0xF0) >> 4) >= 0xA)
// {
// DTC1 |= ((DTCM1 & 0xF0) >> 4) + 3;
// }
// else
// {
// DTC1 |= (DTCM1 & 0xF0) >> 4;
// }
// DTC1 <<= 8;
// if ((DTCM1 & 0xF) >= 0xA)
// {
// DTC1 |= (DTCM1 & 0xF) ;
// }
// else
// {
// DTC1 |= DTCM1 & 0xF;
// }
if (DTC1 == 0)
{
return 0XFFFF;
}
u16FaultCode = DTC1;
return u16FaultCode;
}
uint32_t Get_FaultCodeDtc2(void)
{
uint32_t u16FaultCode = 0x0000;
uint8_t DTCH2 = 0;
uint8_t DTCM2 = 0;
uint32_t DTC2 = 0;
DTCH2 = Get_CAN_CH0_ID_402_Sig_ECU_DTCH2();
DTCM2 = Get_CAN_CH0_ID_402_Sig_ECU_DTCM2();
if(DTCH2 > 0)
{
DTC2 |= (DTCH2 & 0xFF);
}
else
{
;
}
DTC2 <<= 8;
if(DTCM2 > 0)
{
DTC2 |= (DTCM2 & 0xFF);
}
else
{
;
}
// if (((DTCH2 & 0xF0) >> 4) >= 0xA)
// {
// DTC2 |= ((DTCH2 & 0xF0) >> 4) + 3;
// }
// else
// {
// DTC2 |= (DTCH2 & 0xF0) >> 4;
// }
// DTC2 <<= 8;
// if ((DTCH2 & 0xF) >= 0xA)
// {
// DTC2 |= (DTCH2 & 0xF) + 3;
// }
// else
// {
// DTC2 |= DTCH2 & 0xF;
// }
// DTC2 <<= 8;
// if (((DTCM2 & 0xF0) >> 4) >= 0xA)
// {
// DTC2 |= ((DTCM2 & 0xF0) >> 4) + 3;
// }
// else
// {
// DTC2 |= (DTCM2 & 0xF0) >> 4;
// }
// DTC2 <<= 8;
// if ((DTCM2 & 0xF) >= 0xA)
// {
// DTC2 |= (DTCM2 & 0xF) + 3;
// }
// else
// {
// DTC2 |= DTCM2 & 0xF;
// }
if (DTC2 == 0)
{
return 0XFFFF;
}
u16FaultCode = DTC2;
return u16FaultCode;
}
uint16_t Get_FaultCodeNum(void)
{
uint16_t u16FaultCode = 0x0000;
u16FaultCode = Get_CAN_CH0_ID_402_Sig_ECU_DTC1Amnt();
return u16FaultCode;
}
uint16_t Get_FaultCodeValid(void)
{
return 1;
}
/**
* @brief 故障码初始化函数
*/
void FaultCode_Init(void)
{
uint16_t i = 0;
for (i = 0; i < MaxFaultCode; i++)
{
stFaultCode[i].u16FaultCode = 0;
stFaultCode[i].u16FaultCodeCount = 0;
stFaultCodeBack[i].u16FaultCode = 0;
stFaultCodeBack[i].u16FaultCodeCount = 0;
stFaultCodetemp[i].u16FaultCode = 0;
stFaultCodetemp[i].u16FaultCodeCount = 0;
}
FaultCodeInit.callbacks[DTC1] = Get_FaultCodeDtc1;
FaultCodeInit.callbacks[DTC2] = Get_FaultCodeDtc2;
FaultCodeInit.callbacks[DTC3] = NULL;
FaultCodeInit.FaultCodeVaildCbk = Get_FaultCodeValid;
FaultCodeInit.FaultCodeNumCbk = Get_FaultCodeNum;
u16FaultCodeDtcCountBack = 0;
u8FaultCodeValid = 0;
}
/**
* @brief 查询当前故障码是否存在
* @param u32FaultCode 故障码
* @param FaultCodeGrpup 故障码组
* @param len 故障码组长度
* @return 0:存在 1:不存在 2:无效故障码不存储
*/
uint8_t FaultCode_Check(const uint32_t u32FaultCode, const _st_FaultCode *FaultCodeGrpup, const uint16_t len)
{
uint16_t i = 0;
uint8_t Result = 1;
if ((u32FaultCode == 0XFFFF) || (u32FaultCode == 0))
{
return 2;
}
if (len == 1)
{
return 1;
}
for (i = 0; i < len; i++)
{
if (u32FaultCode == FaultCodeGrpup[i].u16FaultCode)
{
Result = 0;
return Result;
}
}
return Result;
}
/**
* 添加新的故障码到故障码数组中。
* @param faultCodes 指向故障码数组的指针。
* @param count 指向当前已添加故障码数量的指针。
* @param faultCode 要添加的故障码。
* @param len 实际故障码数量,用于检测数组中是否存在当前故障码
* @note 如果故障码数组已满或者新的故障码已存在,则不添加。
*/
void AddNewFaultCode(_st_FaultCode *faultCodes, uint16_t *count, uint32_t faultCode, uint16_t len)
{
if (*count >= MaxFaultCode || FaultCode_Check(faultCode, faultCodes, len) != 1)
{
return; // 数组已满或故障码已存在,不进行添加
}
faultCodes[*count].u16FaultCode = faultCode;
(*count)++;
}
/**
* @brief 故障码服务函数
* @param Cycle 建议10ms调用 防止故障码数量过多 接收缓慢
*/
void FaultCode_Service(uint16_t Cycle)
{
uint32_t Dtc1 = 0XFFFF;
uint32_t Dtc2 = 0XFFFF;
uint32_t Dtc3 = 0XFFFF;
uint16_t FaultCodeSum = 0;
uint16_t i = 0;
uint32_t tempFaultCode = 0;
uint16_t Vaild = 0;
if (FaultCodeInit.callbacks[DTC1] != NULL)
{
Dtc1 = FaultCodeInit.callbacks[DTC1]();
}
if (FaultCodeInit.callbacks[DTC2] != NULL)
{
Dtc2 = FaultCodeInit.callbacks[DTC2]();
}
if (FaultCodeInit.callbacks[DTC3] != NULL)
{
Dtc3 = FaultCodeInit.callbacks[DTC3]();
}
if (FaultCodeInit.FaultCodeVaildCbk != NULL)
{
Vaild = FaultCodeInit.FaultCodeVaildCbk();
}
if (FaultCodeInit.FaultCodeNumCbk != NULL)
{
FaultCodeSum = FaultCodeInit.FaultCodeNumCbk();
}
if (FaultCodeSum > MaxFaultCode)
{
FaultCodeSum = MaxFaultCode;
}
if ((Vaild) && (FaultCodeSum > 0))
{
if (u16FaultCodeDtcCountBack < FaultCodeSum) /* 当前存储故障码是否小于实际故障码数量 */
{
/* 存储故障码并检查数组中是否存在 */
AddNewFaultCode(stFaultCodeBack, &u16FaultCodeDtcCountBack, Dtc1, FaultCodeSum);
AddNewFaultCode(stFaultCodeBack, &u16FaultCodeDtcCountBack, Dtc2, FaultCodeSum);
}
/* 接收故障码大于0后进行显示 */
if (u16FaultCodeDtcCountBack > 0)
{
/* 当前存储故障码等于实际故障码数量 用于实时更新故障码*/
if (u16FaultCodeDtcCountBack == FaultCodeSum)
{
u16FaultCodeDtcCountBack = 0;
}
/* 更新故障码显示 */
for (i = 0; i < FaultCodeSum; i++)
{
if (stFaultCodetemp[i].u16FaultCode != stFaultCodeBack[i].u16FaultCode)
{
stFaultCodetemp[i].u16FaultCode = stFaultCodeBack[i].u16FaultCode;
stFaultCode[i].u16FaultCode = stFaultCodetemp[i].u16FaultCode;
}
}
u8FaultCodeValid = 1;
/* 大于故障码数量的数组进行清0处理 */
for (i = FaultCodeSum; i < MaxFaultCode; i++)
{
stFaultCode[i].u16FaultCode = 0;
stFaultCodetemp[i].u16FaultCode = 0;
stFaultCodeBack[i].u16FaultCode = 0;
}
}
if (stFaultCode[0].u16FaultCode != 0XFFFF)
{
/* 故障码计时 */
if (stFaultCode[0].u16FaultCodeCount < FaultCodeCount)
{
stFaultCode[0].u16FaultCodeCount += Cycle;
}
else
{
/* 计时结束 更新位置 */
stFaultCode[0].u16FaultCodeCount = 0;
tempFaultCode = stFaultCode[0].u16FaultCode;
if (FaultCodeSum > 1)
{
for (i = 0; i < FaultCodeSum - 1; i++)
{
stFaultCode[i].u16FaultCode = stFaultCode[i + 1].u16FaultCode;
}
stFaultCode[FaultCodeSum - 1].u16FaultCode = tempFaultCode;
}
}
}
}
else
{
u8FaultCodeValid = 0;
for (i = 0; i < MaxFaultCode; i++)
{
stFaultCode[i].u16FaultCode = 0;
stFaultCode[i].u16FaultCodeCount = 0;
stFaultCodeBack[i].u16FaultCode = 0;
stFaultCodeBack[i].u16FaultCodeCount = 0;
stFaultCodetemp[i].u16FaultCode = 0;
stFaultCodetemp[i].u16FaultCodeCount = 0;
}
u16FaultCodeDtcCountBack = 0;
}
}
/**
* @brief 获取当前故障码
*/
uint32_t Get_Current_FaultCode(void)
{
return stFaultCode[0].u16FaultCode;
}
uint8_t Get_Current_Hight_FaultCode(void)
{
uint8_t u8FaultHight = 0;
u8FaultHight = ((stFaultCode[0].u16FaultCode)&(0xFF00))>>8;
return u8FaultHight;
}
uint8_t Get_Current_Mid_FaultCode(void)
{
uint8_t u8FaultMid = 0;
u8FaultMid = ((stFaultCode[0].u16FaultCode)&(0x00FF));
return u8FaultMid;
}
uint8_t Get_FaultCode_Valid(void)
{
return u8FaultCodeValid;
}
#ifndef FAULTCODE_H
#define FAULTCODE_H
#include <stdint.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
/*故障码类型A can报文轮询发送方式*/
#define FaultCodeType_A 1
#define FaultCodeType FaultCodeType_A
#define MaxFaultCode 40
#define FaultCodeCount 5000
typedef enum
{
DTC1,
DTC2,
DTC3,
NUM_FAULT_TYPES,
} FaultCodeType_Num;
typedef uint32_t (*FaultCodeCallback)(void); /* 故障码回调函数 */
typedef uint16_t (*FaultCodeNumback)(void); /* 故障码个数回调函数 */
typedef uint16_t (*FaultCodeValidback)(void); /* 故障码有效回调函数 */
typedef struct
{
uint32_t u16FaultCode; /* 故障码 */
uint16_t u16FaultCodeCount; /* 故障码总数 */
} _st_FaultCode;
typedef struct
{
FaultCodeCallback callbacks[NUM_FAULT_TYPES];
FaultCodeNumback FaultCodeNumCbk;
FaultCodeValidback FaultCodeVaildCbk;
} _st_Init;
extern void FaultCode_Service(uint16_t Cycle);
extern void FaultCode_Init(void);
extern uint32_t Get_Current_FaultCode(void);
extern uint8_t Get_Current_Hight_FaultCode(void);
extern uint8_t Get_Current_Hight_FaultCode(void);
extern uint8_t Get_FaultCode_Valid(void);
#endif
\ No newline at end of file
...@@ -20,7 +20,7 @@ void Gpio_Init(_GpioUser_Enum InitMode) ...@@ -20,7 +20,7 @@ void Gpio_Init(_GpioUser_Enum InitMode)
RTE_GPIO_Config(RTE_GPIO_PORT00_PIN05, GpioOut_Low); //L_BiasBitSW 里程百位--- RTE_GPIO_Config(RTE_GPIO_PORT00_PIN05, GpioOut_Low); //L_BiasBitSW 里程百位---
RTE_GPIO_Config(RTE_GPIO_PORT00_PIN06, GpioOut_Low); //L_BiasBitSW 里程千位--- RTE_GPIO_Config(RTE_GPIO_PORT00_PIN06, GpioOut_Low); //L_BiasBitSW 里程千位---
RTE_GPIO_Config(RTE_GPIO_PORT01_PIN00, RTE_GPIO_DIR_OUT); //表盘背光-PWM RTE_GPIO_Config(RTE_GPIO_PORT01_PIN00, GpioOut_Low); //表盘背光-PWM
RTE_GPIO_Config(RTE_GPIO_PORT01_PIN01, GpioOut_Low); //RXD-ESP-IN-MCU RTE_GPIO_Config(RTE_GPIO_PORT01_PIN01, GpioOut_Low); //RXD-ESP-IN-MCU
RTE_GPIO_Config(RTE_GPIO_PORT01_PIN02, GpioOut_Low); //TXD-ESP-IN-MCU RTE_GPIO_Config(RTE_GPIO_PORT01_PIN02, GpioOut_Low); //TXD-ESP-IN-MCU
RTE_GPIO_Config(RTE_GPIO_PORT01_PIN03, RTE_GPIO_DIR_IN); RTE_GPIO_Config(RTE_GPIO_PORT01_PIN03, RTE_GPIO_DIR_IN);
......
...@@ -52,7 +52,7 @@ typedef enum ...@@ -52,7 +52,7 @@ typedef enum
extern void AMT630H_GUI_DisplayProc(void); extern void AMT630H_GUI_DisplayProc(void);
extern void AMT630H_GUI_Background(void); extern void AMT630H_GUI_Background(void);
extern uint8_t GET_Backlight(void);
......
...@@ -74,7 +74,7 @@ ADC_Data_st_t stADCData[ADC_SIGNAL_CH_NUMBER]; ...@@ -74,7 +74,7 @@ ADC_Data_st_t stADCData[ADC_SIGNAL_CH_NUMBER];
const uint8_t __attribute__((aligned(4))) u8ADCChList[ADC_CONV_CH_NUMBER] = const uint8_t __attribute__((aligned(4))) u8ADCChList[ADC_CONV_CH_NUMBER] =
{ {
2U, 3U, 7U, 5U, 6U, 2U, 3U, 7U, 5U, 6U, 4U, 12U,
}; };
const __attribute__((aligned(4))) ADC_Ch_Cfg_st_t stADCChCfg[ADC_SIGNAL_CH_NUMBER] = const __attribute__((aligned(4))) ADC_Ch_Cfg_st_t stADCChCfg[ADC_SIGNAL_CH_NUMBER] =
...@@ -84,6 +84,9 @@ const __attribute__((aligned(4))) ADC_Ch_Cfg_st_t stADCChCfg[ADC_SIGNAL_CH_NUMBE ...@@ -84,6 +84,9 @@ const __attribute__((aligned(4))) ADC_Ch_Cfg_st_t stADCChCfg[ADC_SIGNAL_CH_NUMBE
{ 2U, 0U, 0U, 0U, 0U, 1U, ADC_Voltage_Calc_Circuit101,}, { 2U, 0U, 0U, 0U, 0U, 1U, ADC_Voltage_Calc_Circuit101,},
{ 3U, 2U, 0U, 2U, 0U, 1U, ADC_Res_Calc_Circuit101,}, { 3U, 2U, 0U, 2U, 0U, 1U, ADC_Res_Calc_Circuit101,},
{ 4U, 2U, 0U, 2U, 0U, 1U, ADC_Res_Calc_Circuit101,}, { 4U, 2U, 0U, 2U, 0U, 1U, ADC_Res_Calc_Circuit101,},
{ 5U, 3U, 0U, 5000U, 0U, 10U, ADC_Res_Calc_Circuit201,},
{ 6U, 2U, 0U, 2U, 0U, 1U, ADC_Res_Calc_Circuit101,},
}; };
const __attribute__((aligned(4))) ADC_Res_List_st_t stADCResList[ADC_SIGNAL_CH_NUMBER] = const __attribute__((aligned(4))) ADC_Res_List_st_t stADCResList[ADC_SIGNAL_CH_NUMBER] =
...@@ -93,6 +96,8 @@ const __attribute__((aligned(4))) ADC_Res_List_st_t stADCResList[ADC_SIGNAL_CH_N ...@@ -93,6 +96,8 @@ const __attribute__((aligned(4))) ADC_Res_List_st_t stADCResList[ADC_SIGNAL_CH_N
{ 0U, 0U, 0U, 0U,}, { 0U, 0U, 0U, 0U,},
{ 0U, 0U, 500U, 300U,}, { 0U, 0U, 500U, 300U,},
{ 0U, 0U, 500U, 0U,}, { 0U, 0U, 500U, 0U,},
{ 47000U, 0U, 100000U, 0U,},
{ 0U, 0U, 500U, 0U,},
}; };
/* Private function prototypes ----------------------------------------------*/ /* Private function prototypes ----------------------------------------------*/
...@@ -170,7 +175,7 @@ void Analog_Signal_Conv_Service(void) ...@@ -170,7 +175,7 @@ void Analog_Signal_Conv_Service(void)
if (stADCCtrl.u8DebounceCnt == 0U) if (stADCCtrl.u8DebounceCnt == 0U)
{ {
stADCCtrl.enStatus = ADC_STAT_CONV; stADCCtrl.enStatus = ADC_STAT_CONV;
} }
else else
{ {
......
...@@ -33,11 +33,13 @@ enum ADCChName ...@@ -33,11 +33,13 @@ enum ADCChName
ADC_CH_FUEL_VREF, ADC_CH_FUEL_VREF,
ADC_CH_FUEL1, ADC_CH_FUEL1,
ADC_CH_COOLANT_TEMP1_R, ADC_CH_COOLANT_TEMP1_R,
ADC_CH_NTC_TEMP,
ADC_CH_LIGHT_SENSITIVE,
}; };
/* Exported macro ------------------------------------------------------------*/ /* Exported macro ------------------------------------------------------------*/
#define ADC_TOTAL_CH_NUMBER (5U) #define ADC_TOTAL_CH_NUMBER (7U)
#define ADC_SIGNAL_CH_NUMBER (5U) #define ADC_SIGNAL_CH_NUMBER (7U)
#define ADC_REF_VOLTAGE u16ADCRefVoltage #define ADC_REF_VOLTAGE u16ADCRefVoltage
/* Exported variables --------------------------------------------------------*/ /* Exported variables --------------------------------------------------------*/
......
...@@ -5,16 +5,16 @@ ...@@ -5,16 +5,16 @@
const Line_In_Attribute_st g_stLineInAttribute[LINE_IN_MAX] = const Line_In_Attribute_st g_stLineInAttribute[LINE_IN_MAX] =
{ {
{LEVEL_LOW, LEVEL_HIGH, LINE_IN_IG_ON, 20U, 20U, Get_LINE_IN_Turn_Left, }, {LEVEL_LOW, LEVEL_HIGH, LINE_IN_IG_ON, 20U, 20U, Get_LINE_IN_Turn_Left, },/*P10*/
{LEVEL_LOW, LEVEL_HIGH, LINE_IN_IG_ON, 20U, 20U, Get_LINE_IN_Turn_Right, }, {LEVEL_LOW, LEVEL_HIGH, LINE_IN_IG_ON, 20U, 20U, Get_LINE_IN_Turn_Right, },/*P9*/
{LEVEL_LOW, LEVEL_HIGH, LINE_IN_IG_ON, 60U, 20U, Get_LINE_IN_High_Beam, }, {LEVEL_LOW, LEVEL_HIGH, LINE_IN_IG_ON, 60U, 20U, Get_LINE_IN_High_Beam, },/*P18*/
{LEVEL_HIGH, LEVEL_LOW, LINE_IN_IG_ON, 100U, 20U, Get_LINE_IN_Efi_Fault, }, {LEVEL_HIGH, LEVEL_LOW, LINE_IN_IG_ON, 100U, 20U, Get_LINE_IN_Efi_Fault, },/*P15*/
{LEVEL_LOW, LEVEL_HIGH, LINE_IN_IG_ON, 20U, 20U, Get_LINE_IN_ABS, }, {LEVEL_LOW, LEVEL_HIGH, LINE_IN_IG_ON, 20U, 20U, Get_LINE_IN_ABS, },/*P7*/
{LEVEL_HIGH, LEVEL_LOW, LINE_IN_IG_ON, 20U, 20U, Get_LINE_IN_Auto_Start_Stop, }, {LEVEL_HIGH, LEVEL_LOW, LINE_IN_IG_ON, 20U, 20U, Get_LINE_IN_Auto_Start_Stop, },/*P12*/
{LEVEL_HIGH, LEVEL_LOW, LINE_IN_IG_ON, 20U, 20U, Get_LINE_IN_Oil_Pressure_Alert, }, {LEVEL_HIGH, LEVEL_LOW, LINE_IN_IG_ON, 20U, 20U, Get_LINE_IN_Oil_Pressure_Alert, },/*P21*/
{LEVEL_HIGH, LEVEL_LOW, LINE_IN_IG_ON, 20U, 20U, Get_LINE_IN_Voltage, }, {LEVEL_HIGH, LEVEL_LOW, LINE_IN_IG_ON, 20U, 20U, Get_LINE_IN_Voltage, },/*P19*/
{LEVEL_HIGH, LEVEL_LOW, LINE_IN_IG_ON, 20U, 20U, Get_LINE_IN_Fuel_Level_Low, }, {LEVEL_HIGH, LEVEL_LOW, LINE_IN_IG_ON, 20U, 20U, Get_LINE_IN_Fuel_Level_Low, },/*P14*/
{LEVEL_LOW, LEVEL_HIGH, LINE_IN_IG_ON, 20U, 20U, Get_LINE_IN_Coolant_Temperature }, {LEVEL_LOW, LEVEL_HIGH, LINE_IN_IG_ON, 20U, 20U, Get_LINE_IN_Coolant_Temperature }, /*P11*/
}; };
Linelib_uint8_t Get_LINE_IN_Turn_Left(void) Linelib_uint8_t Get_LINE_IN_Turn_Left(void)
{ {
......
...@@ -65,6 +65,10 @@ void Menu_User_Init(void) ...@@ -65,6 +65,10 @@ void Menu_User_Init(void)
Menu_Init_st.enMenuItemLen = MENU_ITEM_MAX; Menu_Init_st.enMenuItemLen = MENU_ITEM_MAX;
Menu_Init_st.uintMenuConfig = 0x0001; Menu_Init_st.uintMenuConfig = 0x0001;
Menu_Init_st.uintMenuCursorMemoryDepth = 0; Menu_Init_st.uintMenuCursorMemoryDepth = 0;
Menu_Item_Select_Set(MENU_ITEM_SELECT_DAYTIME, 1);
Menu_Item_Select_Set(MENU_ITEM_BACKLIGHT_4, 1);
Menu_Item_Select_Set(MENU_ITEM_UNIT_KM, 1);
Menu_Item_Select_Set(MENU_ITEM_LANGUAGE_CHINESE, 1);
Menu_Init((uint8_t *)u8MenuRamData, (Menu_Item_Attribute_st_t *)stMenuItemAttribute, (Menu_Init_st_t *)&Menu_Init_st); Menu_Init((uint8_t *)u8MenuRamData, (Menu_Item_Attribute_st_t *)stMenuItemAttribute, (Menu_Init_st_t *)&Menu_Init_st);
} }
...@@ -76,6 +80,10 @@ void Menu_User_WAKEUP(void) ...@@ -76,6 +80,10 @@ void Menu_User_WAKEUP(void)
Menu_Init_st.enMenuItemLen = MENU_ITEM_MAX; Menu_Init_st.enMenuItemLen = MENU_ITEM_MAX;
Menu_Init_st.uintMenuConfig = 0x0001; Menu_Init_st.uintMenuConfig = 0x0001;
Menu_Init_st.uintMenuCursorMemoryDepth = 0; Menu_Init_st.uintMenuCursorMemoryDepth = 0;
Menu_Item_Select_Set(MENU_ITEM_SELECT_DAYTIME, 1);
Menu_Item_Select_Set(MENU_ITEM_BACKLIGHT_4, 1);
Menu_Item_Select_Set(MENU_ITEM_UNIT_KM, 1);
Menu_Item_Select_Set(MENU_ITEM_LANGUAGE_CHINESE, 1);
Menu_Wake_Up_Init((uint8_t *)u8MenuRamData, (Menu_Item_Attribute_st_t *)stMenuItemAttribute, (Menu_Init_st_t *)&Menu_Init_st); Menu_Wake_Up_Init((uint8_t *)u8MenuRamData, (Menu_Item_Attribute_st_t *)stMenuItemAttribute, (Menu_Init_st_t *)&Menu_Init_st);
} }
...@@ -326,12 +334,15 @@ void Menu_Logic_Operation_Bluetooth_Back(Menu_Key_en_t enKeyType) ...@@ -326,12 +334,15 @@ void Menu_Logic_Operation_Bluetooth_Back(Menu_Key_en_t enKeyType)
void Menu_Logic_Operation_Clock_Hour_Tenb(Menu_Key_en_t enKeyType) void Menu_Logic_Operation_Clock_Hour_Tenb(Menu_Key_en_t enKeyType)
{ {
// counter_val.time.RTC_Hours = (MenuData.Dis_Hour_Tenb*10 + MenuData.Dis_Hour_Bit); RTE_RTC_Get_CounterValue(&counter_val);
// counter_val.time.RTC_Minutes = (MenuData.Dis_Minute_Tenb*10 + MenuData.Dis_Minute_Bit); counter_val.time.RTC_Hours = RTC_Bcd2ToByte(counter_val.time.RTC_Hours);
// if(MENU_KEY_CONFIRM_SHORT == enKeyType) counter_val.time.RTC_Minutes = RTC_Bcd2ToByte(counter_val.time.RTC_Minutes);
// {
// RTC_SetTime(&counter_val.time); MenuData.Dis_Hour_Tenb = counter_val.time.RTC_Hours / 10;
// } MenuData.Dis_Hour_Bit = counter_val.time.RTC_Hours % 10;
MenuData.Dis_Minute_Tenb = counter_val.time.RTC_Minutes / 10;
MenuData.Dis_Minute_Bit = counter_val.time.RTC_Minutes % 10;
} }
void Menu_Logic_Operation_Clock_Hour_Bit(Menu_Key_en_t enKeyType) void Menu_Logic_Operation_Clock_Hour_Bit(Menu_Key_en_t enKeyType)
...@@ -371,11 +382,7 @@ void Menu_Logic_Operation_Clock_Hour_Tenb_Set(Menu_Key_en_t enKeyType) ...@@ -371,11 +382,7 @@ void Menu_Logic_Operation_Clock_Hour_Tenb_Set(Menu_Key_en_t enKeyType)
uint8_t updataDir = 0u; uint8_t updataDir = 0u;
uint8_t datmax = 0u; uint8_t datmax = 0u;
uint8_t datmin = 0u; uint8_t datmin = 0u;
// RTE_RTC_Get_CounterValue(&counter_val);
// counter_val.time.RTC_Hours = RTC_Bcd2ToByte(counter_val.time.RTC_Hours);
// counter_val.time.RTC_Minutes = RTC_Bcd2ToByte(counter_val.time.RTC_Minutes);
// MenuData.Dis_Hour_Tenb = counter_val.time.RTC_Hours / 10;
if(enKeyType == MENU_KEY_DOWN_SHORT) if(enKeyType == MENU_KEY_DOWN_SHORT)
{ {
......
...@@ -75,7 +75,7 @@ void Data_User_Mileage_KL30Init(void) ...@@ -75,7 +75,7 @@ void Data_User_Mileage_KL30Init(void)
{ {
ODOInit.Offset = TempBuf[2]; ODOInit.Offset = TempBuf[2];
} }
ODOInit.MaxValue = 16103058; ODOInit.MaxValue = 9999999;
Data_ODO_KL30_Init(DataODOBuf, &ODOInit, Func.EEPromWrite_Cbk); Data_ODO_KL30_Init(DataODOBuf, &ODOInit, Func.EEPromWrite_Cbk);
(void)Data_User_EEPROM_Read(EM_TRIP_BLOCK, TempBuf + 3, 8); (void)Data_User_EEPROM_Read(EM_TRIP_BLOCK, TempBuf + 3, 8);
...@@ -237,13 +237,13 @@ uint32_t Get_Trip_Value(void) ...@@ -237,13 +237,13 @@ uint32_t Get_Trip_Value(void)
*/ */
void Trip_Clear_Km_Service(void) void Trip_Clear_Km_Service(void)
{ {
// if (Get_Dis_Unit() == 0) /* 公制 */ if (Get_Dis_Unit() == 0) /* 公制 */
// { {
// if (Data_Read_Trip(EM_TRIP_A) > 9999) /* 当前单位在KM时,里程大于999.9KM进行清零 */ if (Data_Read_Trip(EM_TRIP_A) > 9999) /* 当前单位在KM时,里程大于999.9KM进行清零 */
// { {
// Data_Clear_Trip_All(); Data_Clear_Trip_All();
// } }
// } }
} }
......
#include "PowerManagement.h" #include "PowerManagement.h"
#include "Components.h" #include "Components.h"
#include "FaultCode.h"
RTC_Information_st_t g_stRTCInformation; RTC_Information_st_t g_stRTCInformation;
...@@ -55,7 +56,7 @@ static void Power_KL30_Init(void) ...@@ -55,7 +56,7 @@ static void Power_KL30_Init(void)
Fuel_KL30_Init(); Fuel_KL30_Init();
Amt630hInit(); Amt630hInit();
Telltales_Init(); Telltales_Init();
TimerM_PWM_counter_Output_Init(TIMERM_COUNTER1, 400, 64000000); TimerM_PWM_counter_Output_Init(TIMERM_COUNTER1, 20000, 64000000);
TimerM_PWM_CH_Output_init(TIMERM_COUNTER1, TIMERM_CHB, ActiveLevel_High); TimerM_PWM_CH_Output_init(TIMERM_COUNTER1, TIMERM_CHB, ActiveLevel_High);
g_stRTCInformation.u8RTCSecond = 0; g_stRTCInformation.u8RTCSecond = 0;
g_stRTCInformation.u8RTCMinute = 0; g_stRTCInformation.u8RTCMinute = 0;
...@@ -67,7 +68,9 @@ static void Power_KL30_Init(void) ...@@ -67,7 +68,9 @@ static void Power_KL30_Init(void)
Menu_User_Init(); Menu_User_Init();
Can_Init(); Can_Init();
Protocol_KL30_Wakeup_Init(); Protocol_KL30_Wakeup_Init();
TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, 500);
RTE_DEEPSLEEP_GPIO_Interrupt_Enable(KL15_AD_IN, Trigger_Rising); RTE_DEEPSLEEP_GPIO_Interrupt_Enable(KL15_AD_IN, Trigger_Rising);
FaultCode_Init();
} }
static void Power_Wakeup_Init(void) static void Power_Wakeup_Init(void)
...@@ -85,7 +88,7 @@ static void Power_Wakeup_Init(void) ...@@ -85,7 +88,7 @@ static void Power_Wakeup_Init(void)
Line_In_KL15_ON_Init(); Line_In_KL15_ON_Init();
Fuel_KL30_Init(); Fuel_KL30_Init();
Amt630hInit(); Amt630hInit();
TimerM_PWM_counter_Output_Init(TIMERM_COUNTER1, 400, 64000000); TimerM_PWM_counter_Output_Init(TIMERM_COUNTER1, 20000, 64000000);
TimerM_PWM_CH_Output_init(TIMERM_COUNTER1, TIMERM_CHB, ActiveLevel_High); TimerM_PWM_CH_Output_init(TIMERM_COUNTER1, TIMERM_CHB, ActiveLevel_High);
Telltales_Init(); Telltales_Init();
Key_KL30_Init_EXample(); Key_KL30_Init_EXample();
...@@ -93,6 +96,7 @@ static void Power_Wakeup_Init(void) ...@@ -93,6 +96,7 @@ static void Power_Wakeup_Init(void)
Can_Init(); Can_Init();
Protocol_KL30_Wakeup_Init(); Protocol_KL30_Wakeup_Init();
RTE_DEEPSLEEP_GPIO_Interrupt_Enable(KL15_AD_IN, Trigger_Rising); RTE_DEEPSLEEP_GPIO_Interrupt_Enable(KL15_AD_IN, Trigger_Rising);
FaultCode_Init();
} }
static void Power_LVP_Init(void) static void Power_LVP_Init(void)
...@@ -107,7 +111,7 @@ static void Power_OVP_Init(void) ...@@ -107,7 +111,7 @@ static void Power_OVP_Init(void)
static void Power_IG_OFF_Init(void) static void Power_IG_OFF_Init(void)
{ {
Line_In_KL15_OFF_Init(); Line_In_KL15_OFF_Init();
RTE_GPIO_Set_Level(Blacklight_PWM, 0); TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, 0);
} }
static void Power_IG_ON_Init(void) static void Power_IG_ON_Init(void)
...@@ -116,12 +120,13 @@ static void Power_IG_ON_Init(void) ...@@ -116,12 +120,13 @@ static void Power_IG_ON_Init(void)
Line_In_KL15_ON_Init(); Line_In_KL15_ON_Init();
Telltales_KL15_Init(); Telltales_KL15_Init();
Fuel_KL15_Init(); Fuel_KL15_Init();
RTE_GPIO_Set_Level(Blacklight_PWM, 1); //RTE_GPIO_Set_Level(Blacklight_PWM, 1);
FaultCode_Init();
} }
static void Power_Sleep_Init(void) static void Power_Sleep_Init(void)
{ {
TimerM_PWM_counter_Output_Init(TIMERM_COUNTER1, 400, 0); TimerM_PWM_counter_Output_Init(TIMERM_COUNTER1, 20000, 0);
rte_can_deinit(CAN_CH_0); rte_can_deinit(CAN_CH_0);
TMM0_Stop(); TMM0_Stop();
TMM1_Stop(); TMM1_Stop();
...@@ -164,18 +169,10 @@ static Power_Status_em Power_Stay_OFF(void) ...@@ -164,18 +169,10 @@ static Power_Status_em Power_Stay_OFF(void)
} }
else else
{ {
if ((Common_GetIgnOffTime() < 1000)) if ((Common_GetIgnOffTime() < 20000))
{ {
u8PowerSts = EM_IGN_OFF; u8PowerSts = EM_IGN_OFF;
} }
else
{
//igoff大于1s且下15电才进休眠,否则一直保持在igoff状态
//if(Sys_Read_KL15_Voltage() < 5000)
{
u8PowerSts = EM_IGN_Sleep_Init;
}
}
} }
return u8PowerSts; return u8PowerSts;
...@@ -191,7 +188,7 @@ static Power_Status_em Power_Stay_Protect(void) ...@@ -191,7 +188,7 @@ static Power_Status_em Power_Stay_Protect(void)
/* 关闭所有外设,坪保留AD采集,电溝状思切�? */ /* 关闭所有外设,坪保留AD采集,电溝状思切�? */
{ {
TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, 0); TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, 0);
CAN_TX_SetEnable(&CAN_CH0_CanMsgTxOp, CAN_N_TX_Disable); //CAN_TX_SetEnable(&CAN_CH0_CanMsgTxOp, CAN_N_TX_Disable);
} }
u8PowerSts = EM_IGN_OFF_Init; u8PowerSts = EM_IGN_OFF_Init;
/* 电溝模弝正常 */ /* 电溝模弝正常 */
...@@ -204,15 +201,10 @@ static Power_Status_em Power_Stay_Protect(void) ...@@ -204,15 +201,10 @@ static Power_Status_em Power_Stay_Protect(void)
if ( SYS_OPR_STAT_RUN ) if ( SYS_OPR_STAT_RUN )
{ {
CAN_TX_SetEnable(&CAN_CH0_CanMsgTxOp, CAN_N_TX_Enable); //CAN_TX_SetEnable(&CAN_CH0_CanMsgTxOp, CAN_N_TX_Enable);
return u8PowerSts; return u8PowerSts;
} }
//进入异常电压,电源库里直接将15电等于0,则直接退出,状态是igoff,下15则进入休眠
// if ( SYS_OPR_STAT_IGN_OFF )
// {
// break;
// }
} }
} }
......
...@@ -61,7 +61,7 @@ uint8_t TimerM_PWM_counter_Output_Init(TIMERM_PWM_Counter_en_t counter, uint16_t ...@@ -61,7 +61,7 @@ uint8_t TimerM_PWM_counter_Output_Init(TIMERM_PWM_Counter_en_t counter, uint16_t
TIMM_InitStructure[counter].TMM_Channel = TMM_Channel_A|TMM_Channel_B|TMM_Channel_C|TMM_Channel_D; TIMM_InitStructure[counter].TMM_Channel = TMM_Channel_A|TMM_Channel_B|TMM_Channel_C|TMM_Channel_D;
TIMM_InitStructure[counter].TMM_Mode = TMM_Mode_PWM; TIMM_InitStructure[counter].TMM_Mode = TMM_Mode_PWM;
TIMM_InitStructure[counter].TMM_CounterClear = TM_Clear_Match_TMGRA; //when TM is matched with TMGRA, TM0 is cleared TIMM_InitStructure[counter].TMM_CounterClear = TM_Clear_Match_TMGRA; //when TM is matched with TMGRA, TM0 is cleared
TIMM_InitStructure[counter].TMM_Intp = TMM_Int_IMIA; ///compare match interrupt enable A (IMIEA) TIMM_InitStructure[counter].TMM_Intp = TMM_Int_NONE; ///compare match interrupt enable A (IMIEA)
if (freq > 2000) if (freq > 2000)
{ {
...@@ -227,13 +227,15 @@ uint8_t TimerM_PWM_CH_Output_init(TIMERM_PWM_Counter_en_t counter, TIMERM_PWM_Ch ...@@ -227,13 +227,15 @@ uint8_t TimerM_PWM_CH_Output_init(TIMERM_PWM_Counter_en_t counter, TIMERM_PWM_Ch
return 1; return 1;
//break; //break;
} }
TMM_Init(&TIMM_InitStructure[counter]);
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStruct.GPIO_Level = GPIO_Level_LOW; GPIO_InitStruct.GPIO_Level = GPIO_Level_LOW;
GPIO_InitStruct.GPIO_OType = GPIO_OType_PP; GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;
GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init(GPIO_PORT1,&GPIO_InitStruct);
TMM_Init(&TIMM_InitStructure[counter]);
if (counter == TIMERM_COUNTER0) if (counter == TIMERM_COUNTER0)
{ {
TMM0_Start(ENABLE); TMM0_Start(ENABLE);
...@@ -247,7 +249,7 @@ uint8_t TimerM_PWM_CH_Output_init(TIMERM_PWM_Counter_en_t counter, TIMERM_PWM_Ch ...@@ -247,7 +249,7 @@ uint8_t TimerM_PWM_CH_Output_init(TIMERM_PWM_Counter_en_t counter, TIMERM_PWM_Ch
return 1; return 1;
} }
GPIO_Init(GPIO_PORT1,&GPIO_InitStruct);
high_level_Pulse[counter][ch] = ((cycle_pulse[counter]) ) & 0x0FFFF; high_level_Pulse[counter][ch] = ((cycle_pulse[counter]) ) & 0x0FFFF;
pwm_duty[counter][ch] = 1000; pwm_duty[counter][ch] = 1000;
......
...@@ -4,6 +4,8 @@ ...@@ -4,6 +4,8 @@
//#include "CommonInterface.h" //#include "CommonInterface.h"
#include "RTE.h" #include "RTE.h"
#include "UDS_ISO14229_Server.h" #include "UDS_ISO14229_Server.h"
#include "FaultCode.h"
extern _Menu_Data MenuData;
void Sys_Pseudo_Real_Time_Tasks(void) void Sys_Pseudo_Real_Time_Tasks(void)
{ {
...@@ -30,6 +32,7 @@ void Sys_5ms_Tasks(void) ...@@ -30,6 +32,7 @@ void Sys_5ms_Tasks(void)
void Sys_10ms_Tasks(void) void Sys_10ms_Tasks(void)
{ {
FaultCode_Service(10u);
Line_In_Debounce_Service(10u); Line_In_Debounce_Service(10u);
Key_Service(); Key_Service();
Data_Mileage_Write_EEPROM(); Data_Mileage_Write_EEPROM();
...@@ -37,6 +40,7 @@ void Sys_10ms_Tasks(void) ...@@ -37,6 +40,7 @@ void Sys_10ms_Tasks(void)
Key_TimeOut_Service(); Key_TimeOut_Service();
Fuel_R_Cal(10u); Fuel_R_Cal(10u);
Coolant_R_Cal(10u); Coolant_R_Cal(10u);
Data_Light_Res_service(10);
} }
void Sys_20ms_Tasks(void) void Sys_20ms_Tasks(void)
...@@ -51,17 +55,17 @@ void Sys_50ms_Tasks(void) ...@@ -51,17 +55,17 @@ void Sys_50ms_Tasks(void)
g_u8Cursor_Posittion = Menu_Get_Current_Cursor_Information(); g_u8Cursor_Posittion = Menu_Get_Current_Cursor_Information();
// if((MenuData.Dis_Hour_Tenb*10 + MenuData.Dis_Hour_Bit) > 23) if((MenuData.Dis_Hour_Tenb*10 + MenuData.Dis_Hour_Bit) > 23)
// { {
// MenuData.Dis_Hour_Tenb = 2; MenuData.Dis_Hour_Tenb = 2;
// MenuData.Dis_Hour_Bit = 3; MenuData.Dis_Hour_Bit = 3;
// } }
// if((MenuData.Dis_Minute_Tenb*10 + MenuData.Dis_Minute_Bit) > 59) if((MenuData.Dis_Minute_Tenb*10 + MenuData.Dis_Minute_Bit) > 59)
// { {
// MenuData.Dis_Minute_Tenb = 5; MenuData.Dis_Minute_Tenb = 5;
// MenuData.Dis_Minute_Bit = 9; MenuData.Dis_Minute_Bit = 9;
// } }
} }
uint32_t ODOtest = 0; uint32_t ODOtest = 0;
...@@ -78,6 +82,8 @@ void Sys_100ms_Tasks(void) ...@@ -78,6 +82,8 @@ void Sys_100ms_Tasks(void)
// Data_Mileage_Clear(); // Data_Mileage_Clear();
RTE_GPIO_Config(RTE_GPIO_PORT05_PIN04, GpioOut_High); RTE_GPIO_Config(RTE_GPIO_PORT05_PIN04, GpioOut_High);
//BackLight_Process();
//TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, 100);
// aaa = Menu_Item_Select_Get(MENU_ITEM_SELECT_AUTO); // aaa = Menu_Item_Select_Get(MENU_ITEM_SELECT_AUTO);
} }
......
#new Option
#Tue Aug 13 23:16:37 CST 2024
IsSort=true
MergeFlashIsCompression=false
ChangeAppFilePath=
MergeCanXLSPath=
RH850_D1M1AGPIOJSONpath=
DBFFilePath=
MergeCrcTtpe=29
MergeBootFilePath=C\:\\Users\\Lenovo\\Desktop\\haojin750_TFT\\haojin750tft\\Firmware\\utility\\Boot_Release\\HaoJin_750TFT_HJYB-7500TFT_BV1.01_20240808.hex
IsMergeChangeAddress=false
MergeFlashOutPutFilePath=
GPIOOutPutPath=
MergeCanDBCPath=
IsFilling=true
RxID=789
MergeAudioInPutPath=
MergeAudioIndex=3
IsFastSend=true
MergeBinFilePath=
MsgMaxBc=0
UDS_22_2E_DID_FilePath=
SoftwareVersion=0
MsgSTmin=0
MergeLineInOutPutPath=
Leave2ID=17
PHYID=781
BaudRate=500K
AppUpdateFilePath=C\:\\Users\\Lenovo\\Desktop\\haojin750tft_2024-8-13\\APP_20240813230755344371.srec
FUNID=7DF
IsMergeCreateBin=false
IsOverWrite=true
DllFilePath=C\:\\Users\\Lenovo\\Desktop\\haojin750_TFT\\haojin750tft\\Firmware\\utility\\\u8BCA\u65AD\u5DE5\u5177\\\u89E3\u9501\u6587\u4EF6\\default_64.dll
MergeAudioOutPutPath=
MergeCanOutPutPath=
ChangeOutPutFilePath=
MergeTelltalesOutPutPath=
TTFExtractTXTpath=
JieFaRH850GPIOJSONpath=
MergeFlashIsMandatory=false
UpdateProcess=\u9ED8\u8BA4
Driver=Kvaser
MergeFlashImageFormat=
RH850_F1KMGPIOJSONpath=
DriverFilePath=C\:\\Users\\Lenovo\\Desktop\\haojin750_TFT\\haojin750tft\\Firmware\\utility\\\u8BCA\u65AD\u5DE5\u5177\\FlashDriver\\R5_FlashDriver.srec
IsMergeCreateHex=false
MergeFlashIsCreateREC=false
TTFExtractTTFpath=
MergeImageFilePath=
IsMergeCreateUpdateBin=false
MergeImageSize=128M
CRCFilePath=
MergeFlashCompressionFormat=
IsPlayMusic=false
IsHexDisplay=true
MergeLineInXLSPath=
MergeFlashInPutFilePath=
MergeFlashIsInternal=false
MergeOutPutFilePath=C\:\\Users\\Lenovo\\Desktop\\haojin750tft_2024-8-13
MergeAppFilePath=C\:\\Users\\Lenovo\\Desktop\\haojin750tft_2024-8-13\\HaoJin750TFT.hex
MergeTelltalesXLSPath=
FillingByte=-86
ImageVersion=0
XHYGPIOJSONpath=
Leave1ID=1
TTFExtractOUTpath=
MergeAudioPWMMax=2000
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