42 lines
743 B
C
42 lines
743 B
C
#ifndef __WORK_H__
|
|
#define __WORK_H__
|
|
|
|
#include "main.h"
|
|
#include "key.h"
|
|
#include "pid.h"
|
|
|
|
typedef enum
|
|
{
|
|
// PWM占空比映射到电机
|
|
WORK_PWM_MAP = 0,
|
|
// 电机位置控制
|
|
WORK_MOTOR_POS = 1,
|
|
// 电机速度控制
|
|
WORK_MOTOR_SPEED = 2,
|
|
} work_e;
|
|
|
|
typedef struct
|
|
{
|
|
work_e type;
|
|
int32_t encoder_cnt; // 编码器位置
|
|
float32 pwm_percent; // PWM占空比
|
|
uint32_t pwm_feq; // PWM频率
|
|
|
|
pid_t pid;
|
|
|
|
struct
|
|
{
|
|
float32 kp;
|
|
float32 ki;
|
|
float32 kd;
|
|
float32 dead_zone;
|
|
} pid_params;
|
|
} work_t;
|
|
extern work_t work;
|
|
|
|
void work_init(void);
|
|
void work_process(void);
|
|
void work_key_handle_cb(button_id_e id);
|
|
void work_encoder_exti(void);
|
|
#endif // __WORK_H__
|