This commit is contained in:
parent
fa601e36d8
commit
f3964c5257
|
@ -5,13 +5,8 @@
|
||||||
|
|
||||||
//初始界面
|
//初始界面
|
||||||
//{
|
//{
|
||||||
|
|
||||||
//初始界面编号0,开机动画
|
//初始界面编号0,开机动画
|
||||||
#define SCREEN_INIT 0
|
#define SCREEN_INIT 0
|
||||||
|
|
||||||
//开机动画进度条计数次数
|
|
||||||
#define SCREEN_INIT_CNT_MAX 4
|
|
||||||
|
|
||||||
//}
|
//}
|
||||||
|
|
||||||
//主界面
|
//主界面
|
||||||
|
@ -46,12 +41,6 @@
|
||||||
//闪烁次数上限
|
//闪烁次数上限
|
||||||
#define TWINKLE_CNT_MAX 10
|
#define TWINKLE_CNT_MAX 10
|
||||||
|
|
||||||
//数码管数值增加(正负情况交替时,up和down两个键起到的作用会对调,因此专门定义参数用于区分数值的增减)
|
|
||||||
#define NIXIE_INCREASE 1
|
|
||||||
|
|
||||||
//数码管数值增加(正负情况交替时,up和down两个键起到的作用会对调,因此专门定义参数用于区分数值的增减)
|
|
||||||
#define NIXIE_DECREASE 0
|
|
||||||
|
|
||||||
//数码管闪烁功能使能
|
//数码管闪烁功能使能
|
||||||
#define NIXIE_CUBE_ENABLE 0
|
#define NIXIE_CUBE_ENABLE 0
|
||||||
|
|
||||||
|
|
|
@ -7,11 +7,8 @@ extern int16_t save_cnt;
|
||||||
extern int16_t reset_cnt;
|
extern int16_t reset_cnt;
|
||||||
|
|
||||||
//设置界面
|
//设置界面
|
||||||
|
#define SCREEN_SETTING 2
|
||||||
//{
|
//{
|
||||||
|
|
||||||
//设置界面编号2,详细设置菜单
|
|
||||||
#define SCREEN_SETTING 2
|
|
||||||
|
|
||||||
//当前页码
|
//当前页码
|
||||||
#define PAGE_PV 99
|
#define PAGE_PV 99
|
||||||
|
|
||||||
|
@ -200,6 +197,7 @@ void deal_data_save(void);
|
||||||
//执行复位功能
|
//执行复位功能
|
||||||
void deal_data_reset(void);
|
void deal_data_reset(void);
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -88,6 +88,54 @@ typedef enum
|
||||||
RTD_DC //热电阻摄氏度
|
RTD_DC //热电阻摄氏度
|
||||||
}SIG_FUNCTIONS_TYPE;
|
}SIG_FUNCTIONS_TYPE;
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
KEY_OUT = 0,
|
||||||
|
KEY_UP,
|
||||||
|
KEY_MENU,
|
||||||
|
KEY_IN,
|
||||||
|
KEY_LEFT,
|
||||||
|
KEY_OK,
|
||||||
|
KEY_RIGHT,
|
||||||
|
KEY_SWITCH,
|
||||||
|
KEY_SOURCE,
|
||||||
|
KEY_DOWN,
|
||||||
|
KEY_BACK,
|
||||||
|
KEY_NONE,
|
||||||
|
KEY_ALL
|
||||||
|
}KEYS_TAG;
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
KEY_OUT_VAL = 76,
|
||||||
|
KEY_UP_VAL = 84,
|
||||||
|
KEY_MENU_VAL = 68,
|
||||||
|
KEY_IN_VAL = 78,
|
||||||
|
KEY_LEFT_VAL = 77,
|
||||||
|
KEY_OK_VAL = 85,
|
||||||
|
KEY_RIGHT_VAL = 94,
|
||||||
|
KEY_SWITCH_VAL = 69,
|
||||||
|
KEY_SOURCE_VAL = 111,
|
||||||
|
KEY_DOWN_VAL = 86,
|
||||||
|
KEY_BACK_VAL = 70,
|
||||||
|
KEY_NONE_VAL = 0,
|
||||||
|
KEY_ALL_VAL = 250
|
||||||
|
}KEYS_VALUE;
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
KEY_STATUS_DISABLE = 0,
|
||||||
|
KEY_STATUS_ENABLE
|
||||||
|
}KEYS_STATUS;
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
KEYS_TAG tag;
|
||||||
|
KEYS_VALUE value;
|
||||||
|
KEYS_STATUS status;
|
||||||
|
}KEYS;
|
||||||
|
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
//general
|
//general
|
||||||
|
@ -95,6 +143,7 @@ typedef struct
|
||||||
int tick_prv; //前一个时刻
|
int tick_prv; //前一个时刻
|
||||||
int tick_cur; //当前时刻
|
int tick_cur; //当前时刻
|
||||||
uint8_t menu_reset_flag; //复位标志,在keil的debug中手动写入
|
uint8_t menu_reset_flag; //复位标志,在keil的debug中手动写入
|
||||||
|
KEYS_STATUS key_sts[11]; //按键状态,是否使能
|
||||||
|
|
||||||
//screen_init
|
//screen_init
|
||||||
uint8_t scr_init_flag; //初始界面标志,是否播放过开机动画
|
uint8_t scr_init_flag; //初始界面标志,是否播放过开机动画
|
||||||
|
@ -125,7 +174,6 @@ typedef struct
|
||||||
uint8_t sign_flag_out; //输出信号符号位标志,0->不显示,1->显示负号
|
uint8_t sign_flag_out; //输出信号符号位标志,0->不显示,1->显示负号
|
||||||
|
|
||||||
//screen_setting
|
//screen_setting
|
||||||
uint8_t key_setting_enable; //按键功能使能标志
|
|
||||||
|
|
||||||
}MENU_DATA;
|
}MENU_DATA;
|
||||||
|
|
||||||
|
@ -227,20 +275,7 @@ extern PHYSICAL_QUANTITY RES; //电阻,Ω
|
||||||
extern PHYSICAL_QUANTITY FRE; //频率,KHz
|
extern PHYSICAL_QUANTITY FRE; //频率,KHz
|
||||||
extern PHYSICAL_QUANTITY TC[8]; //热电偶,共8种
|
extern PHYSICAL_QUANTITY TC[8]; //热电偶,共8种
|
||||||
extern PHYSICAL_QUANTITY RTD; //热电阻
|
extern PHYSICAL_QUANTITY RTD; //热电阻
|
||||||
extern uint16_t screen_switch_wait; //屏幕切换的等待时间
|
extern KEYS key_pv;
|
||||||
|
|
||||||
//按键值
|
|
||||||
#define KEY_OUT 76
|
|
||||||
#define KEY_UP 84
|
|
||||||
#define KEY_MENU 68
|
|
||||||
#define KEY_IN 78
|
|
||||||
#define KEY_LEFT 77
|
|
||||||
#define KEY_OK 85
|
|
||||||
#define KEY_RIGHT 94
|
|
||||||
#define KEY_SWITCH 69
|
|
||||||
#define KEY_SOURCE 111
|
|
||||||
#define KEY_DOWN 86
|
|
||||||
#define KEY_BACK 70
|
|
||||||
|
|
||||||
//语言
|
//语言
|
||||||
#define MENU_SIMPLYFY_CHINESE 0
|
#define MENU_SIMPLYFY_CHINESE 0
|
||||||
|
@ -249,7 +284,7 @@ extern uint16_t screen_switch_wait; //屏幕切换的等
|
||||||
//绝对值计算
|
//绝对值计算
|
||||||
#define MY_ABS(pa) ( ( (pa) >= 0 )?( (pa) ):( 0 - (pa) ) )
|
#define MY_ABS(pa) ( ( (pa) >= 0 )?( (pa) ):( 0 - (pa) ) )
|
||||||
|
|
||||||
//模拟正式产品,实现基本功能
|
//屏幕显示
|
||||||
void screen_run(void);
|
void screen_run(void);
|
||||||
|
|
||||||
//计算a的b次方
|
//计算a的b次方
|
||||||
|
@ -288,6 +323,15 @@ float32 temp2ohm(float32 temp);
|
||||||
//初始化打包
|
//初始化打包
|
||||||
void my_inits_gather(void);
|
void my_inits_gather(void);
|
||||||
|
|
||||||
|
//按键数据类型转换
|
||||||
|
void key_char2struct(void);
|
||||||
|
|
||||||
|
//按键使能查询
|
||||||
|
KEYS_STATUS key_valid(KEYS_TAG key_t);
|
||||||
|
|
||||||
|
//按键状态配置
|
||||||
|
void key_config(KEYS_TAG key_t, KEYS_STATUS sts);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,10 @@ void screen_data_init(void)
|
||||||
m5data.tick_cur = -1; //当前时刻,用于计时
|
m5data.tick_cur = -1; //当前时刻,用于计时
|
||||||
m5data.menu_reset_flag = 0; //复位使能标志,置1后复位,复位完成后变回0
|
m5data.menu_reset_flag = 0; //复位使能标志,置1后复位,复位完成后变回0
|
||||||
physical_quantity_init();
|
physical_quantity_init();
|
||||||
|
for (uint8_t i = 0; i < 11; i++)
|
||||||
|
{
|
||||||
|
m5data.key_sts[i] = KEY_STATUS_ENABLE;
|
||||||
|
}
|
||||||
|
|
||||||
//screen_init
|
//screen_init
|
||||||
m5data.scr_init_flag = 0; //是否进行过初始化(开机动画)
|
m5data.scr_init_flag = 0; //是否进行过初始化(开机动画)
|
||||||
|
@ -20,13 +24,11 @@ void screen_data_init(void)
|
||||||
|
|
||||||
//screen_setting
|
//screen_setting
|
||||||
tab_data_init();
|
tab_data_init();
|
||||||
m5data.key_setting_enable = 0; //按键默认不使能
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//主界面参数初始化
|
//主界面参数初始化
|
||||||
void main_data_init(void)
|
void main_data_init(void)
|
||||||
{
|
{
|
||||||
m5data.key_main_enable = 0; //按键默认不使能
|
|
||||||
m5data.runtime_seconds = 0; //秒
|
m5data.runtime_seconds = 0; //秒
|
||||||
m5data.runtime_minutes = 0; //分钟
|
m5data.runtime_minutes = 0; //分钟
|
||||||
m5data.runtime_hours = 0; //小时
|
m5data.runtime_hours = 0; //小时
|
||||||
|
@ -36,11 +38,9 @@ void main_data_init(void)
|
||||||
|
|
||||||
m5data.io_cursor = 3; //当前游标位置,[0000,000]:0~6
|
m5data.io_cursor = 3; //当前游标位置,[0000,000]:0~6
|
||||||
m5data.io_cursor_prv = 3; //前一时刻游标位置
|
m5data.io_cursor_prv = 3; //前一时刻游标位置
|
||||||
#if NIXIE_CUBE_ENABLE
|
m5data.io_on2off = IO_OFF; //初始为关闭状态
|
||||||
m5data.twk_flag = 0; //0停止闪烁,1开始闪烁
|
m5data.io_mode = IO_OUTPUT; //默认工作模式,0:输入IN,1:输出OUT
|
||||||
m5data.twk_flip = 0; //0显示,1不显示
|
|
||||||
m5data.twk_cnt = 0; //闪烁计数
|
|
||||||
#endif
|
|
||||||
m5data.sign_flag_in = 0; //默认不显示符号
|
m5data.sign_flag_in = 0; //默认不显示符号
|
||||||
m5data.sign_flag_out = 0; //默认不显示符号
|
m5data.sign_flag_out = 0; //默认不显示符号
|
||||||
|
|
||||||
|
@ -50,8 +50,6 @@ void main_data_init(void)
|
||||||
m5data.o_numbers[i] = 0; //输出值/设定值
|
m5data.o_numbers[i] = 0; //输出值/设定值
|
||||||
}
|
}
|
||||||
|
|
||||||
m5data.io_on2off = IO_OFF; //初始为关闭状态
|
|
||||||
m5data.io_mode = IO_OUTPUT; //默认工作模式,0:输入IN,1:输出OUT
|
|
||||||
m5data.input_mode = CUR.tag; //输入功能初始为电流模式
|
m5data.input_mode = CUR.tag; //输入功能初始为电流模式
|
||||||
m5data.input_mode_type = CUR.typ; //电流单位为mA
|
m5data.input_mode_type = CUR.typ; //电流单位为mA
|
||||||
m5data.output_mode = CUR.tag; //输出功能初始为电流模式
|
m5data.output_mode = CUR.tag; //输出功能初始为电流模式
|
||||||
|
@ -60,25 +58,31 @@ void main_data_init(void)
|
||||||
|
|
||||||
//绘图数据初始化
|
//绘图数据初始化
|
||||||
plot_data_init();
|
plot_data_init();
|
||||||
|
|
||||||
|
#if NIXIE_CUBE_ENABLE
|
||||||
|
m5data.twk_flag = 0; //0停止闪烁,1开始闪烁
|
||||||
|
m5data.twk_flip = 0; //0显示,1不显示
|
||||||
|
m5data.twk_cnt = 0; //闪烁计数
|
||||||
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//绘图数据初始化
|
//绘图数据初始化
|
||||||
void plot_data_init(void)
|
void plot_data_init(void)
|
||||||
{
|
{
|
||||||
//chart组件显示(int),绘图值
|
//绘图值
|
||||||
pltdata.y_pri_low = 0; //主轴的显示下限,0,通常不做修改
|
pltdata.y_pri_low = 0; //主轴的显示下限,0,通常不做修改
|
||||||
pltdata.y_pri_up = 100; //主轴的显示上限,100,通常不做修改
|
pltdata.y_pri_up = 100; //主轴的显示上限,100,通常不做修改
|
||||||
pltdata.y_scd_low = 0; //副轴的显示下限,0,通常不做修改
|
pltdata.y_scd_low = 0; //副轴的显示下限,0,通常不做修改
|
||||||
pltdata.y_scd_up = 100; //副轴的显示上限,100,通常不做修改
|
pltdata.y_scd_up = 100; //副轴的显示上限,100,通常不做修改
|
||||||
pltdata.y_pri_value = 0; //主轴的实时显示值,0~100
|
pltdata.y_pri_value = 0; //主轴的实时显示值,0~100
|
||||||
pltdata.y_pri_value_prv = 0; //前一时刻的曲线绘图值
|
pltdata.y_pri_value_prv = 0; //主轴前一时刻的曲线绘图值
|
||||||
pltdata.y_scd_value = 0; //副轴的实时显示值,0~100
|
pltdata.y_scd_value = 0; //副轴的实时显示值,0~100
|
||||||
pltdata.y_scd_value_prv = 0; //前一时刻的曲线绘图值
|
pltdata.y_scd_value_prv = 0; //副轴前一时刻的曲线绘图值
|
||||||
pltdata.y_scd_value_prv = 0; //前一时刻的实时显示值。
|
|
||||||
pltdata.pri_wait_tick = 0; //主轴等待滴答数
|
pltdata.pri_wait_tick = 0; //主轴等待滴答数
|
||||||
pltdata.scd_wait_tick = 0; //副轴等待滴答数
|
pltdata.scd_wait_tick = 0; //副轴等待滴答数
|
||||||
|
|
||||||
//chart组件显示(int),实际值
|
//实际值
|
||||||
pltdata.yreal_pri_low = 0; //实际值的显示下限,主轴
|
pltdata.yreal_pri_low = 0; //实际值的显示下限,主轴
|
||||||
pltdata.yreal_pri_up = 0; //实际值的显示上限,主轴
|
pltdata.yreal_pri_up = 0; //实际值的显示上限,主轴
|
||||||
pltdata.yreal_scd_low = 0; //实际值的显示下限,副轴
|
pltdata.yreal_scd_low = 0; //实际值的显示下限,副轴
|
||||||
|
@ -99,6 +103,10 @@ void menu_reset(void)
|
||||||
|
|
||||||
//加载初始界面
|
//加载初始界面
|
||||||
setup_scr_screen_init(&guider_ui);
|
setup_scr_screen_init(&guider_ui);
|
||||||
|
scr_main_recover();
|
||||||
|
|
||||||
|
delay_cnt(200);
|
||||||
|
|
||||||
lv_scr_load(guider_ui.screen_init);
|
lv_scr_load(guider_ui.screen_init);
|
||||||
|
|
||||||
//释放内存
|
//释放内存
|
||||||
|
@ -106,13 +114,13 @@ void menu_reset(void)
|
||||||
{
|
{
|
||||||
case SCREEN_MAIN:
|
case SCREEN_MAIN:
|
||||||
{
|
{
|
||||||
lv_obj_del(guider_ui.screen_main);
|
lv_obj_add_flag(guider_ui.screen_main, LV_OBJ_FLAG_HIDDEN);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SCREEN_SETTING:
|
case SCREEN_SETTING:
|
||||||
{
|
{
|
||||||
lv_obj_del(guider_ui.screen_setting);
|
lv_obj_add_flag(guider_ui.screen_setting, LV_OBJ_FLAG_HIDDEN);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -127,13 +135,15 @@ void menu_reset(void)
|
||||||
//KEY_MAIN
|
//KEY_MAIN
|
||||||
void key_functions_main(void)
|
void key_functions_main(void)
|
||||||
{
|
{
|
||||||
|
if( key_valid(key_pv.tag) == KEY_STATUS_DISABLE ) return;
|
||||||
|
|
||||||
uint8_t cursor_temp = 0; //临时游标,替代枚举变量进行加减运算
|
uint8_t cursor_temp = 0; //临时游标,替代枚举变量进行加减运算
|
||||||
|
|
||||||
switch (key)
|
switch (key_pv.tag)
|
||||||
{
|
{
|
||||||
case KEY_OUT:
|
case KEY_OUT:
|
||||||
{
|
{
|
||||||
key = 0;
|
key_pv.tag = KEY_NONE;
|
||||||
|
|
||||||
//交替按下 in 和 out 时,只改变输入/输出,连续按同一个键的时候才改变类型
|
//交替按下 in 和 out 时,只改变输入/输出,连续按同一个键的时候才改变类型
|
||||||
if(m5data.io_mode == IO_INPUT)
|
if(m5data.io_mode == IO_INPUT)
|
||||||
|
@ -202,7 +212,7 @@ void key_functions_main(void)
|
||||||
|
|
||||||
case KEY_UP:
|
case KEY_UP:
|
||||||
{
|
{
|
||||||
key = 0;
|
key_pv.tag = KEY_NONE;
|
||||||
|
|
||||||
if(m5data.io_mode == IO_INPUT)
|
if(m5data.io_mode == IO_INPUT)
|
||||||
{
|
{
|
||||||
|
@ -219,8 +229,8 @@ void key_functions_main(void)
|
||||||
|
|
||||||
case KEY_MENU:
|
case KEY_MENU:
|
||||||
{
|
{
|
||||||
if( m5data.tick_prv == -1 )
|
key_pv.tag = KEY_NONE;
|
||||||
{
|
|
||||||
//加载菜单界面
|
//加载菜单界面
|
||||||
lv_scr_load(guider_ui.screen_setting);
|
lv_scr_load(guider_ui.screen_setting);
|
||||||
scr_setting_recover();
|
scr_setting_recover();
|
||||||
|
@ -229,39 +239,13 @@ void key_functions_main(void)
|
||||||
//隐藏主界面对象
|
//隐藏主界面对象
|
||||||
lv_obj_add_flag(guider_ui.screen_main, LV_OBJ_FLAG_HIDDEN);
|
lv_obj_add_flag(guider_ui.screen_main, LV_OBJ_FLAG_HIDDEN);
|
||||||
|
|
||||||
//按键标志置0,等待一段时间后再切换至设置菜单的按键功能
|
|
||||||
m5data.key_main_enable = 0;
|
|
||||||
|
|
||||||
m5data.tick_prv = xTaskGetTickCount(); //记录起始时刻
|
|
||||||
}else
|
|
||||||
{
|
|
||||||
m5data.tick_cur = xTaskGetTickCount(); //记录当前时刻
|
|
||||||
|
|
||||||
if(m5data.tick_cur < m5data.tick_prv) //防止溢出(当前tick小于前一刻的tick)
|
|
||||||
{
|
|
||||||
m5data.tick_prv = -1; //溢出后复位并返回
|
|
||||||
m5data.tick_cur = -1;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if( (m5data.tick_cur - m5data.tick_prv) >= screen_switch_wait) //tick间隔达到目标后,执行功能
|
|
||||||
{
|
|
||||||
//等待结束,切换成设置菜单的按键功能
|
|
||||||
m5data.scr_now = SCREEN_SETTING; //当前界面为详细设置菜单
|
m5data.scr_now = SCREEN_SETTING; //当前界面为详细设置菜单
|
||||||
m5data.key_setting_enable = 1;
|
|
||||||
|
|
||||||
key = 0;
|
|
||||||
|
|
||||||
m5data.tick_prv = -1;
|
|
||||||
m5data.tick_cur = -1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case KEY_IN:
|
case KEY_IN:
|
||||||
{
|
{
|
||||||
key = 0;
|
key_pv.tag = KEY_NONE;
|
||||||
|
|
||||||
if(m5data.io_mode == IO_OUTPUT)
|
if(m5data.io_mode == IO_OUTPUT)
|
||||||
{
|
{
|
||||||
|
@ -332,7 +316,7 @@ void key_functions_main(void)
|
||||||
|
|
||||||
case KEY_LEFT:
|
case KEY_LEFT:
|
||||||
{
|
{
|
||||||
key = 0;
|
key_pv.tag = KEY_NONE;
|
||||||
|
|
||||||
if(m5data.io_mode == IO_INPUT)
|
if(m5data.io_mode == IO_INPUT)
|
||||||
{
|
{
|
||||||
|
@ -356,7 +340,7 @@ void key_functions_main(void)
|
||||||
|
|
||||||
case KEY_OK:
|
case KEY_OK:
|
||||||
{
|
{
|
||||||
key = 0;
|
key_pv.tag = KEY_NONE;
|
||||||
|
|
||||||
//主界面用OK键控制开关ON&OFF
|
//主界面用OK键控制开关ON&OFF
|
||||||
if(m5data.io_on2off == IO_ON)
|
if(m5data.io_on2off == IO_ON)
|
||||||
|
@ -374,7 +358,7 @@ void key_functions_main(void)
|
||||||
|
|
||||||
case KEY_RIGHT:
|
case KEY_RIGHT:
|
||||||
{
|
{
|
||||||
key = 0;
|
key_pv.tag = KEY_NONE;
|
||||||
|
|
||||||
if(m5data.io_mode == IO_INPUT)
|
if(m5data.io_mode == IO_INPUT)
|
||||||
{
|
{
|
||||||
|
@ -397,7 +381,7 @@ void key_functions_main(void)
|
||||||
|
|
||||||
case KEY_SWITCH:
|
case KEY_SWITCH:
|
||||||
{
|
{
|
||||||
key = 0;
|
key_pv.tag = KEY_NONE;
|
||||||
|
|
||||||
switch (m5data.io_mode) //输入、输出模式切换
|
switch (m5data.io_mode) //输入、输出模式切换
|
||||||
{
|
{
|
||||||
|
@ -526,13 +510,13 @@ void key_functions_main(void)
|
||||||
case KEY_SOURCE:
|
case KEY_SOURCE:
|
||||||
{
|
{
|
||||||
//电源开关靠硬件电路实现,此处可做预留
|
//电源开关靠硬件电路实现,此处可做预留
|
||||||
key = 0;
|
key_pv.tag = KEY_NONE;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case KEY_DOWN:
|
case KEY_DOWN:
|
||||||
{
|
{
|
||||||
key = 0;
|
key_pv.tag = KEY_NONE;
|
||||||
|
|
||||||
if(m5data.io_mode == IO_INPUT)
|
if(m5data.io_mode == IO_INPUT)
|
||||||
{
|
{
|
||||||
|
@ -550,13 +534,24 @@ void key_functions_main(void)
|
||||||
|
|
||||||
case KEY_BACK: //闲置,预留
|
case KEY_BACK: //闲置,预留
|
||||||
{
|
{
|
||||||
key = 0;
|
key_pv.tag = KEY_NONE;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case KEY_ALL: //闲置,预留
|
||||||
|
{
|
||||||
|
key_pv.tag = KEY_NONE;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case KEY_NONE: //闲置,预留
|
||||||
|
{
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
key = 0;
|
key_pv.tag = KEY_NONE;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -587,16 +582,23 @@ void scr_init_run(void)
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
{
|
{
|
||||||
//加载主界面和设置界面的内容
|
//配置主界面的内容
|
||||||
setup_scr_screen_main(&guider_ui);
|
setup_scr_screen_main(&guider_ui);
|
||||||
delay_cnt(200);
|
|
||||||
setup_scr_screen_setting(&guider_ui);
|
//不加延时有概率卡死
|
||||||
delay_cnt(200);
|
delay_cnt(200);
|
||||||
|
|
||||||
|
//配置设置界面的内容
|
||||||
|
setup_scr_screen_setting(&guider_ui);
|
||||||
|
|
||||||
|
//不加延时有概率卡死
|
||||||
|
delay_cnt(200);
|
||||||
|
|
||||||
|
//加载主界面
|
||||||
lv_scr_load(guider_ui.screen_main);
|
lv_scr_load(guider_ui.screen_main);
|
||||||
//额外处理,也用于界面切换
|
|
||||||
scr_main_recover();
|
scr_main_recover();
|
||||||
|
|
||||||
|
//开机动画结束后,隐藏初始界面
|
||||||
lv_obj_add_flag(guider_ui.screen_init, LV_OBJ_FLAG_HIDDEN);
|
lv_obj_add_flag(guider_ui.screen_init, LV_OBJ_FLAG_HIDDEN);
|
||||||
|
|
||||||
init_step = 3;
|
init_step = 3;
|
||||||
|
@ -604,37 +606,9 @@ void scr_init_run(void)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 3:
|
case 3:
|
||||||
{
|
|
||||||
if( m5data.tick_prv == -1 )
|
|
||||||
{
|
|
||||||
m5data.tick_prv = xTaskGetTickCount(); //记录起始时刻
|
|
||||||
}else
|
|
||||||
{
|
|
||||||
m5data.tick_cur = xTaskGetTickCount(); //记录当前时刻
|
|
||||||
|
|
||||||
if(m5data.tick_cur < m5data.tick_prv) //防止溢出(当前tick小于前一刻的tick)
|
|
||||||
{
|
|
||||||
m5data.tick_prv = -1; //溢出后复位并返回
|
|
||||||
m5data.tick_cur = -1;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(m5data.tick_cur - m5data.tick_prv >= screen_switch_wait) //tick间隔达到目标后,执行功能
|
|
||||||
{
|
|
||||||
init_step = 4;
|
|
||||||
|
|
||||||
m5data.tick_prv = -1;
|
|
||||||
m5data.tick_cur = -1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 4:
|
|
||||||
{
|
{
|
||||||
m5data.scr_init_flag = 1; //开机动画结束,只执行一次
|
m5data.scr_init_flag = 1; //开机动画结束,只执行一次
|
||||||
m5data.scr_now = SCREEN_MAIN; //开机动画结束后,默认进入主界面
|
m5data.scr_now = SCREEN_MAIN; //开机动画结束后,默认进入主界面
|
||||||
m5data.key_main_enable = 1;
|
|
||||||
|
|
||||||
init_step = 0;
|
init_step = 0;
|
||||||
}
|
}
|
||||||
|
@ -1404,6 +1378,19 @@ void scr_main_recover(void)
|
||||||
setting_items_check(99, tabdata.item_cursor);
|
setting_items_check(99, tabdata.item_cursor);
|
||||||
tabdata.item_cursor = 0;
|
tabdata.item_cursor = 0;
|
||||||
tabdata.item_cursor_prv = 99;
|
tabdata.item_cursor_prv = 99;
|
||||||
|
|
||||||
|
//使能所有按键
|
||||||
|
key_config(KEY_UP, KEY_STATUS_ENABLE);
|
||||||
|
key_config(KEY_DOWN, KEY_STATUS_ENABLE);
|
||||||
|
key_config(KEY_OK, KEY_STATUS_ENABLE);
|
||||||
|
key_config(KEY_BACK, KEY_STATUS_ENABLE);
|
||||||
|
key_config(KEY_LEFT, KEY_STATUS_ENABLE);
|
||||||
|
key_config(KEY_RIGHT, KEY_STATUS_ENABLE);
|
||||||
|
key_config(KEY_IN, KEY_STATUS_ENABLE);
|
||||||
|
key_config(KEY_OUT, KEY_STATUS_ENABLE);
|
||||||
|
key_config(KEY_SOURCE, KEY_STATUS_ENABLE);
|
||||||
|
key_config(KEY_MENU, KEY_STATUS_ENABLE);
|
||||||
|
key_config(KEY_SWITCH, KEY_STATUS_ENABLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
//颜色更新
|
//颜色更新
|
||||||
|
|
|
@ -24,6 +24,7 @@ void tab_data_init(void)
|
||||||
tabdata.content_focus = 0; //默认无焦点
|
tabdata.content_focus = 0; //默认无焦点
|
||||||
|
|
||||||
//设置界面的初始默认值
|
//设置界面的初始默认值
|
||||||
|
|
||||||
//EEPROM部分
|
//EEPROM部分
|
||||||
eeprom_item_data_init();
|
eeprom_item_data_init();
|
||||||
|
|
||||||
|
@ -31,23 +32,19 @@ void tab_data_init(void)
|
||||||
tabdata.item0_page0_vunit = VOLTAGE_V; //电压单位
|
tabdata.item0_page0_vunit = VOLTAGE_V; //电压单位
|
||||||
tabdata.item0_page1_TCtype = TC_K; //默认为K类型的热电偶
|
tabdata.item0_page1_TCtype = TC_K; //默认为K类型的热电偶
|
||||||
|
|
||||||
//ITEMS_1(注释项位于EERPOM读取)
|
//ITEMS_1(部分内容位于EERPOM读取)
|
||||||
// tabdata.item1_page0_sample_interval = 1500; //ms
|
|
||||||
// tabdata.item1_page0_plot_num = 5; //曲线上同时显示的点数
|
|
||||||
// tabdata.item1_page0_color_input = COLOR_YELLOW; //输入曲线颜色
|
|
||||||
// tabdata.item1_page0_color_output = COLOR_BLUE; //输出曲线颜色
|
|
||||||
|
|
||||||
//ITEMS_2(注释项位于EERPOM读取)
|
|
||||||
|
//ITEMS_2(部分内容位于EERPOM读取)
|
||||||
tabdata.item2_page0_saveflag = 0;
|
tabdata.item2_page0_saveflag = 0;
|
||||||
memset(tabdata.log_time, 0, sizeof(tabdata.log_time));
|
memset(tabdata.log_time, 0, sizeof(tabdata.log_time));
|
||||||
memset(tabdata.input_log_value, 0, sizeof(tabdata.input_log_value));
|
memset(tabdata.input_log_value, 0, sizeof(tabdata.input_log_value));
|
||||||
memset(tabdata.output_log_value, 0, sizeof(tabdata.output_log_value));
|
memset(tabdata.output_log_value, 0, sizeof(tabdata.output_log_value));
|
||||||
tabdata.item2_page0_resetflag = 0;
|
tabdata.item2_page0_resetflag = 0;
|
||||||
|
|
||||||
//ITEMS_3(注释项位于EERPOM读取)
|
//ITEMS_3(部分内容位于EERPOM读取)
|
||||||
tabdata.item3_page0_lightflag = 0; //照明状态标志,0熄灭,1开启
|
tabdata.item3_page0_lightflag = 0; //照明状态标志,0熄灭,1开启
|
||||||
LIGHT_OFF;
|
LIGHT_OFF;
|
||||||
// tabdata.item3_page0_language = MENU_SIMPLYFY_CHINESE; //语言类型
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -118,20 +115,16 @@ void eeprom_item_data_init(void)
|
||||||
//KEY_SETTING
|
//KEY_SETTING
|
||||||
void key_functions_setting(void)
|
void key_functions_setting(void)
|
||||||
{
|
{
|
||||||
if( (tabdata.item2_page0_saveflag == 1) || (tabdata.item2_page0_resetflag == 1) )
|
if( key_valid(key_pv.tag) == KEY_STATUS_DISABLE ) return;
|
||||||
{
|
|
||||||
//复位和保存过程中禁用按键
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (key)
|
switch (key_pv.tag)
|
||||||
{
|
{
|
||||||
case KEY_BACK:
|
case KEY_BACK:
|
||||||
{
|
{
|
||||||
|
key_pv.tag = KEY_NONE;
|
||||||
|
|
||||||
//从设置界面返回主界面
|
//从设置界面返回主界面
|
||||||
if(tabdata.content_cursor == 99)
|
if(tabdata.content_cursor == 99)
|
||||||
{
|
|
||||||
if( m5data.tick_prv == -1 )
|
|
||||||
{
|
{
|
||||||
//加载主界面
|
//加载主界面
|
||||||
lv_scr_load(guider_ui.screen_main);
|
lv_scr_load(guider_ui.screen_main);
|
||||||
|
@ -141,39 +134,10 @@ void key_functions_setting(void)
|
||||||
//隐藏设置界面对象
|
//隐藏设置界面对象
|
||||||
lv_obj_add_flag(guider_ui.screen_setting, LV_OBJ_FLAG_HIDDEN);
|
lv_obj_add_flag(guider_ui.screen_setting, LV_OBJ_FLAG_HIDDEN);
|
||||||
|
|
||||||
//设置菜单按键使能置零,等待一段时间后切换至主界面的按键功能
|
|
||||||
m5data.key_setting_enable = 0;
|
|
||||||
|
|
||||||
m5data.tick_prv = xTaskGetTickCount(); //记录起始时刻
|
|
||||||
}else
|
|
||||||
{
|
|
||||||
m5data.tick_cur = xTaskGetTickCount(); //记录当前时刻
|
|
||||||
|
|
||||||
if(m5data.tick_cur < m5data.tick_prv) //防止溢出(当前tick小于前一刻的tick)
|
|
||||||
{
|
|
||||||
m5data.tick_prv = -1; //溢出后复位并返回
|
|
||||||
m5data.tick_cur = -1;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if( (m5data.tick_cur - m5data.tick_prv) >= screen_switch_wait) //tick间隔达到目标后,执行功能
|
|
||||||
{
|
|
||||||
//等待结束,切换至主界面的按键功能
|
|
||||||
m5data.scr_now = SCREEN_MAIN;
|
m5data.scr_now = SCREEN_MAIN;
|
||||||
m5data.key_main_enable = 1;
|
|
||||||
|
|
||||||
key = 0;
|
|
||||||
|
|
||||||
m5data.tick_prv = -1;
|
|
||||||
m5data.tick_cur = -1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
key = 0;
|
|
||||||
|
|
||||||
//当不存在焦点时,从内容选择返回选项卡选择
|
//当不存在焦点时,从内容选择返回选项卡选择
|
||||||
if(tabdata.content_focus == 0)
|
if(tabdata.content_focus == 0)
|
||||||
{
|
{
|
||||||
|
@ -250,7 +214,7 @@ void key_functions_setting(void)
|
||||||
|
|
||||||
case KEY_UP:
|
case KEY_UP:
|
||||||
{
|
{
|
||||||
key = 0;
|
key_pv.tag = KEY_NONE;
|
||||||
|
|
||||||
//内部游标为99时,说明未选中任何一个选项卡,此时的up和down用于切换选项卡
|
//内部游标为99时,说明未选中任何一个选项卡,此时的up和down用于切换选项卡
|
||||||
if(tabdata.content_cursor == 99)
|
if(tabdata.content_cursor == 99)
|
||||||
|
@ -320,7 +284,7 @@ void key_functions_setting(void)
|
||||||
|
|
||||||
case KEY_DOWN:
|
case KEY_DOWN:
|
||||||
{
|
{
|
||||||
key = 0;
|
key_pv.tag = KEY_NONE;
|
||||||
|
|
||||||
//内部游标为99时,说明未选中任何一个选项卡,此时的up和down用于切换选项卡
|
//内部游标为99时,说明未选中任何一个选项卡,此时的up和down用于切换选项卡
|
||||||
if(tabdata.content_cursor == 99)
|
if(tabdata.content_cursor == 99)
|
||||||
|
@ -388,7 +352,7 @@ void key_functions_setting(void)
|
||||||
|
|
||||||
case KEY_OK:
|
case KEY_OK:
|
||||||
{
|
{
|
||||||
key = 0;
|
key_pv.tag = KEY_NONE;
|
||||||
|
|
||||||
if(tabdata.content_cursor == 99)
|
if(tabdata.content_cursor == 99)
|
||||||
{
|
{
|
||||||
|
@ -396,6 +360,20 @@ void key_functions_setting(void)
|
||||||
tabdata.content_cursor = 0;
|
tabdata.content_cursor = 0;
|
||||||
tabdata.content_cursor_prv = 99;
|
tabdata.content_cursor_prv = 99;
|
||||||
setting_contents_check(tabdata.content_cursor, tabdata.content_cursor_prv);
|
setting_contents_check(tabdata.content_cursor, tabdata.content_cursor_prv);
|
||||||
|
|
||||||
|
//进入内容选择状态
|
||||||
|
key_config(KEY_UP, KEY_STATUS_ENABLE);
|
||||||
|
key_config(KEY_DOWN, KEY_STATUS_ENABLE);
|
||||||
|
key_config(KEY_OK, KEY_STATUS_ENABLE);
|
||||||
|
key_config(KEY_BACK, KEY_STATUS_ENABLE);
|
||||||
|
|
||||||
|
key_config(KEY_LEFT, KEY_STATUS_DISABLE);
|
||||||
|
key_config(KEY_RIGHT, KEY_STATUS_DISABLE);
|
||||||
|
key_config(KEY_IN, KEY_STATUS_DISABLE);
|
||||||
|
key_config(KEY_OUT, KEY_STATUS_DISABLE);
|
||||||
|
key_config(KEY_SOURCE, KEY_STATUS_DISABLE);
|
||||||
|
key_config(KEY_MENU, KEY_STATUS_DISABLE);
|
||||||
|
key_config(KEY_SWITCH, KEY_STATUS_DISABLE);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -435,13 +413,27 @@ void key_functions_setting(void)
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//进入内容修改状态
|
||||||
|
key_config(KEY_LEFT, KEY_STATUS_ENABLE);
|
||||||
|
key_config(KEY_RIGHT, KEY_STATUS_ENABLE);
|
||||||
|
key_config(KEY_BACK, KEY_STATUS_ENABLE);
|
||||||
|
|
||||||
|
key_config(KEY_OK, KEY_STATUS_DISABLE);
|
||||||
|
key_config(KEY_UP, KEY_STATUS_DISABLE);
|
||||||
|
key_config(KEY_DOWN, KEY_STATUS_DISABLE);
|
||||||
|
key_config(KEY_IN, KEY_STATUS_DISABLE);
|
||||||
|
key_config(KEY_OUT, KEY_STATUS_DISABLE);
|
||||||
|
key_config(KEY_SOURCE, KEY_STATUS_DISABLE);
|
||||||
|
key_config(KEY_MENU, KEY_STATUS_DISABLE);
|
||||||
|
key_config(KEY_SWITCH, KEY_STATUS_DISABLE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case KEY_LEFT:
|
case KEY_LEFT:
|
||||||
{
|
{
|
||||||
key = 0;
|
key_pv.tag = KEY_NONE;
|
||||||
|
|
||||||
if( tabdata.content_cursor == 99 )
|
if( tabdata.content_cursor == 99 )
|
||||||
{
|
{
|
||||||
|
@ -498,7 +490,7 @@ void key_functions_setting(void)
|
||||||
|
|
||||||
case KEY_RIGHT:
|
case KEY_RIGHT:
|
||||||
{
|
{
|
||||||
key = 0;
|
key_pv.tag = KEY_NONE;
|
||||||
|
|
||||||
if( tabdata.content_cursor == 99 )
|
if( tabdata.content_cursor == 99 )
|
||||||
{
|
{
|
||||||
|
@ -552,9 +544,13 @@ void key_functions_setting(void)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case KEY_NONE:
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
key = 0;
|
key_pv.tag = KEY_NONE;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1129,9 +1125,20 @@ void scr_setting_recover(void)
|
||||||
tabdata.item_page = 1;
|
tabdata.item_page = 1;
|
||||||
setting_items_page(ITEMS_0 ,tabdata.item_page);
|
setting_items_page(ITEMS_0 ,tabdata.item_page);
|
||||||
|
|
||||||
|
key_config(KEY_UP, KEY_STATUS_ENABLE);
|
||||||
|
key_config(KEY_DOWN, KEY_STATUS_ENABLE);
|
||||||
|
key_config(KEY_OK, KEY_STATUS_ENABLE);
|
||||||
|
key_config(KEY_BACK, KEY_STATUS_ENABLE);
|
||||||
|
|
||||||
|
key_config(KEY_LEFT, KEY_STATUS_DISABLE);
|
||||||
|
key_config(KEY_RIGHT, KEY_STATUS_DISABLE);
|
||||||
|
key_config(KEY_IN, KEY_STATUS_DISABLE);
|
||||||
|
key_config(KEY_OUT, KEY_STATUS_DISABLE);
|
||||||
|
key_config(KEY_SOURCE, KEY_STATUS_DISABLE);
|
||||||
|
key_config(KEY_MENU, KEY_STATUS_DISABLE);
|
||||||
|
key_config(KEY_SWITCH, KEY_STATUS_DISABLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t reset_step = 0, save_step = 0;
|
|
||||||
void scr_setting_run(void) //详细设置界面
|
void scr_setting_run(void) //详细设置界面
|
||||||
{
|
{
|
||||||
//处理保存事件
|
//处理保存事件
|
||||||
|
@ -1144,6 +1151,8 @@ void scr_setting_run(void) //详细设置界面
|
||||||
//执行保存功能
|
//执行保存功能
|
||||||
void deal_data_save(void)
|
void deal_data_save(void)
|
||||||
{
|
{
|
||||||
|
uint8_t save_step = 0;
|
||||||
|
|
||||||
if(tabdata.item2_page0_saveflag == 1)
|
if(tabdata.item2_page0_saveflag == 1)
|
||||||
{
|
{
|
||||||
if(save_step == 0)
|
if(save_step == 0)
|
||||||
|
@ -1153,6 +1162,9 @@ void deal_data_save(void)
|
||||||
//执行保存
|
//执行保存
|
||||||
//eeprom_datasave();
|
//eeprom_datasave();
|
||||||
eeprom_datasave_changed();
|
eeprom_datasave_changed();
|
||||||
|
|
||||||
|
//关闭所有按键
|
||||||
|
key_config(KEY_ALL, KEY_STATUS_DISABLE);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1176,7 +1188,8 @@ void deal_data_save(void)
|
||||||
set_item2_text(DATA_SAVE);
|
set_item2_text(DATA_SAVE);
|
||||||
}
|
}
|
||||||
|
|
||||||
save_step = 0;
|
//使能所有按键
|
||||||
|
key_config(KEY_ALL, KEY_STATUS_ENABLE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1186,6 +1199,8 @@ void deal_data_save(void)
|
||||||
//执行复位功能
|
//执行复位功能
|
||||||
void deal_data_reset(void)
|
void deal_data_reset(void)
|
||||||
{
|
{
|
||||||
|
uint8_t reset_step = 0;
|
||||||
|
|
||||||
if(tabdata.item2_page0_resetflag == 1)
|
if(tabdata.item2_page0_resetflag == 1)
|
||||||
{
|
{
|
||||||
if(reset_step == 0)
|
if(reset_step == 0)
|
||||||
|
@ -1198,6 +1213,9 @@ void deal_data_reset(void)
|
||||||
LIGHT_OFF;
|
LIGHT_OFF;
|
||||||
tabdata.item0_page0_vunit = VOLTAGE_V; //电压单位
|
tabdata.item0_page0_vunit = VOLTAGE_V; //电压单位
|
||||||
tabdata.item0_page1_TCtype = TC_K; //默认为K类型的热电偶
|
tabdata.item0_page1_TCtype = TC_K; //默认为K类型的热电偶
|
||||||
|
|
||||||
|
//关闭所有按键
|
||||||
|
key_config(KEY_ALL, KEY_STATUS_DISABLE);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1246,7 +1264,8 @@ void deal_data_reset(void)
|
||||||
set_item2_text(INPUT_LOG);
|
set_item2_text(INPUT_LOG);
|
||||||
set_item2_text(OUTPUT_LOG);
|
set_item2_text(OUTPUT_LOG);
|
||||||
|
|
||||||
reset_step = 0;
|
//使能所有按键
|
||||||
|
key_config(KEY_ALL, KEY_STATUS_ENABLE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#include "apps_gather.h" //用于头文件打包汇总,函数声明和变量定义
|
#include "apps_gather.h" //用于头文件打包汇总,函数声明和变量定义
|
||||||
// lv_conf.h { line:282->CPU&FPS; line:289->MEM used }
|
// lv_conf.h { line:282->CPU&FPS; line:289->MEM used }
|
||||||
//lv_obj_scroll.c, SCROLL_ANIM_TIME_MIN & SCROLL_ANIM_TIME_MAX
|
|
||||||
|
|
||||||
|
KEYS key_pv;
|
||||||
PHYSICAL_QUANTITY VOL[2]; //电压,VOL[0]-V, VOL[1]-mV
|
PHYSICAL_QUANTITY VOL[2]; //电压,VOL[0]-V, VOL[1]-mV
|
||||||
PHYSICAL_QUANTITY CUR; //电流,mA
|
PHYSICAL_QUANTITY CUR; //电流,mA
|
||||||
PHYSICAL_QUANTITY RES; //电阻,Ω
|
PHYSICAL_QUANTITY RES; //电阻,Ω
|
||||||
|
@ -146,13 +146,12 @@ void physical_quantity_init(void)
|
||||||
RTD.pv = 0;
|
RTD.pv = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
//切换屏幕的等待时间(ms)
|
|
||||||
uint16_t screen_switch_wait = 200;
|
|
||||||
void screen_run(void)
|
void screen_run(void)
|
||||||
{
|
{
|
||||||
|
//手动触发显示内容复位
|
||||||
if(m5data.menu_reset_flag)
|
if(m5data.menu_reset_flag)
|
||||||
{
|
{
|
||||||
menu_reset(); //触发显示内容复位
|
menu_reset();
|
||||||
|
|
||||||
m5data.menu_reset_flag = 0;
|
m5data.menu_reset_flag = 0;
|
||||||
|
|
||||||
|
@ -161,43 +160,26 @@ void screen_run(void)
|
||||||
|
|
||||||
if(m5data.scr_init_flag == 0)
|
if(m5data.scr_init_flag == 0)
|
||||||
{
|
{
|
||||||
scr_init_run(); //播放开机动画
|
//未播放过开机动画的情况下,播放开机动画
|
||||||
|
scr_init_run();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
//播放过开机动画之后,跳转至主界面
|
||||||
switch (m5data.scr_now)
|
switch (m5data.scr_now)
|
||||||
{
|
{
|
||||||
case SCREEN_MAIN:
|
case SCREEN_MAIN:
|
||||||
{
|
|
||||||
if(m5data.key_main_enable)
|
|
||||||
{
|
{
|
||||||
scr_main_run(); //主界面显示
|
scr_main_run(); //主界面显示
|
||||||
key_functions_main(); //主界面的按键功能
|
key_functions_main(); //主界面的按键功能
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
//KEY_MENU按下后进入此处,等待(screen_switch_wait)(ms),直接切换存在卡死风险
|
|
||||||
key = KEY_MENU;
|
|
||||||
key_functions_main(); //主界面的按键功能
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SCREEN_SETTING:
|
case SCREEN_SETTING:
|
||||||
{
|
|
||||||
if (m5data.key_setting_enable)
|
|
||||||
{
|
{
|
||||||
scr_setting_run(); //设置界面
|
scr_setting_run(); //设置界面
|
||||||
key_functions_setting(); //设置界面的按键功能
|
key_functions_setting(); //设置界面的按键功能
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
//KEY_BACK按下后进入此处,等待(screen_switch_wait)(ms),直接切换存在卡死风险
|
|
||||||
key = KEY_BACK;
|
|
||||||
key_functions_setting(); //主界面的按键功能
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -490,7 +472,6 @@ float32 temp2tcmv(SIG_FUNCTIONS_TYPE type, float32 temp)
|
||||||
}
|
}
|
||||||
|
|
||||||
//数据转换,mux_signal.pv -> real_value
|
//数据转换,mux_signal.pv -> real_value
|
||||||
//float32 m2r_test_in = 0, m2r_test_out = 0;
|
|
||||||
float32 mux2real(float32 mux_pv)
|
float32 mux2real(float32 mux_pv)
|
||||||
{
|
{
|
||||||
float32 result = 0;
|
float32 result = 0;
|
||||||
|
@ -602,7 +583,6 @@ float32 mux2real(float32 mux_pv)
|
||||||
case SIG_TC:
|
case SIG_TC:
|
||||||
{
|
{
|
||||||
result = tcmv2temp(type, mux_pv);
|
result = tcmv2temp(type, mux_pv);
|
||||||
//m2r_test_out = tcmv2temp(type, m2r_test_in);
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -862,7 +842,117 @@ void my_inits_gather(void)
|
||||||
events_init(&guider_ui); // 初始化事件
|
events_init(&guider_ui); // 初始化事件
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//按键数据类型转换
|
||||||
|
void key_char2struct(void)
|
||||||
|
{
|
||||||
|
key_pv.value = key;
|
||||||
|
|
||||||
|
switch (key_pv.value)
|
||||||
|
{
|
||||||
|
case KEY_OUT_VAL:
|
||||||
|
{
|
||||||
|
key_pv.tag = KEY_OUT;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case KEY_UP_VAL:
|
||||||
|
{
|
||||||
|
key_pv.tag = KEY_UP;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case KEY_MENU_VAL:
|
||||||
|
{
|
||||||
|
key_pv.tag = KEY_MENU;;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case KEY_IN_VAL:
|
||||||
|
{
|
||||||
|
key_pv.tag = KEY_IN;;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case KEY_LEFT_VAL:
|
||||||
|
{
|
||||||
|
key_pv.tag = KEY_LEFT;;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case KEY_OK_VAL:
|
||||||
|
{
|
||||||
|
key_pv.tag = KEY_OK;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case KEY_RIGHT_VAL:
|
||||||
|
{
|
||||||
|
key_pv.tag = KEY_RIGHT;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case KEY_SWITCH_VAL:
|
||||||
|
{
|
||||||
|
key_pv.tag = KEY_SWITCH;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case KEY_SOURCE_VAL:
|
||||||
|
{
|
||||||
|
key_pv.tag = KEY_SOURCE;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case KEY_DOWN_VAL:
|
||||||
|
{
|
||||||
|
key_pv.tag = KEY_DOWN;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case KEY_BACK_VAL:
|
||||||
|
{
|
||||||
|
key_pv.tag = KEY_BACK;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case KEY_NONE_VAL:
|
||||||
|
{
|
||||||
|
key_pv.tag = KEY_NONE;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case KEY_ALL_VAL:
|
||||||
|
{
|
||||||
|
key_pv.tag = KEY_ALL;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//按键状态配置
|
||||||
|
void key_config(KEYS_TAG key_t, KEYS_STATUS sts)
|
||||||
|
{
|
||||||
|
if(key_t != KEY_ALL)
|
||||||
|
{
|
||||||
|
m5data.key_sts[key_t] = sts;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
for (uint8_t i = 0; i < 11; i++)
|
||||||
|
{
|
||||||
|
m5data.key_status[i] = sts;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//按键使能查询
|
||||||
|
KEYS_STATUS key_valid(KEYS_TAG key_t)
|
||||||
|
{
|
||||||
|
return m5data.key_sts[key_t];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -35,6 +35,9 @@ void tm1650_read_key(I2C_HandleTypeDef *hi2c, BOOL *kp_flag, uint16_t cmd, uint8
|
||||||
{
|
{
|
||||||
*kp_flag = FALSE;
|
*kp_flag = FALSE;
|
||||||
HAL_I2C_Master_Receive(hi2c, cmd, key, 1, 0xff);
|
HAL_I2C_Master_Receive(hi2c, cmd, key, 1, 0xff);
|
||||||
|
|
||||||
|
//数据转换
|
||||||
|
key_char2struct();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -207,6 +207,7 @@ void start_task_hart(void const * argument)
|
||||||
for (;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
//hart_communicate(&scom1_hart);
|
//hart_communicate(&scom1_hart);
|
||||||
|
|
||||||
tm1650_read_key(&hi2c1, &kp_flag, COMMAND_READ_KEY_DATA, &key);
|
tm1650_read_key(&hi2c1, &kp_flag, COMMAND_READ_KEY_DATA, &key);
|
||||||
|
|
||||||
osDelay(10);
|
osDelay(10);
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue