109 lines
3.1 KiB
C
109 lines
3.1 KiB
C
#ifndef __PTZ_ROATE_CONTROL_H_
|
|
#define __PTZ_ROATE_CONTROL_H_
|
|
#include "ptz_header_file.h"
|
|
#include "ptz_type_select.h"
|
|
#include "tmc2160.h"
|
|
|
|
//步进电机
|
|
#ifdef PTZ_SUPER_LIGHT_WORM_STEP_TMC2160_AS5047D_24V
|
|
///云台水平右转
|
|
#define PTZ_HORI_DIR_RIGHT 0
|
|
///云台水平左转
|
|
#define PTZ_HORI_DIR_LEFT 1
|
|
///云台处于停止状态
|
|
#define PTZ_HORI_DIR_STOP 2
|
|
|
|
///云台垂直向上
|
|
#define PTZ_VERT_DIR_UP 0
|
|
///云台垂直向下
|
|
#define PTZ_VERT_DIR_DOWN 1
|
|
///云台处于停止状态
|
|
#define PTZ_VERT_DIR_STOP 2
|
|
|
|
///距离最近刹车点以最小转速运行的距离
|
|
#define PTZ_HORI_BREAK_SPEED_ANGLE ptz_hori_break_angle()
|
|
#define PTZ_VERT_BREAK_SPEED_ANGLE ptz_vert_break_angle()
|
|
|
|
///刹车最近距离
|
|
#define PTZ_HORI_STOP_NEAR_DISTANCE 0.005
|
|
///刹车最远距离
|
|
#define PTZ_HORI_STOP_FAR_DISTANCE 4.0
|
|
|
|
///刹车最近距离
|
|
#define PTZ_VERT_STOP_NEAR_DISTANCE 0.005
|
|
///刹车最远距离
|
|
#define PTZ_VERT_STOP_FAR_DISTANCE 4.0
|
|
|
|
///云台定位精度,也可用于判断是不是同一个位置
|
|
#define PTZ_HORI_ANGLE_ACCURACY 0.05
|
|
///云台定位精度,也可用于判断是不是同一个位置
|
|
#define PTZ_VERT_ANGLE_ACCURACY 0.05
|
|
#endif
|
|
|
|
//中型步进电机
|
|
#ifdef PTZ_MEDIUM_WORM_STEP_TMC2160_AS5047D_24V
|
|
///云台水平右转
|
|
#define PTZ_HORI_DIR_RIGHT 1//0
|
|
///云台水平左转
|
|
#define PTZ_HORI_DIR_LEFT 3//0//1
|
|
///云台处于停止状态
|
|
#define PTZ_HORI_DIR_STOP 2
|
|
|
|
///云台垂直向上
|
|
#define PTZ_VERT_DIR_UP 1//0
|
|
///云台垂直向下
|
|
#define PTZ_VERT_DIR_DOWN 3//0//1
|
|
///云台处于停止状态
|
|
#define PTZ_VERT_DIR_STOP 2
|
|
|
|
///距离最近刹车点以最小转速运行的距离
|
|
#define PTZ_HORI_BREAK_SPEED_ANGLE ptz_hori_break_angle()
|
|
#define PTZ_VERT_BREAK_SPEED_ANGLE ptz_vert_break_angle()
|
|
|
|
///刹车最近距离
|
|
#define PTZ_HORI_STOP_NEAR_DISTANCE 0.005
|
|
///刹车最远距离
|
|
#define PTZ_HORI_STOP_FAR_DISTANCE 4.0
|
|
|
|
///刹车最近距离
|
|
#define PTZ_VERT_STOP_NEAR_DISTANCE 0.005
|
|
///刹车最远距离
|
|
#define PTZ_VERT_STOP_FAR_DISTANCE 4.0
|
|
|
|
///云台定位精度,也可用于判断是不是同一个位置
|
|
#define PTZ_HORI_ANGLE_ACCURACY 0.05
|
|
///云台定位精度,也可用于判断是不是同一个位置
|
|
#define PTZ_VERT_ANGLE_ACCURACY 0.05
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef PTZ_STEP_MOTOR
|
|
|
|
float ptz_vert_break_angle();
|
|
float ptz_hori_break_angle();
|
|
|
|
float ptz_hori_step_v_to_f(float v, unsigned short int microstep_alue);
|
|
float ptz_hori_step_f_to_v(float f, unsigned short int microstep_alue);
|
|
|
|
float ptz_vert_step_v_to_f(float v, unsigned short int microstep_alue);
|
|
float ptz_vert_step_f_to_v(float f, unsigned short int microstep_alue);
|
|
|
|
|
|
#ifdef TMC2160
|
|
TMC2160Control ptz_hori_choice_microstep(float ptz_v);
|
|
TMC2160Control ptz_vert_choice_microstep(float ptz_v);
|
|
#endif
|
|
|
|
void ptz_sem_post_stop_mutex();
|
|
void ptz_hori_start(char direction, float speed);
|
|
void ptz_hori_stop(unsigned short int time);
|
|
void ptz_vert_start(char direction, float speed);
|
|
void ptz_vert_stop(unsigned short int time);
|
|
|
|
void init_rotate_monitor_module(void);
|
|
#endif
|
|
|
|
#endif |