MW22-02A/APP/Device/Device_rotate/rotate_electricstable.h

88 lines
2.7 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 __PTZ_ELECTRIC_STABLE_H_
#define __PTZ_ELECTRIC_STABLE_H_
#include "ptz_type_select.h"
#ifdef PTZ_LIGHT_GEAR_L6235D_AS5047D
#define PTZ_ELECTRIC_STABLE_L6235D 1 //自锁方式
#define PTZ_ELECTRIC_STABLE_ON 1 //自锁是否打开
#endif
#ifdef PTZ_ELECTRIC_STABLE_L6235D
#define ANGLE_SAMPLE_NUM 31
#define STABLE_T 5 //任务稳定执行的延时
#define HORI_SLIDE_DIRECTONG_THRESHOLD 24 //判断云台滑动方向的阈值 ANGLE_SAMPLE_NUM * 2 / 3
#define HORI_SLIDE_DIR_CHANGE_NUM 10 //滑动方向改变的次数
#define VERT_SLIDE_DIRECTONG_THRESHOLD 24 //判断云台滑动方向的阈值 ANGLE_SAMPLE_NUM * 2 / 3
#define VERT_SLIDE_DIR_CHANGE_NUM 10 //滑动方向改变的次数
//电子稳定电压等级增量
#define HORI_VREF_INC 300
#define VERT_VREF_INC 300
//刹车后启动电子自锁霍尔脉冲数
#define HORI_STOP_HALL_NUM 5
#define VERT_STOP_HALL_NUM 5
//电子稳定增加倍数
#define HORI_VREF_INC_MUL 2
#define VERT_VREF_INC_MUL 2
//反向力矩作用总周期
#define TORQUE_TOTAL_T 10//ms
//固定的反向力矩电压
#define TORQUE_VREF 100
typedef struct _vr_
{
unsigned int vref;
char dir;
}vr;
///云台电子稳定反向力矩
typedef struct _ElectricStable_
{
char stable_stop_switch;//刹车延时开关1打开0关闭。即刹车停止延时结束后置为1
char stable_sample_switch;//数据采集开关,表示角度采集分析结束。
float stable_angle[ANGLE_SAMPLE_NUM];//用于保存角度,判断云台滑动的趋势
unsigned int sample_count;//样本计数
unsigned int inc_count;//增加计数
unsigned int red_count;//减小计数
unsigned int equ_count;//相等计数
vr v[200];
unsigned int count;
unsigned int stable_vref;//输入模拟电压等级
char slide_direction_actual;//云台滑动实际方向
char slide_direction_last;//云台滑动上一次方向
char slide_dir_change_num;//云台换向次数
char reverse_torque_direction_a;//反向力矩初始方向
char reverse_torque_direction;//反向力矩方向
char reverse_torque_direction_last;//上一次反向力矩方向
unsigned int stop_hall_count;//云台停止时霍尔计数
unsigned char state;//反向力矩控制过程
//刹车解除周期
unsigned short int torque_start_t;
//刹车周期
unsigned short int torque_stop_t;
//开关
char torque_switch;
}ElectricStable;
#endif
#ifdef PTZ_BLDC_MOTOR
void ptz_hori_electric_stable_init();
void ptz_vert_electric_stable_init();
void task_electric_stable_init(void);
#endif
#endif