Compare commits
No commits in common. "H3k_V50k" and "master" have entirely different histories.
|
@ -1,12 +0,0 @@
|
||||||
{
|
|
||||||
"files.associations": {
|
|
||||||
"full_bridge.h": "c",
|
|
||||||
"ptz_default_value.h": "c",
|
|
||||||
"ptz_header_file.h": "c",
|
|
||||||
"gd32f4xx.h": "c",
|
|
||||||
"ptz_type_select.h": "c",
|
|
||||||
"l6235d.h": "c",
|
|
||||||
"service_presetbitscan.h": "c",
|
|
||||||
"device_adc_collect.h": "c"
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -73,11 +73,11 @@
|
||||||
#ifdef PTZ_MEDIUM_WORM_L6235D_AS5047D
|
#ifdef PTZ_MEDIUM_WORM_L6235D_AS5047D
|
||||||
///*******************************标准云台******************************/
|
///*******************************标准云台******************************/
|
||||||
///水平电机减速比
|
///水平电机减速比
|
||||||
#define PTZ_HORI_MOTOR_RATIO 3.0//(25.0 * 1.5)//20
|
#define PTZ_HORI_MOTOR_RATIO 25.0//(25.0 * 1.5)//20
|
||||||
///水平大齿轮减速比
|
///水平大齿轮减速比
|
||||||
#define PTZ_HORI_BIG_GEAR_RATIO 80.0//62.0
|
#define PTZ_HORI_BIG_GEAR_RATIO 80.0//62.0
|
||||||
///水平总减速比
|
///水平总减速比
|
||||||
#define PTZ_HORI_RATIO 240.0//2325//1240.0
|
#define PTZ_HORI_RATIO 2000.0//2325//1240.0
|
||||||
///水平电机调速模拟电压最大值
|
///水平电机调速模拟电压最大值
|
||||||
#define PTZ_HORI_VR_MAX 1999
|
#define PTZ_HORI_VR_MAX 1999
|
||||||
///水平电机调速模拟电压最小值
|
///水平电机调速模拟电压最小值
|
||||||
|
@ -89,11 +89,11 @@
|
||||||
///水平电机最小转速
|
///水平电机最小转速
|
||||||
#define PTZ_HORI_MOTOR_MIN_SPEED 400.0//600.0
|
#define PTZ_HORI_MOTOR_MIN_SPEED 400.0//600.0
|
||||||
///水平云台最大转速
|
///水平云台最大转速
|
||||||
#define PTZ_HORI_MAX_SPEED 12.5//1.29//2.4
|
#define PTZ_HORI_MAX_SPEED 1.5//1.29//2.4
|
||||||
///水平云台最小转速
|
///水平云台最小转速
|
||||||
#define PTZ_HORI_MIN_SPEED 1.67//0.3//0.26//0.4
|
#define PTZ_HORI_MIN_SPEED 0.2//0.3//0.26//0.4
|
||||||
///水平云台默认最佳速度
|
///水平云台默认最佳速度
|
||||||
#define PTZ_HORI_BEST_SPEED 9.0//2.0
|
#define PTZ_HORI_BEST_SPEED 1.2//2.0
|
||||||
|
|
||||||
/**********************************************************/
|
/**********************************************************/
|
||||||
|
|
||||||
|
@ -116,7 +116,7 @@
|
||||||
///垂直云台最大转速
|
///垂直云台最大转速
|
||||||
#define PTZ_VERT_MAX_SPEED 0.5//0.74//2.7
|
#define PTZ_VERT_MAX_SPEED 0.5//0.74//2.7
|
||||||
///垂直云台最小转速
|
///垂直云台最小转速
|
||||||
#define PTZ_VERT_MIN_SPEED 0.067//0.1//0.15//0.5
|
#define PTZ_VERT_MIN_SPEED 0.07//0.1//0.15//0.5
|
||||||
///垂直云台默认最佳速度
|
///垂直云台默认最佳速度
|
||||||
#define PTZ_VERT_BEST_SPEED 0.4//0.7//2.0
|
#define PTZ_VERT_BEST_SPEED 0.4//0.7//2.0
|
||||||
|
|
||||||
|
|
|
@ -14,65 +14,6 @@ static BSP_OS_SEM ptz_vert_stop_mutex;
|
||||||
static char ptz_hori_stop_count;//水平停止计数,防止多次停止多次延时
|
static char ptz_hori_stop_count;//水平停止计数,防止多次停止多次延时
|
||||||
static char ptz_vert_stop_count;//垂直停止计数,防止多次停止多次延时
|
static char ptz_vert_stop_count;//垂直停止计数,防止多次停止多次延时
|
||||||
|
|
||||||
/* 水平停止转动,减速阶梯和切换时间 */
|
|
||||||
#define hori_stop_step 0.2f
|
|
||||||
#define hori_stop_time 1
|
|
||||||
|
|
||||||
/* 水平减速,减速阶梯和切换时间 */
|
|
||||||
#define hori_retard_step 0.2f
|
|
||||||
#define hori_retard_time 2
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 水平减速过程
|
|
||||||
*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
void ptz_hori_deceleration_process(float step, unsigned char time)
|
|
||||||
{
|
|
||||||
float temp = g_ptz.hori_speed_actual;
|
|
||||||
for (; ; ) {
|
|
||||||
temp -= step;
|
|
||||||
g_ptz.hori_speed_set = temp;
|
|
||||||
if (temp < PTZ_HORI_MIN_SPEED) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
OSTimeDlyHMSM(0u, 0u, 0u, time);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* 垂直停止转动,减速阶梯和切换时间 */
|
|
||||||
#define vert_stop_step 1.0f
|
|
||||||
#define vert_stop_time 1
|
|
||||||
|
|
||||||
/* 垂直减速,减速阶梯和切换时间 */
|
|
||||||
#define vert_retard_step 0.1f
|
|
||||||
#define vert_retard_time 100
|
|
||||||
|
|
||||||
/* 垂直减速,俯仰极限位置 */
|
|
||||||
#define vert_utmost_step 20.0f
|
|
||||||
#define vert_utmost_time 1
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 垂直减速过程
|
|
||||||
*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
void ptz_vert_deceleration_process(float step, unsigned char time)
|
|
||||||
{
|
|
||||||
float temp = g_ptz.vert_speed_actual;
|
|
||||||
for (; ; ) {
|
|
||||||
temp -= step;
|
|
||||||
g_ptz.vert_angle_set = temp;
|
|
||||||
if (temp < PTZ_HORI_MIN_SPEED) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
OSTimeDlyHMSM(0u, 0u, 0u, time);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void ptz_sem_post_stop_mutex()//释放云台启停共享资源锁
|
void ptz_sem_post_stop_mutex()//释放云台启停共享资源锁
|
||||||
{
|
{
|
||||||
BSP_OS_SemPost(&ptz_hori_stop_mutex);
|
BSP_OS_SemPost(&ptz_hori_stop_mutex);
|
||||||
|
@ -113,9 +54,6 @@ void ptz_hori_start(char direction, float speed)
|
||||||
void ptz_hori_stop(unsigned short int time)
|
void ptz_hori_stop(unsigned short int time)
|
||||||
{
|
{
|
||||||
BSP_OS_SemWait(&ptz_hori_stop_mutex, 0u);
|
BSP_OS_SemWait(&ptz_hori_stop_mutex, 0u);
|
||||||
|
|
||||||
ptz_hori_deceleration_process(hori_stop_step, hori_stop_time);
|
|
||||||
|
|
||||||
//停止电机
|
//停止电机
|
||||||
g_ptz.hori_start_stop_set = PTZ_HORI_STOP;
|
g_ptz.hori_start_stop_set = PTZ_HORI_STOP;
|
||||||
g_ptz.hori_start_stop_actual = g_ptz.hori_start_stop_set;
|
g_ptz.hori_start_stop_actual = g_ptz.hori_start_stop_set;
|
||||||
|
@ -182,11 +120,6 @@ void ptz_vert_start(char direction, float speed)
|
||||||
void ptz_vert_stop(unsigned short int time)
|
void ptz_vert_stop(unsigned short int time)
|
||||||
{
|
{
|
||||||
BSP_OS_SemWait(&ptz_vert_stop_mutex, 0u);
|
BSP_OS_SemWait(&ptz_vert_stop_mutex, 0u);
|
||||||
|
|
||||||
if (time != PTZ_VERT_STOP_TIME) {
|
|
||||||
ptz_vert_deceleration_process(vert_stop_step, vert_stop_time);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(g_ptz.vert_start_stop_set == PTZ_VERT_START)
|
if(g_ptz.vert_start_stop_set == PTZ_VERT_START)
|
||||||
{
|
{
|
||||||
//停止电机
|
//停止电机
|
||||||
|
@ -340,7 +273,6 @@ static char ptz_hori_rotate_monitor_task()
|
||||||
if(fabs(g_ptz.hori_angle_actual - g_ptz.hori_rotate_plan.stop_near_angle) <=
|
if(fabs(g_ptz.hori_angle_actual - g_ptz.hori_rotate_plan.stop_near_angle) <=
|
||||||
PTZ_HORI_MIN_SPEED_ANGLE)
|
PTZ_HORI_MIN_SPEED_ANGLE)
|
||||||
{
|
{
|
||||||
ptz_hori_deceleration_process(hori_retard_step, hori_retard_time);
|
|
||||||
g_ptz.hori_speed_set = PTZ_HORI_MIN_SPEED;
|
g_ptz.hori_speed_set = PTZ_HORI_MIN_SPEED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -349,7 +281,6 @@ static char ptz_hori_rotate_monitor_task()
|
||||||
if((fabs(360.0 - g_ptz.hori_rotate_plan.stop_near_angle) + g_ptz.hori_angle_actual) <=
|
if((fabs(360.0 - g_ptz.hori_rotate_plan.stop_near_angle) + g_ptz.hori_angle_actual) <=
|
||||||
PTZ_HORI_MIN_SPEED_ANGLE)
|
PTZ_HORI_MIN_SPEED_ANGLE)
|
||||||
{
|
{
|
||||||
ptz_hori_deceleration_process(hori_retard_step, hori_retard_time);
|
|
||||||
g_ptz.hori_speed_set = PTZ_HORI_MIN_SPEED;
|
g_ptz.hori_speed_set = PTZ_HORI_MIN_SPEED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -361,7 +292,6 @@ static char ptz_hori_rotate_monitor_task()
|
||||||
if(fabs(g_ptz.hori_angle_actual - g_ptz.hori_rotate_plan.stop_near_angle) <=
|
if(fabs(g_ptz.hori_angle_actual - g_ptz.hori_rotate_plan.stop_near_angle) <=
|
||||||
PTZ_HORI_MIN_SPEED_ANGLE)
|
PTZ_HORI_MIN_SPEED_ANGLE)
|
||||||
{
|
{
|
||||||
ptz_hori_deceleration_process(hori_retard_step, hori_retard_time);
|
|
||||||
g_ptz.hori_speed_set = PTZ_HORI_MIN_SPEED;
|
g_ptz.hori_speed_set = PTZ_HORI_MIN_SPEED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -370,7 +300,6 @@ static char ptz_hori_rotate_monitor_task()
|
||||||
if((fabs(360.0 - g_ptz.hori_angle_actual) + g_ptz.hori_rotate_plan.stop_near_angle) <=
|
if((fabs(360.0 - g_ptz.hori_angle_actual) + g_ptz.hori_rotate_plan.stop_near_angle) <=
|
||||||
PTZ_HORI_MIN_SPEED_ANGLE)
|
PTZ_HORI_MIN_SPEED_ANGLE)
|
||||||
{
|
{
|
||||||
ptz_hori_deceleration_process(hori_retard_step, hori_retard_time);
|
|
||||||
g_ptz.hori_speed_set = PTZ_HORI_MIN_SPEED;
|
g_ptz.hori_speed_set = PTZ_HORI_MIN_SPEED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -475,7 +404,6 @@ static char ptz_hori_rotate_monitor_task()
|
||||||
if(fabs(g_ptz.hori_angle_actual - g_ptz.hori_rotate_plan.stop_near_angle) <=
|
if(fabs(g_ptz.hori_angle_actual - g_ptz.hori_rotate_plan.stop_near_angle) <=
|
||||||
PTZ_HORI_MIN_SPEED_ANGLE)
|
PTZ_HORI_MIN_SPEED_ANGLE)
|
||||||
{
|
{
|
||||||
ptz_hori_deceleration_process(hori_retard_step, hori_retard_time);
|
|
||||||
g_ptz.hori_speed_set = PTZ_HORI_MIN_SPEED;
|
g_ptz.hori_speed_set = PTZ_HORI_MIN_SPEED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -484,7 +412,6 @@ static char ptz_hori_rotate_monitor_task()
|
||||||
if((fabs(360.0 - g_ptz.hori_rotate_plan.stop_near_angle) + g_ptz.hori_angle_actual) <=
|
if((fabs(360.0 - g_ptz.hori_rotate_plan.stop_near_angle) + g_ptz.hori_angle_actual) <=
|
||||||
PTZ_HORI_MIN_SPEED_ANGLE)
|
PTZ_HORI_MIN_SPEED_ANGLE)
|
||||||
{
|
{
|
||||||
ptz_hori_deceleration_process(hori_retard_step, hori_retard_time);
|
|
||||||
g_ptz.hori_speed_set = PTZ_HORI_MIN_SPEED;
|
g_ptz.hori_speed_set = PTZ_HORI_MIN_SPEED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -496,7 +423,6 @@ static char ptz_hori_rotate_monitor_task()
|
||||||
if(fabs(g_ptz.hori_angle_actual - g_ptz.hori_rotate_plan.stop_near_angle) <=
|
if(fabs(g_ptz.hori_angle_actual - g_ptz.hori_rotate_plan.stop_near_angle) <=
|
||||||
PTZ_HORI_MIN_SPEED_ANGLE)
|
PTZ_HORI_MIN_SPEED_ANGLE)
|
||||||
{
|
{
|
||||||
ptz_hori_deceleration_process(hori_retard_step, hori_retard_time);
|
|
||||||
g_ptz.hori_speed_set = PTZ_HORI_MIN_SPEED;
|
g_ptz.hori_speed_set = PTZ_HORI_MIN_SPEED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -505,7 +431,6 @@ static char ptz_hori_rotate_monitor_task()
|
||||||
if((fabs(360.0 - g_ptz.hori_angle_actual) + g_ptz.hori_rotate_plan.stop_near_angle) <=
|
if((fabs(360.0 - g_ptz.hori_angle_actual) + g_ptz.hori_rotate_plan.stop_near_angle) <=
|
||||||
PTZ_HORI_MIN_SPEED_ANGLE)
|
PTZ_HORI_MIN_SPEED_ANGLE)
|
||||||
{
|
{
|
||||||
ptz_hori_deceleration_process(hori_retard_step, hori_retard_time);
|
|
||||||
g_ptz.hori_speed_set = PTZ_HORI_MIN_SPEED;
|
g_ptz.hori_speed_set = PTZ_HORI_MIN_SPEED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -518,7 +443,6 @@ static char ptz_hori_rotate_monitor_task()
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PTZ_HORI_DEC_BRAKE_A://减速刹车
|
case PTZ_HORI_DEC_BRAKE_A://减速刹车
|
||||||
ptz_hori_deceleration_process(hori_retard_step, hori_retard_time);
|
|
||||||
g_ptz.hori_speed_set = PTZ_HORI_MIN_SPEED;
|
g_ptz.hori_speed_set = PTZ_HORI_MIN_SPEED;
|
||||||
g_ptz.hori_rotate_monitor_switch = PTZ_HORI_DEC_BRAKE_B;
|
g_ptz.hori_rotate_monitor_switch = PTZ_HORI_DEC_BRAKE_B;
|
||||||
k = 0;
|
k = 0;
|
||||||
|
@ -583,7 +507,6 @@ static char ptz_hori_rotate_monitor_task()
|
||||||
if(fabs(g_ptz.hori_angle_actual - g_ptz.hori_rotate_plan.stop_near_angle) <=
|
if(fabs(g_ptz.hori_angle_actual - g_ptz.hori_rotate_plan.stop_near_angle) <=
|
||||||
PTZ_HORI_MIN_SPEED_ANGLE)
|
PTZ_HORI_MIN_SPEED_ANGLE)
|
||||||
{
|
{
|
||||||
ptz_hori_deceleration_process(hori_retard_step, hori_retard_time);
|
|
||||||
g_ptz.hori_speed_set = PTZ_HORI_MIN_SPEED;
|
g_ptz.hori_speed_set = PTZ_HORI_MIN_SPEED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -592,7 +515,6 @@ static char ptz_hori_rotate_monitor_task()
|
||||||
if((fabs(360.0 - g_ptz.hori_rotate_plan.stop_near_angle) + g_ptz.hori_angle_actual) <=
|
if((fabs(360.0 - g_ptz.hori_rotate_plan.stop_near_angle) + g_ptz.hori_angle_actual) <=
|
||||||
PTZ_HORI_MIN_SPEED_ANGLE)
|
PTZ_HORI_MIN_SPEED_ANGLE)
|
||||||
{
|
{
|
||||||
ptz_hori_deceleration_process(hori_retard_step, hori_retard_time);
|
|
||||||
g_ptz.hori_speed_set = PTZ_HORI_MIN_SPEED;
|
g_ptz.hori_speed_set = PTZ_HORI_MIN_SPEED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -604,7 +526,6 @@ static char ptz_hori_rotate_monitor_task()
|
||||||
if(fabs(g_ptz.hori_angle_actual - g_ptz.hori_rotate_plan.stop_near_angle) <=
|
if(fabs(g_ptz.hori_angle_actual - g_ptz.hori_rotate_plan.stop_near_angle) <=
|
||||||
PTZ_HORI_MIN_SPEED_ANGLE)
|
PTZ_HORI_MIN_SPEED_ANGLE)
|
||||||
{
|
{
|
||||||
ptz_hori_deceleration_process(hori_retard_step, hori_retard_time);
|
|
||||||
g_ptz.hori_speed_set = PTZ_HORI_MIN_SPEED;
|
g_ptz.hori_speed_set = PTZ_HORI_MIN_SPEED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -613,7 +534,6 @@ static char ptz_hori_rotate_monitor_task()
|
||||||
if((fabs(360.0 - g_ptz.hori_angle_actual) + g_ptz.hori_rotate_plan.stop_near_angle) <=
|
if((fabs(360.0 - g_ptz.hori_angle_actual) + g_ptz.hori_rotate_plan.stop_near_angle) <=
|
||||||
PTZ_HORI_MIN_SPEED_ANGLE)
|
PTZ_HORI_MIN_SPEED_ANGLE)
|
||||||
{
|
{
|
||||||
ptz_hori_deceleration_process(hori_retard_step, hori_retard_time);
|
|
||||||
g_ptz.hori_speed_set = PTZ_HORI_MIN_SPEED;
|
g_ptz.hori_speed_set = PTZ_HORI_MIN_SPEED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -662,7 +582,6 @@ static char ptz_hori_rotate_monitor_task()
|
||||||
if(fabs(g_ptz.hori_angle_actual - g_ptz.hori_rotate_plan.stop_near_angle) <=
|
if(fabs(g_ptz.hori_angle_actual - g_ptz.hori_rotate_plan.stop_near_angle) <=
|
||||||
PTZ_HORI_MIN_SPEED_ANGLE)
|
PTZ_HORI_MIN_SPEED_ANGLE)
|
||||||
{
|
{
|
||||||
ptz_hori_deceleration_process(hori_retard_step, hori_retard_time);
|
|
||||||
g_ptz.hori_speed_set = PTZ_HORI_MIN_SPEED;
|
g_ptz.hori_speed_set = PTZ_HORI_MIN_SPEED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -671,7 +590,6 @@ static char ptz_hori_rotate_monitor_task()
|
||||||
if((fabs(360.0 - g_ptz.hori_rotate_plan.stop_near_angle) + g_ptz.hori_angle_actual) <=
|
if((fabs(360.0 - g_ptz.hori_rotate_plan.stop_near_angle) + g_ptz.hori_angle_actual) <=
|
||||||
PTZ_HORI_MIN_SPEED_ANGLE)
|
PTZ_HORI_MIN_SPEED_ANGLE)
|
||||||
{
|
{
|
||||||
ptz_hori_deceleration_process(hori_retard_step, hori_retard_time);
|
|
||||||
g_ptz.hori_speed_set = PTZ_HORI_MIN_SPEED;
|
g_ptz.hori_speed_set = PTZ_HORI_MIN_SPEED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -683,7 +601,6 @@ static char ptz_hori_rotate_monitor_task()
|
||||||
if(fabs(g_ptz.hori_angle_actual - g_ptz.hori_rotate_plan.stop_near_angle) <=
|
if(fabs(g_ptz.hori_angle_actual - g_ptz.hori_rotate_plan.stop_near_angle) <=
|
||||||
PTZ_HORI_MIN_SPEED_ANGLE)
|
PTZ_HORI_MIN_SPEED_ANGLE)
|
||||||
{
|
{
|
||||||
ptz_hori_deceleration_process(hori_retard_step, hori_retard_time);
|
|
||||||
g_ptz.hori_speed_set = PTZ_HORI_MIN_SPEED;
|
g_ptz.hori_speed_set = PTZ_HORI_MIN_SPEED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -692,7 +609,6 @@ static char ptz_hori_rotate_monitor_task()
|
||||||
if((fabs(360.0 - g_ptz.hori_angle_actual) + g_ptz.hori_rotate_plan.stop_near_angle) <=
|
if((fabs(360.0 - g_ptz.hori_angle_actual) + g_ptz.hori_rotate_plan.stop_near_angle) <=
|
||||||
PTZ_HORI_MIN_SPEED_ANGLE)
|
PTZ_HORI_MIN_SPEED_ANGLE)
|
||||||
{
|
{
|
||||||
ptz_hori_deceleration_process(hori_retard_step, hori_retard_time);
|
|
||||||
g_ptz.hori_speed_set = PTZ_HORI_MIN_SPEED;
|
g_ptz.hori_speed_set = PTZ_HORI_MIN_SPEED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -740,7 +656,6 @@ static char ptz_hori_rotate_monitor_task()
|
||||||
if(fabs(g_ptz.hori_angle_actual - g_ptz.hori_rotate_plan.stop_near_angle) <=
|
if(fabs(g_ptz.hori_angle_actual - g_ptz.hori_rotate_plan.stop_near_angle) <=
|
||||||
PTZ_HORI_MIN_SPEED_ANGLE)
|
PTZ_HORI_MIN_SPEED_ANGLE)
|
||||||
{
|
{
|
||||||
ptz_hori_deceleration_process(hori_retard_step, hori_retard_time);
|
|
||||||
g_ptz.hori_speed_set = PTZ_HORI_MIN_SPEED;
|
g_ptz.hori_speed_set = PTZ_HORI_MIN_SPEED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -749,7 +664,6 @@ static char ptz_hori_rotate_monitor_task()
|
||||||
if((fabs(360.0 - g_ptz.hori_rotate_plan.stop_near_angle) + g_ptz.hori_angle_actual) <=
|
if((fabs(360.0 - g_ptz.hori_rotate_plan.stop_near_angle) + g_ptz.hori_angle_actual) <=
|
||||||
PTZ_HORI_MIN_SPEED_ANGLE)
|
PTZ_HORI_MIN_SPEED_ANGLE)
|
||||||
{
|
{
|
||||||
ptz_hori_deceleration_process(hori_retard_step, hori_retard_time);
|
|
||||||
g_ptz.hori_speed_set = PTZ_HORI_MIN_SPEED;
|
g_ptz.hori_speed_set = PTZ_HORI_MIN_SPEED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -761,7 +675,6 @@ static char ptz_hori_rotate_monitor_task()
|
||||||
if(fabs(g_ptz.hori_angle_actual - g_ptz.hori_rotate_plan.stop_near_angle) <=
|
if(fabs(g_ptz.hori_angle_actual - g_ptz.hori_rotate_plan.stop_near_angle) <=
|
||||||
PTZ_HORI_MIN_SPEED_ANGLE)
|
PTZ_HORI_MIN_SPEED_ANGLE)
|
||||||
{
|
{
|
||||||
ptz_hori_deceleration_process(hori_retard_step, hori_retard_time);
|
|
||||||
g_ptz.hori_speed_set = PTZ_HORI_MIN_SPEED;
|
g_ptz.hori_speed_set = PTZ_HORI_MIN_SPEED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -770,7 +683,6 @@ static char ptz_hori_rotate_monitor_task()
|
||||||
if((fabs(360.0 - g_ptz.hori_angle_actual) + g_ptz.hori_rotate_plan.stop_near_angle) <=
|
if((fabs(360.0 - g_ptz.hori_angle_actual) + g_ptz.hori_rotate_plan.stop_near_angle) <=
|
||||||
PTZ_HORI_MIN_SPEED_ANGLE)
|
PTZ_HORI_MIN_SPEED_ANGLE)
|
||||||
{
|
{
|
||||||
ptz_hori_deceleration_process(hori_retard_step, hori_retard_time);
|
|
||||||
g_ptz.hori_speed_set = PTZ_HORI_MIN_SPEED;
|
g_ptz.hori_speed_set = PTZ_HORI_MIN_SPEED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -852,7 +764,6 @@ static char ptz_vert_rotate_monitor_task()
|
||||||
if(fabs(g_ptz.vert_angle_actual - g_ptz.vert_rotate_plan.stop_near_angle) <=
|
if(fabs(g_ptz.vert_angle_actual - g_ptz.vert_rotate_plan.stop_near_angle) <=
|
||||||
PTZ_VERT_MIN_SPEED_ANGLE)
|
PTZ_VERT_MIN_SPEED_ANGLE)
|
||||||
{
|
{
|
||||||
ptz_vert_deceleration_process(vert_retard_step, vert_retard_time);
|
|
||||||
g_ptz.vert_speed_set = PTZ_VERT_MIN_SPEED;
|
g_ptz.vert_speed_set = PTZ_VERT_MIN_SPEED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -898,7 +809,6 @@ static char ptz_vert_rotate_monitor_task()
|
||||||
if(fabs(g_ptz.vert_angle_actual - g_ptz.vert_rotate_plan.stop_near_angle) <=
|
if(fabs(g_ptz.vert_angle_actual - g_ptz.vert_rotate_plan.stop_near_angle) <=
|
||||||
PTZ_VERT_MIN_SPEED_ANGLE)
|
PTZ_VERT_MIN_SPEED_ANGLE)
|
||||||
{
|
{
|
||||||
ptz_vert_deceleration_process(vert_retard_step, vert_retard_time);
|
|
||||||
g_ptz.vert_speed_set = PTZ_VERT_MIN_SPEED;
|
g_ptz.vert_speed_set = PTZ_VERT_MIN_SPEED;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -965,7 +875,6 @@ static char ptz_vert_rotate_monitor_task()
|
||||||
if(fabs(g_ptz.vert_angle_actual - g_ptz.vert_rotate_plan.stop_near_angle) <=
|
if(fabs(g_ptz.vert_angle_actual - g_ptz.vert_rotate_plan.stop_near_angle) <=
|
||||||
PTZ_VERT_MIN_SPEED_ANGLE)
|
PTZ_VERT_MIN_SPEED_ANGLE)
|
||||||
{
|
{
|
||||||
ptz_vert_deceleration_process(vert_retard_step, vert_retard_time);
|
|
||||||
g_ptz.vert_speed_set = PTZ_VERT_MIN_SPEED;
|
g_ptz.vert_speed_set = PTZ_VERT_MIN_SPEED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1000,7 +909,6 @@ static char ptz_vert_rotate_monitor_task()
|
||||||
if(fabs(g_ptz.vert_angle_actual - g_ptz.vert_rotate_plan.stop_near_angle) <=
|
if(fabs(g_ptz.vert_angle_actual - g_ptz.vert_rotate_plan.stop_near_angle) <=
|
||||||
PTZ_VERT_MIN_SPEED_ANGLE)
|
PTZ_VERT_MIN_SPEED_ANGLE)
|
||||||
{
|
{
|
||||||
ptz_vert_deceleration_process(vert_retard_step, vert_retard_time);
|
|
||||||
g_ptz.vert_speed_set = PTZ_VERT_MIN_SPEED;
|
g_ptz.vert_speed_set = PTZ_VERT_MIN_SPEED;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -1016,7 +924,6 @@ static char ptz_vert_rotate_monitor_task()
|
||||||
g_ptz.vert_arrive_flag = 0;
|
g_ptz.vert_arrive_flag = 0;
|
||||||
g_ptz.vert_rotate_monitor_switch = 0;
|
g_ptz.vert_rotate_monitor_switch = 0;
|
||||||
|
|
||||||
// ptz_vert_deceleration_process(vert_utmost_step, vert_utmost_time);
|
|
||||||
ptz_vert_stop(PTZ_VERT_STOP_TIME);//停止延时为0
|
ptz_vert_stop(PTZ_VERT_STOP_TIME);//停止延时为0
|
||||||
OSTimeDlyHMSM(0u, 0u, 0u, 5u);
|
OSTimeDlyHMSM(0u, 0u, 0u, 5u);
|
||||||
}
|
}
|
||||||
|
@ -1029,7 +936,6 @@ static char ptz_vert_rotate_monitor_task()
|
||||||
g_ptz.vert_arrive_flag = 0;
|
g_ptz.vert_arrive_flag = 0;
|
||||||
g_ptz.vert_rotate_monitor_switch = 0;
|
g_ptz.vert_rotate_monitor_switch = 0;
|
||||||
|
|
||||||
// ptz_vert_deceleration_process(vert_utmost_step, vert_utmost_time);
|
|
||||||
ptz_vert_stop(PTZ_VERT_STOP_TIME);
|
ptz_vert_stop(PTZ_VERT_STOP_TIME);
|
||||||
OSTimeDlyHMSM(0u, 0u, 0u, 5u);
|
OSTimeDlyHMSM(0u, 0u, 0u, 5u);
|
||||||
}
|
}
|
||||||
|
|
|
@ -66,8 +66,8 @@
|
||||||
#define PTZ_VERT_DIR_STOP 2
|
#define PTZ_VERT_DIR_STOP 2
|
||||||
|
|
||||||
///距离最近刹车点以最小转速运行的距离
|
///距离最近刹车点以最小转速运行的距离
|
||||||
#define PTZ_HORI_MIN_SPEED_ANGLE 12.0
|
#define PTZ_HORI_MIN_SPEED_ANGLE 3.0
|
||||||
#define PTZ_VERT_MIN_SPEED_ANGLE 2.0
|
#define PTZ_VERT_MIN_SPEED_ANGLE 3.0
|
||||||
|
|
||||||
///刹车最近距离
|
///刹车最近距离
|
||||||
#define PTZ_HORI_STOP_NEAR_DISTANCE 0.01
|
#define PTZ_HORI_STOP_NEAR_DISTANCE 0.01
|
||||||
|
@ -77,7 +77,7 @@
|
||||||
///刹车最近距离
|
///刹车最近距离
|
||||||
#define PTZ_VERT_STOP_NEAR_DISTANCE 0.01
|
#define PTZ_VERT_STOP_NEAR_DISTANCE 0.01
|
||||||
///刹车最远距离
|
///刹车最远距离
|
||||||
#define PTZ_VERT_STOP_FAR_DISTANCE 3.0
|
#define PTZ_VERT_STOP_FAR_DISTANCE 4.0
|
||||||
|
|
||||||
///云台定位精度,也可用于判断是不是同一个位置
|
///云台定位精度,也可用于判断是不是同一个位置
|
||||||
#define PTZ_HORI_ANGLE_ACCURACY 0.1
|
#define PTZ_HORI_ANGLE_ACCURACY 0.1
|
||||||
|
|
|
@ -80,7 +80,7 @@
|
||||||
#define PTZ_HORI_PID_HORI_TD 0//0.001//微分系数
|
#define PTZ_HORI_PID_HORI_TD 0//0.001//微分系数
|
||||||
|
|
||||||
#define PTZ_HORI_PID_INPUT_LIMIT 100.0//PID调速输入值限定
|
#define PTZ_HORI_PID_INPUT_LIMIT 100.0//PID调速输入值限定
|
||||||
#define PTZ_HORI_PID_OUTPUT_LIMIT 80.0//PID调速输出值限定,当前输出值和上一次输出值之间的差异
|
#define PTZ_HORI_PID_OUTPUT_LIMIT 200.0//PID调速输出值限定,当前输出值和上一次输出值之间的差异
|
||||||
|
|
||||||
#define PTZ_VERT_PID_T 30u
|
#define PTZ_VERT_PID_T 30u
|
||||||
#define PTZ_VERT_PID_VERT_KP 20.0//6//6.0//比例系数
|
#define PTZ_VERT_PID_VERT_KP 20.0//6//6.0//比例系数
|
||||||
|
@ -88,7 +88,7 @@
|
||||||
#define PTZ_VERT_PID_VERT_TD 0//0.001//微分系数
|
#define PTZ_VERT_PID_VERT_TD 0//0.001//微分系数
|
||||||
|
|
||||||
#define PTZ_VERT_PID_INPUT_LIMIT 100.0//PID调速输入值限定
|
#define PTZ_VERT_PID_INPUT_LIMIT 100.0//PID调速输入值限定
|
||||||
#define PTZ_VERT_PID_OUTPUT_LIMIT 100.0//PID调速输出值限定,当前输出值和上一次输出值之间的差异
|
#define PTZ_VERT_PID_OUTPUT_LIMIT 200.0//PID调速输出值限定,当前输出值和上一次输出值之间的差异
|
||||||
|
|
||||||
#define PTZ_HORI_PID_T_MAX 80//75u//PID调速最大周期
|
#define PTZ_HORI_PID_T_MAX 80//75u//PID调速最大周期
|
||||||
#define PTZ_VERT_PID_T_MAX 80//75u//PID调速最大周期
|
#define PTZ_VERT_PID_T_MAX 80//75u//PID调速最大周期
|
||||||
|
|
|
@ -13,41 +13,24 @@ static char ptz_temp_volt_current_fault_detect_task()
|
||||||
{//只报故障,不做响应
|
{//只报故障,不做响应
|
||||||
static unsigned short int time_ms;
|
static unsigned short int time_ms;
|
||||||
|
|
||||||
static char hori_fault = 0;
|
|
||||||
static char vert_fault = 0;
|
|
||||||
|
|
||||||
time_ms ++;
|
time_ms ++;
|
||||||
if(time_ms < 50)
|
if(time_ms < 50)
|
||||||
{
|
{
|
||||||
//轻型云台峰值电流5.4A,
|
//轻型云台峰值电流5.4A,
|
||||||
if(H_ADC_Collect.Phase_curr_V >= PHASE_CURRENT ||H_ADC_Collect.Phase_curr_U >= PHASE_CURRENT ||H_ADC_Collect.Phase_curr_W >= PHASE_CURRENT )
|
if(H_ADC_Collect.Phase_curr_V >= PHASE_CURRENT ||H_ADC_Collect.Phase_curr_U >= PHASE_CURRENT ||H_ADC_Collect.Phase_curr_W >= PHASE_CURRENT )
|
||||||
{//堵转检测,防止电机堵转烧坏,结合电机卡死故障监测,与云台工作电流监测。
|
{//堵转检测,防止电机堵转烧坏,结合电机卡死故障监测,与云台工作电流监测。
|
||||||
if (g_ptz.fault_detect.Phase_curr_H != FAULT) {
|
|
||||||
hori_fault++;
|
|
||||||
if (hori_fault > 20) {
|
|
||||||
g_ptz.fault_detect.Phase_curr_H = FAULT;//水平电机相电流过大,报警
|
g_ptz.fault_detect.Phase_curr_H = FAULT;//水平电机相电流过大,报警
|
||||||
|
|
||||||
ptz_hori_stop(PTZ_HORI_STOP_TIME);
|
ptz_hori_stop(PTZ_HORI_STOP_TIME);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
hori_fault = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(V_ADC_Collect.Phase_curr_V >= PHASE_CURRENT ||V_ADC_Collect.Phase_curr_U >= PHASE_CURRENT ||V_ADC_Collect.Phase_curr_W >= PHASE_CURRENT )
|
if(V_ADC_Collect.Phase_curr_V >= PHASE_CURRENT ||V_ADC_Collect.Phase_curr_U >= PHASE_CURRENT ||V_ADC_Collect.Phase_curr_W >= PHASE_CURRENT )
|
||||||
{//堵转检测,防止电机堵转烧坏,结合电机卡死故障监测,与云台工作电流监测。
|
{//堵转检测,防止电机堵转烧坏,结合电机卡死故障监测,与云台工作电流监测。
|
||||||
if (g_ptz.fault_detect.Phase_curr_V != FAULT) {
|
|
||||||
vert_fault++;
|
|
||||||
if (vert_fault > 20) {
|
|
||||||
g_ptz.fault_detect.Phase_curr_V = FAULT;//垂直电机相电流过大,报警
|
g_ptz.fault_detect.Phase_curr_V = FAULT;//垂直电机相电流过大,报警
|
||||||
|
|
||||||
ptz_vert_stop(PTZ_VERT_STOP_TIME);
|
ptz_vert_stop(PTZ_VERT_STOP_TIME);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
vert_fault = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -113,7 +113,7 @@
|
||||||
#define PTZ_HALL_DETECT 30//30
|
#define PTZ_HALL_DETECT 30//30
|
||||||
|
|
||||||
//相电流运行最大值
|
//相电流运行最大值
|
||||||
#define PHASE_CURRENT 4.8
|
#define PHASE_CURRENT 3.5
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//L6235D涡轮蜗杆重型云台
|
//L6235D涡轮蜗杆重型云台
|
||||||
|
|
|
@ -360,21 +360,21 @@ void h_bldc_six_step()
|
||||||
H_Hall_state.Hall_value = h_hall_senser_value_get();
|
H_Hall_state.Hall_value = h_hall_senser_value_get();
|
||||||
if((H_Hall_state.Hall_value <= 6)&&(H_Hall_state.Hall_value >= 1))
|
if((H_Hall_state.Hall_value <= 6)&&(H_Hall_state.Hall_value >= 1))
|
||||||
{
|
{
|
||||||
|
// if(g_ptz.hori_direction_set == PTZ_HORI_DIR_RIGHT)
|
||||||
|
// {//电机正转- 1
|
||||||
|
// h_six_step_commu[(7-H_Hall_state.Hall_value) -1]();
|
||||||
|
// }else{//电机反转
|
||||||
|
// h_six_step_commu[H_Hall_state.Hall_value -1]();
|
||||||
|
// }
|
||||||
|
//直齿云台转向
|
||||||
if(g_ptz.hori_direction_set == PTZ_HORI_DIR_RIGHT)
|
if(g_ptz.hori_direction_set == PTZ_HORI_DIR_RIGHT)
|
||||||
{//电机正转- 1
|
{//电机正转- 1
|
||||||
h_six_step_commu[(7-H_Hall_state.Hall_value) -1]();
|
|
||||||
}else{//电机反转
|
|
||||||
h_six_step_commu[H_Hall_state.Hall_value -1]();
|
h_six_step_commu[H_Hall_state.Hall_value -1]();
|
||||||
|
}else{//电机反转
|
||||||
|
h_six_step_commu[(7-H_Hall_state.Hall_value) -1]();
|
||||||
|
|
||||||
}
|
}
|
||||||
//直齿云台转向
|
|
||||||
// if(g_ptz.hori_direction_set == PTZ_HORI_DIR_RIGHT)
|
|
||||||
// {//电机正转- 1
|
|
||||||
|
|
||||||
// h_six_step_commu[H_Hall_state.Hall_value -1]();
|
|
||||||
// }else{//电机反转
|
|
||||||
// h_six_step_commu[(7-H_Hall_state.Hall_value) -1]();
|
|
||||||
|
|
||||||
// }
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -401,11 +401,6 @@ void v_bldc_six_step()
|
||||||
}else{//电机反转
|
}else{//电机反转
|
||||||
v_six_step_commu[(7-V_Hall_state.Hall_value) -1]();
|
v_six_step_commu[(7-V_Hall_state.Hall_value) -1]();
|
||||||
}
|
}
|
||||||
// if (g_ptz.vert_direction_set == PTZ_VERT_DIR_UP) {//电机正转- 1
|
|
||||||
// v_six_step_commu[(7-V_Hall_state.Hall_value) -1]();
|
|
||||||
// } else {//电机反转
|
|
||||||
// v_six_step_commu[V_Hall_state.Hall_value -1]();
|
|
||||||
// }
|
|
||||||
|
|
||||||
|
|
||||||
// if(g_ptz.vert_pid.PidUT_float < 0)
|
// if(g_ptz.vert_pid.PidUT_float < 0)
|
||||||
|
|
|
@ -825,7 +825,7 @@
|
||||||
</option>
|
</option>
|
||||||
<option>
|
<option>
|
||||||
<name>IlinkIcfFile</name>
|
<name>IlinkIcfFile</name>
|
||||||
<state>D:\psx\Pan-Tilt\1.software\HY\6.0 MW22-01A\BSP\IAR\GD32F450xE.icf</state>
|
<state>D:\psx\Pan-Tilt\1.software\HY\6.0 MW22-01A\BSP\IAR\GD32F450xE_APP.icf</state>
|
||||||
</option>
|
</option>
|
||||||
<option>
|
<option>
|
||||||
<name>IlinkIcfFileSlave</name>
|
<name>IlinkIcfFileSlave</name>
|
||||||
|
|
Loading…
Reference in New Issue