Commit a63556d6 authored by 时昊's avatar 时昊

🎉 init:上传按键模块

parent 21489b3d
#ifndef KEY_H__
#define KEY_H__
//#define KEY_PLATFORM_16BIT
#ifdef KEY_PLATFORM_16BIT
typedef unsigned char Key_uint8_t;
typedef unsigned int Key_uint16_t;
typedef unsigned long Key_uint32_t;
#else
typedef unsigned char Key_uint8_t;
typedef unsigned short Key_uint16_t;
typedef unsigned int Key_uint32_t;
typedef unsigned long long Key_uint64_t;
#endif
/*所有按键枚举*/
/*默认所有按键在任意电源状态下均可被触发*/
typedef enum
{
KEY_LEFT = 0U,
KEY_RIGHT,
// KEY_UP,
// KEY_DOWN,
// KEY_ENTER,
// KEY_RETURN,
// KEY_FUNCTION_1,
// KEY_FUNCTION_2,
KEY_NUM_MAX,
} Key_Num_en_t;
/*--------------------------Do not modify the following--------------------------------*/
/*--------------------------Do not modify the following--------------------------------*/
/*--------------------------Do not modify the following--------------------------------*/
#define KEY_RAM_DATA_LEN (KEY_NUM_MAX * 16U + 24U)
typedef enum
{
/*按键检测方式选择*/
/*按键不需要消抖,并且在无效状态切换到有效状态的上升沿触发按键动作。
一般用于CAN发送按键处理后状态时*/
KEY_NO_DEBOUNCE_RISE = 0U,
/*按键不需要消抖,并且在有效状态切换到无效状态的下降沿触发按键动作。
一般用于CAN发送按键处理后状态时*/
KEY_NO_DEBOUNCE_FALL,
/*按键需要消抖,短按松手触发,长按按住即可触发。
一般用于硬线按键,AD按键,CAN发送按键实时状态时*/
KEY_NEED_DEBOUNCE_NORMAL,
KEY_TYPE_MAX,
} Key_Type_en_t;
/*按键相关设置返回状态*/
typedef enum
{
KEY_SET_OK = 0U,
KEY_SET_ERROR,
KEY_SET_MAX,
} Key_Set_en_t;
/*-----传入的按键状态--------*/
typedef enum
{
/*当按键检测方式选择需要消抖时使用*/
KEY_REALTIME_LOOSEN = 0U, /*按键松开*/
KEY_REALTIME_PRESS, /*按键按下*/
/*当按键检测方式选择不需要消抖时使用*/
KEY_STATUS_IDLE,
KEY_STATUS_SHORT_PRESS_1,
KEY_STATUS_SHORT_PRESS_2,
KEY_STATUS_LONG_PRESS_1,
KEY_STATUS_LONG_PRESS_2,
KEY_STATUS_LONG_PRESS_3,
KEY_STATUS_LONG_PRESS_4,
KEY_STATUS_MAX,
} Key_Status_en_t;
/*按键支持的具体动作*/
typedef enum
{
KEY_EVENT_NONE = 0U, /***超时动作可在这个按键动作下自行计时触发**/
/*以下按键动作都是单次触发,只有松手后才能再次触发*/
KEY_EVENT_SHORT_PRESS_1,
KEY_EVENT_SHORT_PRESS_2,
KEY_EVENT_LONG_PRESS_1,
KEY_EVENT_LONG_PRESS_2,
KEY_EVENT_LONG_PRESS_3,
KEY_EVENT_LONG_PRESS_4,
/*OFF时才首先按下按键,然后不松手,之后切换到ON并持续一定时间后触发动作。*/
KEY_EVENT_OFF_TO_ON,
KEY_EVENT_ON_TO_OFF,
KEY_EVENT_MAX,
} Key_Event_en_t;
/*按键IG状态*/
typedef enum
{
KEY_IG_INVALID = 0U,/***无效的电源状态**/
KEY_IG_OFF,
KEY_IG_ON,
} Key_IGN_en_t;
typedef Key_Status_en_t (*Key_Status_Read)(void);
typedef void (*Key_Operation)(Key_Event_en_t enKeyEvent);
/*每个按键的属性*/
typedef struct
{
/*按键检测方式选择*/
Key_Type_en_t enKeyType;
/*获取按键传入状态的回调函数*/
Key_Status_Read pfnKeyReadStatusCallBack;
/*按键触发动作的回调函数*/
Key_Operation pfnKeyOperationCallBack;
} Key_Attribute_st_t;
typedef struct
{
/*当前IG状态*/
Key_IGN_en_t enKeyIGNRealStatus;
/*按键数量,也就是KEY_NUM_MAX*/
Key_uint8_t u8KeyNum;
} Key_Init_st_t;
/*--------------------------------------------------------------------------------------------*/
/*------------------------------------------------------------------------------------*/
/*10ms调用一次*/
extern void Key_Service(void);
/*首次上电时调用.
默认短按1时间100ms~~1000ms,
默认短按2时间1100ms~~2000ms,
长按1时间2000ms,
长按2时间10000ms,
长按3时间30000ms,
长按4时间60000ms,
OFF下时间500ms,ON下时间500ms*/
extern void Key_KL30_Init(Key_uint8_t *pu8KyeRamData, const Key_Attribute_st_t *pstKeyAttribute, Key_Init_st_t *pstKeyInit);
/***确保传入的内存指针在休眠唤醒后不会丢失,那么可正常使用唤醒初始化函数。否是使用上述KL30初始化**/
extern void Key_Wakeup_Init(Key_uint8_t *pu8KyeRamData, const Key_Attribute_st_t *pstKeyAttribute, Key_Init_st_t *pstKeyInit);
/*对于消抖按键而言,判断短按的时间参数。
u16TimeMin :最小识别的时间 u16TimeMax:最大识别的时间 (不可大于短按2的最小识别时间)*/
extern Key_Set_en_t Key_Parameter_Set_Short_Press_1_Time(Key_uint16_t u16TimeMin, Key_uint16_t u16TimeMax);
/*对于消抖按键而言,判断短按2的时间参数。
u16TimeMin :最小识别的时间(不可小于短按1的最大识别时间) u16TimeMax:最大识别的时间*/
extern Key_Set_en_t Key_Parameter_Set_Short_Press_2_Time(Key_uint16_t u16TimeMin, Key_uint16_t u16TimeMax);
/*对于消抖按键而言,判断长按1的时间参数。不可大于长按2的时间*/
extern Key_Set_en_t Key_Parameter_Set_Long_Press_1_Time(Key_uint16_t u16Time);
/*对于消抖按键而言,判断长按2的时间参数。不可小于长按1的时间,不可大于长按3的时间*/
extern Key_Set_en_t Key_Parameter_Set_Long_Press_2_Time(Key_uint16_t u16Time);
/*对于消抖按键而言,判断长按3的时间参数。不可小于长按2的时间,不可大于长按4的时间*/
extern Key_Set_en_t Key_Parameter_Set_Long_Press_3_Time(Key_uint16_t u16Time);
/*对于消抖按键而言,判断长按4的时间参数。不可小于长按3的时间*/
extern Key_Set_en_t Key_Parameter_Set_Long_Press_4_Time(Key_uint16_t u16Time);
/*对于消抖按键而言,判断ON,OFF切换动作的时间参数。
u16TimeOFF :OFF识别的时间 u16TimeON :ON识别的时间 */
extern Key_Set_en_t Key_Parameter_Set_ON_OFF_Time(Key_uint16_t u16TimeOFF, Key_uint16_t u16TimeON);
/*设置电源状态给按键,单次调用或者多次调用均可*/
extern void Key_Set_IG_Status(Key_IGN_en_t enIGStatus);
#endif
\ No newline at end of file
#include "Key_user.h"
#include "gpio.h"
#include "Key.h"
#define BACK_MENU_TIME 1000
_Menu_Infor MenuInfor ;
void Key_Operation_Left(Key_Event_en_t enKeyEvent)
{
switch (enKeyEvent)
{
case KEY_EVENT_SHORT_PRESS_1:
break;
case KEY_EVENT_SHORT_PRESS_2:
break;
case KEY_EVENT_LONG_PRESS_1: //2
break;
case KEY_EVENT_LONG_PRESS_2: //3
break;
case KEY_EVENT_LONG_PRESS_3: //4s
break;
case KEY_EVENT_LONG_PRESS_4: //10s
break;
case KEY_EVENT_OFF_TO_ON:
break;
case KEY_EVENT_ON_TO_OFF:
break;
case KEY_EVENT_NONE:
KEY_LEFT_EVENT_NONE_Service();
break;
default:
break;
}
}
void Key_Operation_Right(Key_Event_en_t enKeyEvent)
{
switch (enKeyEvent)
{
case KEY_EVENT_SHORT_PRESS_1:
break;
case KEY_EVENT_SHORT_PRESS_2:
break;
case KEY_EVENT_LONG_PRESS_1: //2s
break;
case KEY_EVENT_LONG_PRESS_2: //3s
break;
case KEY_EVENT_LONG_PRESS_3: //4s
break;
case KEY_EVENT_LONG_PRESS_4: //10s
break;
case KEY_EVENT_OFF_TO_ON:
break;
case KEY_EVENT_ON_TO_OFF:
break;
case KEY_EVENT_NONE:
KEY_RIGHT_EVENT_NONE_Service();
break;
default:
break;
}
}
/*---------------------------------------------------------------------------------------*/
Key_Status_en_t Key_Status_Read_Left(void)
{
Key_Status_en_t enKeyReal = KEY_REALTIME_LOOSEN;
if (MODE_P_IN)
{
enKeyReal = KEY_REALTIME_LOOSEN;
}
else
{
enKeyReal = KEY_REALTIME_PRESS;
}
return enKeyReal;
}
Key_Status_en_t Key_Status_Read_Right(void)
{
Key_Status_en_t enKeyReal = KEY_REALTIME_LOOSEN;
if (SET_P_IN)
{
enKeyReal = KEY_REALTIME_LOOSEN;
}
else
{
enKeyReal = KEY_REALTIME_PRESS;
}
return enKeyReal;
}
/*---------------------------------------------------------------------------------------*/
const Key_Attribute_st_t stKeyAttribute[KEY_NUM_MAX] =
{
{KEY_NEED_DEBOUNCE_NORMAL, Key_Status_Read_Left, Key_Operation_Left},
{KEY_NEED_DEBOUNCE_NORMAL, Key_Status_Read_Right, Key_Operation_Right},
//{KEY_NEED_DEBOUNCE_NORMAL, Key_Status_Read_FLIP, Key_Operation_FLIP},
//{KEY_NEED_DEBOUNCE_NORMAL, Key_Status_Read_ADJUST, Key_Operation_ADJUST},
};
/*---------------------------------------------------------------------------------------*/
Key_uint8_t u8KeyRamData[KEY_RAM_DATA_LEN];
void Key_KL30_Init_EXample(void)
{
Key_Init_st_t stKeyInitTem;
Key_uint16_t i;
for (i = 0; i < KEY_RAM_DATA_LEN; i++)
{
u8KeyRamData[i] = 0;
}
stKeyInitTem.u8KeyNum = KEY_NUM_MAX;
stKeyInitTem.enKeyIGNRealStatus = KEY_IG_OFF;
// Key_KL30_Init(&u8KeyRamData[0], stKeyAttribute, &stKeyInitTem);
// Key_Parameter_Set_Short_Press_1_Time(100U,1000U);
// Key_Parameter_Set_Short_Press_2_Time(1500U,2000U);
// Key_Parameter_Set_Long_Press_1_Time(2000U);
// Key_Parameter_Set_Long_Press_2_Time(3000U);
// Key_Parameter_Set_Long_Press_3_Time(4000U);
// Key_Parameter_Set_Long_Press_4_Time(10000U);
}
void Key_Wakeup_Init_EXample(void)
{
Key_Init_st_t stKeyInitTem;
stKeyInitTem.u8KeyNum = KEY_NUM_MAX;
stKeyInitTem.enKeyIGNRealStatus = KEY_IG_OFF;
// Key_Wakeup_Init(&u8KeyRamData[0], stKeyAttribute, &stKeyInitTem);
// Key_Parameter_Set_Short_Press_1_Time(100U,1000U);
// Key_Parameter_Set_Short_Press_2_Time(1500U,2000U);
// Key_Parameter_Set_Long_Press_1_Time(2000U);
// Key_Parameter_Set_Long_Press_2_Time(3000U);
// Key_Parameter_Set_Long_Press_3_Time(4000U);
// Key_Parameter_Set_Long_Press_4_Time(10000U);
}
void KEY_LEFT_EVENT_NONE_Service(void)
{
MenuInfor.Back_Time_Left++;
if(MenuInfor.Back_Time_Left > BACK_MENU_TIME)
{
MenuInfor.Back_Time_Left = 0;
MenuInfor.Back_Time_Left_Flag = 1;
}
if((MenuInfor.Back_Time_Left_Flag == 1)&&(MenuInfor.Back_Time_Right_Flag == 1))
{
MenuInfor.Back_Time_Left_Flag = 0;
MenuInfor.Back_Time_Right_Flag = 0;
}
}
void KEY_RIGHT_EVENT_NONE_Service(void)
{
MenuInfor.Back_Time_Right++;
if(MenuInfor.Back_Time_Right > BACK_MENU_TIME)
{
MenuInfor.Back_Time_Right = 0;
MenuInfor.Back_Time_Right_Flag = 1;
}
if((MenuInfor.Back_Time_Left_Flag == 1)&&(MenuInfor.Back_Time_Right_Flag == 1))
{
MenuInfor.Back_Time_Left_Flag = 0;
MenuInfor.Back_Time_Right_Flag = 0;
}
}
void Key_Clear_Time(void)
{
if(Key_Status_Read_Left() == KEY_REALTIME_PRESS)
{
MenuInfor.Back_Time_Left = 0;
MenuInfor.Back_Time_Left_Flag = 0;
MenuInfor.Back_Time_Right_Flag = 0;
}
if(Key_Status_Read_Right() == KEY_REALTIME_PRESS)
{
MenuInfor.Back_Time_Right = 0;
MenuInfor.Back_Time_Left_Flag = 0;
MenuInfor.Back_Time_Right_Flag = 0;
}
}
\ No newline at end of file
#ifndef KEY_USER_H__
#define KEY_USER_H__
#include "common.h"
#include "Key.h"
typedef struct
{
uint16_t Back_Time_Left;
uint16_t Back_Time_Right;
uint8_t Back_Time_Right_Flag;
uint8_t Back_Time_Left_Flag;
}_Menu_Infor;
extern void Key_KL30_Init_EXample(void);
extern void Key_Wakeup_Init_EXample(void);
void KEY_RIGHT_EVENT_NONE_Service(void);
void KEY_LEFT_EVENT_NONE_Service(void);
void Key_Operation_Right(Key_Event_en_t enKeyEvent);
void Key_Operation_Left(Key_Event_en_t enKeyEvent);
Key_Status_en_t Key_Status_Read_Left(void);
Key_Status_en_t Key_Status_Read_Right(void);
void Key_Clear_Time(void);
#endif
......@@ -32,7 +32,7 @@
#include "BU98R10.h"
#include "Services_Mileage_User.h"
#include "can.h"
#include "Key_user.h"
#include "app_Telltales.h"
#include "Services_Mileage.h"
......@@ -88,7 +88,7 @@ void Sys_Run_Mode_10ms_Tasks(void)
Analog_Signal_Conv_Service();
Telltales_Management();
Can_BusOff_Fun(10u);
Key_Clear_Time();
Data_Mileage_Write_EEPROM();
}
......@@ -119,7 +119,6 @@ void Sys_Run_Mode_50ms_Tasks(void)
}
/*============================================================================*/
......
......@@ -1208,6 +1208,42 @@
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>81</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>.\source\Application\Line\Key.h</PathWithFileName>
<FilenameWithoutPath>Key.h</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>82</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>.\source\Application\Line\Key_user.c</PathWithFileName>
<FilenameWithoutPath>Key_user.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>83</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>.\source\Application\Line\Key_user.h</PathWithFileName>
<FilenameWithoutPath>Key_user.h</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
</Group>
<Group>
......@@ -1218,7 +1254,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>4</GroupNumber>
<FileNumber>81</FileNumber>
<FileNumber>84</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
......@@ -1230,7 +1266,7 @@
</File>
<File>
<GroupNumber>4</GroupNumber>
<FileNumber>82</FileNumber>
<FileNumber>85</FileNumber>
<FileType>4</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
......@@ -1250,7 +1286,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>83</FileNumber>
<FileNumber>86</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
......@@ -1262,7 +1298,7 @@
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>84</FileNumber>
<FileNumber>87</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
......@@ -1274,7 +1310,7 @@
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>85</FileNumber>
<FileNumber>88</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
......@@ -1286,7 +1322,7 @@
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>86</FileNumber>
<FileNumber>89</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
......@@ -1298,7 +1334,7 @@
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>87</FileNumber>
<FileNumber>90</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
......@@ -1310,7 +1346,7 @@
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>88</FileNumber>
<FileNumber>91</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
......@@ -1322,7 +1358,7 @@
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>89</FileNumber>
<FileNumber>92</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
......@@ -1334,7 +1370,7 @@
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>90</FileNumber>
<FileNumber>93</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
......@@ -1346,7 +1382,7 @@
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>91</FileNumber>
<FileNumber>94</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
......@@ -1358,7 +1394,7 @@
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>92</FileNumber>
<FileNumber>95</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
......@@ -1370,7 +1406,7 @@
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>93</FileNumber>
<FileNumber>96</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
......@@ -1390,7 +1426,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>94</FileNumber>
<FileNumber>97</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
......@@ -1402,7 +1438,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>95</FileNumber>
<FileNumber>98</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
......@@ -1414,7 +1450,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>96</FileNumber>
<FileNumber>99</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
......@@ -1426,7 +1462,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>97</FileNumber>
<FileNumber>100</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
......@@ -1438,7 +1474,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>98</FileNumber>
<FileNumber>101</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
......@@ -1450,7 +1486,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>99</FileNumber>
<FileNumber>102</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
......@@ -1462,7 +1498,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>100</FileNumber>
<FileNumber>103</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
......@@ -1474,7 +1510,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>101</FileNumber>
<FileNumber>104</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
......@@ -1486,7 +1522,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>102</FileNumber>
<FileNumber>105</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
......@@ -1498,7 +1534,7 @@
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>103</FileNumber>
<FileNumber>106</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
......
......@@ -339,7 +339,7 @@
<MiscControls></MiscControls>
<Define></Define>
<Undefine></Undefine>
<IncludePath>.\source\System;.\source\Driver\inc;.\source\Application;.\source\Application\LINE_IN;.\source\Application\PowerManagement;.\source\Application\RTE;.\source\Application\MCU_Core_Protocol;.\source\Application\Telltales;.\source\Application\Fuel;.\source\Application\Eeprom;.\source\Application\DataProcessor;.\source\Application\LightDetect;.\source\Application\BackLight;.\source\Application\Key;.\source\Application\Menu;.\source\Application\APPCan;.\source\UDS;.\source\Application\Gauges;.\source\Application\CoolantTemp;.\source\UDS2;.\\RTE\Device\BAT32A239KK64FB;.\source\Application\Mileage;.\source\Application\Display\GUI_LCD_DIS;.\source\Application\Display\SEG_LCD_DIS;.\source\Driver\inc</IncludePath>
<IncludePath>.\source\System;.\source\Driver\inc;.\source\Application;.\source\Application\LINE_IN;.\source\Application\PowerManagement;.\source\Application\RTE;.\source\Application\MCU_Core_Protocol;.\source\Application\Telltales;.\source\Application\Fuel;.\source\Application\Eeprom;.\source\Application\DataProcessor;.\source\Application\LightDetect;.\source\Application\BackLight;.\source\Application\Key;.\source\Application\Menu;.\source\Application\APPCan;.\source\UDS;.\source\Application\Gauges;.\source\Application\CoolantTemp;.\source\UDS2;.\\RTE\Device\BAT32A239KK64FB;.\source\Application\Mileage;.\source\Application\Display\GUI_LCD_DIS;.\source\Application\Display\SEG_LCD_DIS;.\source\Driver\inc;.\source\Application\Line</IncludePath>
</VariousControls>
</Cads>
<Aads>
......@@ -793,6 +793,21 @@
<FileType>5</FileType>
<FilePath>.\source\Application\Line\BackLight.h</FilePath>
</File>
<File>
<FileName>Key.h</FileName>
<FileType>5</FileType>
<FilePath>.\source\Application\Line\Key.h</FilePath>
</File>
<File>
<FileName>Key_user.c</FileName>
<FileType>1</FileType>
<FilePath>.\source\Application\Line\Key_user.c</FilePath>
</File>
<File>
<FileName>Key_user.h</FileName>
<FileType>5</FileType>
<FilePath>.\source\Application\Line\Key_user.h</FilePath>
</File>
</Files>
</Group>
<Group>
......
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