88 lines
2.7 KiB
C
88 lines
2.7 KiB
C
#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 |