#ifndef _SCR_SETTING_PROGRAM_OUT_H_ #define _SCR_SETTING_PROGRAM_OUT_H_ #include "apps_gather.h" //输出方式 #define PROG_OUT_V 0 #define PROG_OUT_MA 1 //输出模式 #define PROG_OUT_STEP 0 #define PROG_OUT_TRIANGLE 1 //最大循环次数 #define CIRCULATIONS_MAX 10 //三角波每个周期的间隔数量 #define TRIANLE_PLOT_INTERVAL_MAX 20 //CONFIG1 #define CONF1_OUTPUT_UNIT 0 #define CONF1_OUTPUT_MODE 1 #define CONF1_CIRCULATIONS 2 #define CONF1_NEXT 3 //CONFIG2_STEP #define CONF2_OUTPUT_MODE 0 #define CONF2_START_PERCENT 1 #define CONF2_END_PERCENT 2 #define CONF2_STEP_PERCENT 3 #define CONF2_HOLD_TIME 4 #define CONF2_RISING_PERCENT 5 #define CONF2_FALLING_PERCENT 6 #define CONF2_PERIOD 7 typedef enum { PROGOUT_WAITING = 0, PROGOUT_START, PROGOUT_RUNNING, PROGOUT_END }PROGRAM_OUT_PROCESS; typedef struct { uint8_t output_unit; uint8_t output_mode; uint8_t circulations; uint16_t hold_time; uint8_t start_percent; uint8_t end_percent; uint8_t step_percent; uint8_t rising_percent; uint8_t falling_percent; uint16_t period; PROGRAM_OUT_PROCESS process; int16_t out_max; int16_t out_min; uint8_t out_percent; //当前输出百分比 }PROGRAM_OUT_DATA; extern PROGRAM_OUT_DATA progout_data; extern uint8_t cursor_conf1; extern uint8_t cursor_conf1_prv; extern uint8_t cursor_conf2; extern uint8_t cursor_conf2_prv; //初始化相关参数 void program_out_init(void); //初始化config1界面 void program_out_config1(void); //更新config1右列文本内容 void text_update_conf1(uint8_t con); //修改config1右列值 void val_modify_conf1(int8_t step); //初始化config2界面 void program_out_config2(void); //更新config2右列文本内容 void text_update_conf2(uint8_t con); //修改config2右列值 void val_modify_conf2(int8_t step); //执行编程输出流程 void program_out_run(void); //执行编程输出,阶跃 void program_out_step(void); //执行编程输出,三角波 void program_out_triangle(void); //置于mux任务内,实时性更强 void running_process_step(void); //置于mux任务内,实时性更强 void running_process_triangle(void); //百分比转化为数值输出, perc:[0, 100] void percent2val_out(float32 perc); #endif