sggt/App/APP_WU/Inc/scr_setting_progam_out.h

100 lines
2.0 KiB
C

#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
//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);
//百分比转化为数值输出, perc:[0, 100]
void percent2val_out(float32 perc);
#endif