sggt/App/APP_WU/Inc/scr_setting_progam_out.h

109 lines
2.2 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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