diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000..6aa1d4d
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,5 @@
+{
+ "files.associations": {
+ "speed_to_hall.h": "c"
+ }
+}
\ No newline at end of file
diff --git a/APP/Appcfg/app.c b/APP/Appcfg/app.c
index 9aa89f6..66b3da9 100644
--- a/APP/Appcfg/app.c
+++ b/APP/Appcfg/app.c
@@ -50,6 +50,9 @@
#include "systick.h"
#include "service_error_count.h"
+#include "speed_to_hall.h"
+
+
void task_printf_init();
//
@@ -126,6 +129,7 @@ static void task_start (void *p_arg)
// term_printf("\n udp init \r\n\r\n");
OSTimeDlyHMSM(0u, 0u, 0u, 100u);
+ init_hall_speed_module();
//光电开关初始化
init_photoelectric_switch_module();
diff --git a/APP/Common/ptz_default_value.h b/APP/Common/ptz_default_value.h
index 638a4ff..c085a14 100644
--- a/APP/Common/ptz_default_value.h
+++ b/APP/Common/ptz_default_value.h
@@ -3,333 +3,333 @@
#include "ptz_type_select.h"
#ifdef PTZ_LIGHT_GEAR_L6235D_AS5047D
- ///ˮƽٱ
+ ///ˮƽ������ٱ�
#define PTZ_HORI_MOTOR_RATIO 100.0
- ///ˮƽּٱ
+ ///ˮƽ����ּ��ٱ�
#define PTZ_HORI_BIG_GEAR_RATIO 4.05
- ///ˮƽܼٱ
+ ///ˮƽ�ܼ��ٱ�
#define PTZ_HORI_RATIO 405.0
- ///ˮƽģѹֵ
+ ///ˮƽ�������ģ���ѹ���ֵ
#define PTZ_HORI_VR_MAX 1999
- ///ˮƽģѹСֵ
+ ///ˮƽ�������ģ���ѹ��Сֵ
#define PTZ_HORI_VR_MIN 0
- ///תٵλ ת/ÿ
- ///ˮƽת
+ ///ת�ٵ�λ ת/ÿ��
+ ///ˮƽ������ת��
#define PTZ_HORI_MOTOR_MAX_SPEED 3000.0
- ///ˮƽСת
+ ///ˮƽ�����Сת��
#define PTZ_HORI_MOTOR_MIN_SPEED 400.0//600.0
- ///ˮƽ̨ת
+ ///ˮƽ��̨���ת��
#define PTZ_HORI_MAX_SPEED 7.5
- ///ˮƽ̨Сת
+ ///ˮƽ��̨��Сת��
#define PTZ_HORI_MIN_SPEED 1.0//1.5//0.65
- ///ˮƽ̨Ĭٶ
+ ///ˮƽ��̨Ĭ������ٶ�
#define PTZ_HORI_BEST_SPEED 5.0//4.0
/**********************************************************/
- ///ű͵֮ļٱ
+ ///�ű������͵��֮��ļ��ٱ�
#define PTZ_VERT_MOTOR_RATIO 200.0
- ///ų֮̋ļٱ
+ ///�ű���������̨��֮��ļ��ٱ�
#define PTZ_VERT_BIG_GEAR_RATIO 7.00
- ///ֱܼٱ
+ ///��ֱ�ܼ��ٱ�
#define PTZ_VERT_RATIO 1400.0
- ///ֱģѹֵ
+ ///��ֱ�������ģ���ѹ���ֵ
#define PTZ_VERT_VR_MAX 1999
- ///ֱģѹСֵ
+ ///��ֱ�������ģ���ѹ��Сֵ
#define PTZ_VERT_VR_MIN 0
- ///תٵλ ת/ÿ
- ///ֱת
+ ///ת�ٵ�λ ת/ÿ��
+ ///��ֱ������ת��
#define PTZ_VERT_MOTOR_MAX_SPEED 3000.0
- ///ֱСת
+ ///��ֱ�����Сת��
#define PTZ_VERT_MOTOR_MIN_SPEED 300.0
- ///ֱ̨ת
+ ///��ֱ��̨���ת��
#define PTZ_VERT_MAX_SPEED 2.20
- ///ֱ̨Сת
+ ///��ֱ��̨��Сת��
#define PTZ_VERT_MIN_SPEED 0.22//0.43
- ///ֱ̨Ĭٶ
+ ///��ֱ��̨Ĭ������ٶ�
#define PTZ_VERT_BEST_SPEED 1.7//1.8
- //ż
+ //����ż�����
#define PTZ_HORI_MOTOR_POLE_PAIRS 5.0
- //
+ //�����������������
#define PTZ_HORI_MOTOR_HALL_PAIRS 3.0
- //תһȦFGصĻ
+ //�����תһȦFG���صĻ���������
#define PTZ_HORI_ONE_CYCLE_HALL_NUM 15.0
- //ż
+ //����ż�����
#define PTZ_VERT_MOTOR_POLE_PAIRS 5.0
- //
+ //�����������������
#define PTZ_VERT_MOTOR_HALL_PAIRS 3.0
- //תһȦFGصĻ
+ //�����תһȦFG���صĻ���������
#define PTZ_VERT_ONE_CYCLE_HALL_NUM 15.0
#endif
#ifdef PTZ_MEDIUM_WORM_L6235D_AS5047D
-///*******************************̨******************************/
- ///ˮƽٱ
+///*******************************����̨******************************/
+ ///ˮƽ������ٱ�
#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_RATIO 2000.0//2325//1240.0
- ///ˮƽģѹֵ
+ ///ˮƽ�������ģ���ѹ���ֵ
#define PTZ_HORI_VR_MAX 1999
- ///ˮƽģѹСֵ
+ ///ˮƽ�������ģ���ѹ��Сֵ
#define PTZ_HORI_VR_MIN 0
- ///תٵλ ת/ÿ
- ///ˮƽת
+ ///ת�ٵ�λ ת/ÿ��
+ ///ˮƽ������ת��
#define PTZ_HORI_MOTOR_MAX_SPEED 3000.0
- ///ˮƽСת
+ ///ˮƽ�����Сת��
#define PTZ_HORI_MOTOR_MIN_SPEED 400.0//600.0
- ///ˮƽ̨ת
+ ///ˮƽ��̨���ת��
#define PTZ_HORI_MAX_SPEED 1.5//1.29//2.4
- ///ˮƽ̨Сת
+ ///ˮƽ��̨��Сת��
#define PTZ_HORI_MIN_SPEED 0.2//0.3//0.26//0.4
- ///ˮƽ̨Ĭٶ
+ ///ˮƽ��̨Ĭ������ٶ�
#define PTZ_HORI_BEST_SPEED 1.2//2.0
/**********************************************************/
- ///ű͵֮ļٱ
+ ///�ű������͵��֮��ļ��ٱ�
#define PTZ_VERT_MOTOR_RATIO 75.0//(50.0 * (52.0 / 35.0))//20.0
- ///ų֮̋ļٱ
+ ///�ű���������̨��֮��ļ��ٱ�
#define PTZ_VERT_BIG_GEAR_RATIO 80.0//54.00
- ///ֱܼٱ
+ ///��ֱ�ܼ��ٱ�
#define PTZ_VERT_RATIO 6000.0//4011.429//1080.0
- ///ֱģѹֵ
+ ///��ֱ�������ģ���ѹ���ֵ
#define PTZ_VERT_VR_MAX 1999
- ///ֱģѹСֵ
+ ///��ֱ�������ģ���ѹ��Сֵ
#define PTZ_VERT_VR_MIN 0
- ///תٵλ ת/ÿ
- ///ֱת
+ ///ת�ٵ�λ ת/ÿ��
+ ///��ֱ������ת��
#define PTZ_VERT_MOTOR_MAX_SPEED 3000.0
- ///ֱСת
+ ///��ֱ�����Сת��
#define PTZ_VERT_MOTOR_MIN_SPEED 400.0//600.0
- ///ֱ̨ת
+ ///��ֱ��̨���ת��
#define PTZ_VERT_MAX_SPEED 0.5//0.74//2.7
- ///ֱ̨Сת
+ ///��ֱ��̨��Сת��
#define PTZ_VERT_MIN_SPEED 0.07//0.1//0.15//0.5
- ///ֱ̨Ĭٶ
+ ///��ֱ��̨Ĭ������ٶ�
#define PTZ_VERT_BEST_SPEED 0.5//0.7//2.0
- //ż
+ //����ż�����
#define PTZ_HORI_MOTOR_POLE_PAIRS 5.0
- //
+ //�����������������
#define PTZ_HORI_MOTOR_HALL_PAIRS 3.0
- //תһȦFGصĻ
+ //�����תһȦFG���صĻ���������
#define PTZ_HORI_ONE_CYCLE_HALL_NUM 15.0
- //ż
+ //����ż�����
#define PTZ_VERT_MOTOR_POLE_PAIRS 5.0
- //
+ //�����������������
#define PTZ_VERT_MOTOR_HALL_PAIRS 3.0
- //תһȦFGصĻ
+ //�����תһȦFG���صĻ���������
#define PTZ_VERT_ONE_CYCLE_HALL_NUM 15.0
-/*******************************̨******************************/
-// ///ˮƽٱ
+/*******************************������̨����******************************/
+// ///ˮƽ������ٱ�
// #define PTZ_HORI_MOTOR_RATIO (100.0 * 1.5)
-// ///ˮƽּٱ
+// ///ˮƽ����ּ��ٱ�
// #define PTZ_HORI_BIG_GEAR_RATIO 62.0
-// ///ˮƽܼٱ
+// ///ˮƽ�ܼ��ٱ�
// #define PTZ_HORI_RATIO 9300
-// ///ˮƽģѹֵ
+// ///ˮƽ�������ģ���ѹ���ֵ
// #define PTZ_HORI_VR_MAX 4095
-// ///ˮƽģѹСֵ
+// ///ˮƽ�������ģ���ѹ��Сֵ
// #define PTZ_HORI_VR_MIN 0
//
-// ///תٵλ ת/ÿ
-// ///ˮƽת
+// ///ת�ٵ�λ ת/ÿ��
+// ///ˮƽ������ת��
// #define PTZ_HORI_MOTOR_MAX_SPEED 3000.0
-// ///ˮƽСת
+// ///ˮƽ�����Сת��
// #define PTZ_HORI_MOTOR_MIN_SPEED 600.0
-// ///ˮƽ̨ת
+// ///ˮƽ��̨���ת��
// #define PTZ_HORI_MAX_SPEED 0.32
-// ///ˮƽ̨Сת
+// ///ˮƽ��̨��Сת��
// #define PTZ_HORI_MIN_SPEED 0.06
-// ///ˮƽ̨Ĭٶ
+// ///ˮƽ��̨Ĭ������ٶ�
// #define PTZ_HORI_BEST_SPEED 0.32
//
// /**********************************************************/
//
-// ///ű͵֮ļٱ
+// ///�ű������͵��֮��ļ��ٱ�
// #define PTZ_VERT_MOTOR_RATIO (50.0 * (52.0 / 35.0))
-// ///ų֮̋ļٱ
+// ///�ű���������̨��֮��ļ��ٱ�
// #define PTZ_VERT_BIG_GEAR_RATIO 54.00
-// ///ֱܼٱ
+// ///��ֱ�ܼ��ٱ�
// #define PTZ_VERT_RATIO 4011.429
-// ///ֱģѹֵ
+// ///��ֱ�������ģ���ѹ���ֵ
// #define PTZ_VERT_VR_MAX 4095
-// ///ֱģѹСֵ
+// ///��ֱ�������ģ���ѹ��Сֵ
// #define PTZ_VERT_VR_MIN 0
//
-// ///תٵλ ת/ÿ
-// ///ֱת
+// ///ת�ٵ�λ ת/ÿ��
+// ///��ֱ������ת��
// #define PTZ_VERT_MOTOR_MAX_SPEED 3000.0
-// ///ֱСת
+// ///��ֱ�����Сת��
// #define PTZ_VERT_MOTOR_MIN_SPEED 600.0
-// ///ֱ̨ת
+// ///��ֱ��̨���ת��
// #define PTZ_VERT_MAX_SPEED 0.74
-// ///ֱ̨Сת
+// ///��ֱ��̨��Сת��
// #define PTZ_VERT_MIN_SPEED 0.15
-// ///ֱ̨Ĭٶ
+// ///��ֱ��̨Ĭ������ٶ�
// #define PTZ_VERT_BEST_SPEED 0.7
//
//
-// //ż
+// //����ż�����
// #define PTZ_HORI_MOTOR_POLE_PAIRS 5.0
-// //
+// //�����������������
// #define PTZ_HORI_MOTOR_HALL_PAIRS 3.0
-// //תһȦFGصĻ
+// //�����תһȦFG���صĻ���������
// #define PTZ_HORI_ONE_CYCLE_HALL_NUM 15.0
//
-// //ż
+// //����ż�����
// #define PTZ_VERT_MOTOR_POLE_PAIRS 5.0
-// //
+// //�����������������
// #define PTZ_VERT_MOTOR_HALL_PAIRS 3.0
-// //תһȦFGصĻ
+// //�����תһȦFG���صĻ���������
// #define PTZ_VERT_ONE_CYCLE_HALL_NUM 15.0
#endif
#ifdef PTZ_HEAVY_WORM_L6235D_AS5047D
- ///ˮƽٱ************************************
+ ///ˮƽ������ٱ�************************************��
#define PTZ_HORI_MOTOR_RATIO 25.0//(25.0 * 1.0)
- ///ˮƽּٱ
+ ///ˮƽ����ּ��ٱ�
#define PTZ_HORI_BIG_GEAR_RATIO 52.0
- ///ˮƽܼٱ
+ ///ˮƽ�ܼ��ٱ�
#define PTZ_HORI_RATIO 1300.0
- ///ˮƽģѹֵ
+ ///ˮƽ�������ģ���ѹ���ֵ
#define PTZ_HORI_VR_MAX 1999
- ///ˮƽģѹСֵ
+ ///ˮƽ�������ģ���ѹ��Сֵ
#define PTZ_HORI_VR_MIN 0
- ///תٵλ ת/ÿ
- ///ˮƽת
+ ///ת�ٵ�λ ת/ÿ��
+ ///ˮƽ������ת��
#define PTZ_HORI_MOTOR_MAX_SPEED 3000.0
- ///ˮƽСת
+ ///ˮƽ�����Сת��
#define PTZ_HORI_MOTOR_MIN_SPEED 300.0
- ///ˮƽ̨ת
+ ///ˮƽ��̨���ת��
#define PTZ_HORI_MAX_SPEED 2.3
- ///ˮƽ̨Сת
+ ///ˮƽ��̨��Сת��
#define PTZ_HORI_MIN_SPEED 0.2
- ///ˮƽ̨Ĭٶ
+ ///ˮƽ��̨Ĭ������ٶ�
#define PTZ_HORI_BEST_SPEED 2.1
- ///ű͵֮ļٱ************************************
+ ///�ű������͵��֮��ļ��ٱ�************************************��
#define PTZ_VERT_MOTOR_RATIO 125.8065//(50.0 * (78.0 / 31.0))
- ///ų֮̋ļٱ
+ ///�ű���������̨��֮��ļ��ٱ�
#define PTZ_VERT_BIG_GEAR_RATIO 60.0
- ///ֱܼٱ
+ ///��ֱ�ܼ��ٱ�
#define PTZ_VERT_RATIO 7548.3871
- ///ֱģѹֵ
+ ///��ֱ�������ģ���ѹ���ֵ
#define PTZ_VERT_VR_MAX 1999
- ///ֱģѹСֵ
+ ///��ֱ�������ģ���ѹ��Сֵ
#define PTZ_VERT_VR_MIN 0
- ///תٵλ ת/ÿ
- ///ֱת
+ ///ת�ٵ�λ ת/ÿ��
+ ///��ֱ������ת��
#define PTZ_VERT_MOTOR_MAX_SPEED 3000.0
- ///ֱСת
+ ///��ֱ�����Сת��
#define PTZ_VERT_MOTOR_MIN_SPEED 600.0
- ///ֱ̨ת
+ ///��ֱ��̨���ת��
#define PTZ_VERT_MAX_SPEED 0.4
- ///ֱ̨Сת
+ ///��ֱ��̨��Сת��
#define PTZ_VERT_MIN_SPEED 0.08
- ///ֱ̨Ĭٶ
+ ///��ֱ��̨Ĭ������ٶ�
#define PTZ_VERT_BEST_SPEED 0.30
- //ż
+ //����ż�����
#define PTZ_HORI_MOTOR_POLE_PAIRS 5.0
- //
+ //�����������������
#define PTZ_HORI_MOTOR_HALL_PAIRS 3.0
- //תһȦFGصĻ
+ //�����תһȦFG���صĻ���������
#define PTZ_HORI_ONE_CYCLE_HALL_NUM 15.0
- //ż
+ //����ż�����
#define PTZ_VERT_MOTOR_POLE_PAIRS 5.0
- //
+ //�����������������
#define PTZ_VERT_MOTOR_HALL_PAIRS 3.0
- //תһȦFGصĻ
+ //�����תһȦFG���صĻ���������
#define PTZ_VERT_ONE_CYCLE_HALL_NUM 15.0
#endif
#ifdef PTZ_SUPER_LIGHT_WORM_L6235D_AS5047D_12V
-/*****************************ڶ汾**********************************/
- ///ˮƽٱ
+/*****************************�ڶ����汾**********************************/
+ ///ˮƽ������ٱ�
#define PTZ_HORI_MOTOR_RATIO 27.0
- ///ˮƽּٱ
+ ///ˮƽ����ּ��ٱ�
#define PTZ_HORI_BIG_GEAR_RATIO 50.0
- ///ˮƽܼٱ
+ ///ˮƽ�ܼ��ٱ�
#define PTZ_HORI_RATIO 1350.0
- ///ˮƽģѹֵ
+ ///ˮƽ�������ģ���ѹ���ֵ
#define PTZ_HORI_VR_MAX 1999
- ///ˮƽģѹСֵ
+ ///ˮƽ�������ģ���ѹ��Сֵ
#define PTZ_HORI_VR_MIN 0
- ///תٵλ ת/ÿ
- ///ˮƽת
+ ///ת�ٵ�λ ת/ÿ��
+ ///ˮƽ������ת��
#define PTZ_HORI_MOTOR_MAX_SPEED 2000//2000.0
- ///ˮƽСת
+ ///ˮƽ�����Сת��
#define PTZ_HORI_MOTOR_MIN_SPEED 405.0
- ///ˮƽ̨ת
+ ///ˮƽ��̨���ת��
#define PTZ_HORI_MAX_SPEED 1.48//1.48
- ///ˮƽ̨Сת
+ ///ˮƽ��̨��Сת��
#define PTZ_HORI_MIN_SPEED 0.3
- ///ˮƽ̨Ĭٶ
+ ///ˮƽ��̨Ĭ������ٶ�
#define PTZ_HORI_BEST_SPEED 1.2
/**********************************************************/
- ///ű͵֮ļٱ
+ ///�ű������͵��֮��ļ��ٱ�
#define PTZ_VERT_MOTOR_RATIO 27.0//19.2//27.0
- ///ų֮̋ļٱ
+ ///�ű���������̨��֮��ļ��ٱ�
#define PTZ_VERT_BIG_GEAR_RATIO 50.0
- ///ֱܼٱ
+ ///��ֱ�ܼ��ٱ�
#define PTZ_VERT_RATIO 1350.0//960.0//1350.0
- ///ֱģѹֵ
+ ///��ֱ�������ģ���ѹ���ֵ
#define PTZ_VERT_VR_MAX 1999
- ///ֱģѹСֵ
+ ///��ֱ�������ģ���ѹ��Сֵ
#define PTZ_VERT_VR_MIN 0
- ///תٵλ ת/ÿ
- ///ֱת
+ ///ת�ٵ�λ ת/ÿ��
+ ///��ֱ������ת��
#define PTZ_VERT_MOTOR_MAX_SPEED 2000.0
- ///ֱСת
+ ///��ֱ�����Сת��
#define PTZ_VERT_MOTOR_MIN_SPEED 405.0
- ///ֱ̨ת
+ ///��ֱ��̨���ת��
#define PTZ_VERT_MAX_SPEED 1.48//2.08//1.48
- ///ֱ̨Сת
+ ///��ֱ��̨��Сת��
#define PTZ_VERT_MIN_SPEED 0.3//0.42//0.3
- ///ֱ̨Ĭٶ
+ ///��ֱ��̨Ĭ������ٶ�
#define PTZ_VERT_BEST_SPEED 1.2//1.8//1.2
- //ż
+ //����ż�����
#define PTZ_HORI_MOTOR_POLE_PAIRS 4.0
- //
+ //�����������������
#define PTZ_HORI_MOTOR_HALL_PAIRS 3.0
- //תһȦFGصĻ
+ //�����תһȦFG���صĻ���������
#define PTZ_HORI_ONE_CYCLE_HALL_NUM 12.0
- //ż
+ //����ż�����
#define PTZ_VERT_MOTOR_POLE_PAIRS 4.0
- //
+ //�����������������
#define PTZ_VERT_MOTOR_HALL_PAIRS 3.0
- //תһȦFGصĻ
+ //�����תһȦFG���صĻ���������
#define PTZ_VERT_ONE_CYCLE_HALL_NUM 12.0
#endif
@@ -337,173 +337,173 @@
#ifdef PTZ_SUPER_LIGHT_WORM_L6235D_AS5047D_24V
- ///ˮƽٱ
+ ///ˮƽ������ٱ�
#define PTZ_HORI_MOTOR_RATIO 27.0
- ///ˮƽּٱ
+ ///ˮƽ����ּ��ٱ�
#define PTZ_HORI_BIG_GEAR_RATIO 50.0
- ///ˮƽܼٱ
+ ///ˮƽ�ܼ��ٱ�
#define PTZ_HORI_RATIO 1350.0
- ///ˮƽģѹֵ
+ ///ˮƽ�������ģ���ѹ���ֵ
#define PTZ_HORI_VR_MAX 1999
- ///ˮƽģѹСֵ
- #define PTZ_HORI_VR_MIN 0
+ ///ˮƽ�������ģ���ѹ��Сֵ
+ #define PTZ_HORI_VR_MIN 220
- ///תٵλ ת/ÿ
- ///ˮƽת
+ ///ת�ٵ�λ ת/ÿ��
+ ///ˮƽ������ת��
#define PTZ_HORI_MOTOR_MAX_SPEED 3000
- ///ˮƽСת
+ ///ˮƽ�����Сת��
#define PTZ_HORI_MOTOR_MIN_SPEED 405.0
- ///ˮƽ̨ת
+ ///ˮƽ��̨���ת��
#define PTZ_HORI_MAX_SPEED 2.2
- ///ˮƽ̨Сת
+ ///ˮƽ��̨��Сת��
#define PTZ_HORI_MIN_SPEED 0.3
- ///ˮƽ̨Ĭٶ
+ ///ˮƽ��̨Ĭ������ٶ�
#define PTZ_HORI_BEST_SPEED 1.6
/**********************************************************/
- ///ű͵֮ļٱ
+ ///�ű������͵��֮��ļ��ٱ�
#define PTZ_VERT_MOTOR_RATIO 27.0
- ///ų֮̋ļٱ
+ ///�ű���������̨��֮��ļ��ٱ�
#define PTZ_VERT_BIG_GEAR_RATIO 50.0
- ///ֱܼٱ
+ ///��ֱ�ܼ��ٱ�
#define PTZ_VERT_RATIO 1350.0
- ///ֱģѹֵ
+ ///��ֱ�������ģ���ѹ���ֵ
#define PTZ_VERT_VR_MAX 1999
- ///ֱģѹСֵ
+ ///��ֱ�������ģ���ѹ��Сֵ
#define PTZ_VERT_VR_MIN 0
- ///תٵλ ת/ÿ
- ///ֱת
+ ///ת�ٵ�λ ת/ÿ��
+ ///��ֱ������ת��
#define PTZ_VERT_MOTOR_MAX_SPEED 3000.0
- ///ֱСת
+ ///��ֱ�����Сת��
#define PTZ_VERT_MOTOR_MIN_SPEED 405.0
- ///ֱ̨ת
+ ///��ֱ��̨���ת��
#define PTZ_VERT_MAX_SPEED 2.2
- ///ֱ̨Сת
+ ///��ֱ��̨��Сת��
#define PTZ_VERT_MIN_SPEED 0.3
- ///ֱ̨Ĭٶ
+ ///��ֱ��̨Ĭ������ٶ�
#define PTZ_VERT_BEST_SPEED 1.6
- //ż
+ //����ż�����
#define PTZ_HORI_MOTOR_POLE_PAIRS 4.0
- //
+ //�����������������
#define PTZ_HORI_MOTOR_HALL_PAIRS 3.0
- //תһȦFGصĻ
+ //�����תһȦFG���صĻ���������
#define PTZ_HORI_ONE_CYCLE_HALL_NUM 12.0
- //ż
+ //����ż�����
#define PTZ_VERT_MOTOR_POLE_PAIRS 4.0
- //
+ //�����������������
#define PTZ_VERT_MOTOR_HALL_PAIRS 3.0
- //תһȦFGصĻ
+ //�����תһȦFG���صĻ���������
#define PTZ_VERT_ONE_CYCLE_HALL_NUM 12.0
#endif
-//
+//�������
#ifdef PTZ_SUPER_LIGHT_WORM_STEP_TMC2160_AS5047D_24V
- ///ˮƽٱ
+ ///ˮƽ������ٱ�
#define PTZ_HORI_MOTOR_RATIO 1.0
- ///ˮƽּٱ
+ ///ˮƽ����ּ��ٱ�
#define PTZ_HORI_BIG_GEAR_RATIO 50.0
- ///ˮƽܼٱ
+ ///ˮƽ�ܼ��ٱ�
#define PTZ_HORI_RATIO 50.0
- ///תٵλ ת/ÿ
- ///ˮƽת
+ ///ת�ٵ�λ ת/ÿ��
+ ///ˮƽ������ת��
#define PTZ_HORI_MOTOR_MAX_SPEED 750.0
- ///ˮƽСת
+ ///ˮƽ�����Сת��
#define PTZ_HORI_MOTOR_MIN_SPEED 1.0
- ///ˮƽ̨ת
+ ///ˮƽ��̨���ת��
#define PTZ_HORI_MAX_SPEED 15.0
- ///ˮƽ̨Сת
+ ///ˮƽ��̨��Сת��
#define PTZ_HORI_MIN_SPEED 0.02
- ///ˮƽ̨Ĭٶ
- #define PTZ_HORI_BEST_SPEED 2.0//10.0 //ĬٶȲܹӦΪӦŤֵ
- ///Ҫָλʱɲת
+ ///ˮƽ��̨Ĭ������ٶ�
+ #define PTZ_HORI_BEST_SPEED 2.0//10.0 //�������Ĭ���ٶȲ��ܹ���ӦΪ��ӦŤ�����ֵ
+ ///��Ҫ����ָ��λ��ʱ��ɲ��ת��
#define PTZ_HORI_BREAK_SPEED 0.3
/**********************************************************/
- ///ű͵֮ļٱ
+ ///�ű������͵��֮��ļ��ٱ�
#define PTZ_VERT_MOTOR_RATIO 1.0
- ///ų֮̋ļٱ
+ ///�ű���������̨��֮��ļ��ٱ�
#define PTZ_VERT_BIG_GEAR_RATIO 50.0
- ///ֱܼٱ
+ ///��ֱ�ܼ��ٱ�
#define PTZ_VERT_RATIO 50.0
- ///תٵλ ת/ÿ
- ///ֱת
+ ///ת�ٵ�λ ת/ÿ��
+ ///��ֱ������ת��
#define PTZ_VERT_MOTOR_MAX_SPEED 500//300.0
- ///ֱСת
+ ///��ֱ�����Сת��
#define PTZ_VERT_MOTOR_MIN_SPEED 1.0
- ///ֱ̨ת
+ ///��ֱ��̨���ת��
#define PTZ_VERT_MAX_SPEED 10.0
- ///ֱ̨Сת
+ ///��ֱ��̨��Сת��
#define PTZ_VERT_MIN_SPEED 0.02
- ///ֱ̨Ĭٶ
+ ///��ֱ��̨Ĭ������ٶ�
#define PTZ_VERT_BEST_SPEED 2.0//6.0
- ///Ҫָλʱɲת
+ ///��Ҫ����ָ��λ��ʱ��ɲ��ת��
#define PTZ_VERT_BREAK_SPEED 0.3
///////////////////**//////////////////////////////
- ///Ĭϲ
+ ///�������Ĭ�ϲ����
#define PTZ_HORI_MOTOR_STEP 1.8
- ///Ĭϲ
+ ///�������Ĭ�ϲ����
#define PTZ_VERT_MOTOR_STEP 1.8
#endif
#ifdef PTZ_MEDIUM_WORM_STEP_TMC2160_AS5047D_24V
- ///ˮƽٱ
+ ///ˮƽ������ٱ�
#define PTZ_HORI_MOTOR_RATIO 1.0
- ///ˮƽּٱ
+ ///ˮƽ����ּ��ٱ�
#define PTZ_HORI_BIG_GEAR_RATIO 80.0
- ///ˮƽܼٱ
+ ///ˮƽ�ܼ��ٱ�
#define PTZ_HORI_RATIO 80.0
- ///תٵλ ת/ÿ
- ///ˮƽת
+ ///ת�ٵ�λ ת/ÿ��
+ ///ˮƽ������ת��
#define PTZ_HORI_MOTOR_MAX_SPEED 500.0
- ///ˮƽСת
+ ///ˮƽ�����Сת��
#define PTZ_HORI_MOTOR_MIN_SPEED 1.6
- ///ˮƽ̨ת
+ ///ˮƽ��̨���ת��
#define PTZ_HORI_MAX_SPEED 6.25
- ///ˮƽ̨Сת
+ ///ˮƽ��̨��Сת��
#define PTZ_HORI_MIN_SPEED 0.02
- ///ˮƽ̨Ĭٶ
+ ///ˮƽ��̨Ĭ������ٶ�
#define PTZ_HORI_BEST_SPEED 1.5
- ///Ҫָλʱɲת
+ ///��Ҫ����ָ��λ��ʱ��ɲ��ת��
#define PTZ_HORI_BREAK_SPEED 0.3
/**********************************************************/
- ///ű͵֮ļٱ
+ ///�ű������͵��֮��ļ��ٱ�
#define PTZ_VERT_MOTOR_RATIO 1.5
- ///ų֮̋ļٱ
+ ///�ű���������̨��֮��ļ��ٱ�
#define PTZ_VERT_BIG_GEAR_RATIO 80.0
- ///ֱܼٱ
+ ///��ֱ�ܼ��ٱ�
#define PTZ_VERT_RATIO 120.0
- ///תٵλ ת/ÿ
- ///ֱת
+ ///ת�ٵ�λ ת/ÿ��
+ ///��ֱ������ת��
#define PTZ_VERT_MOTOR_MAX_SPEED 300.0
- ///ֱСת
+ ///��ֱ�����Сת��
#define PTZ_VERT_MOTOR_MIN_SPEED 2.4
- ///ֱ̨ת
+ ///��ֱ��̨���ת��
#define PTZ_VERT_MAX_SPEED 2.5
- ///ֱ̨Сת
+ ///��ֱ��̨��Сת��
#define PTZ_VERT_MIN_SPEED 0.02
- ///ֱ̨Ĭٶ
+ ///��ֱ��̨Ĭ������ٶ�
#define PTZ_VERT_BEST_SPEED 0.8
- ///Ҫָλʱɲת
+ ///��Ҫ����ָ��λ��ʱ��ɲ��ת��
#define PTZ_VERT_BREAK_SPEED 0.3
///////////////////**//////////////////////////////
- ///Ĭϲ
+ ///�������Ĭ�ϲ����
#define PTZ_HORI_MOTOR_STEP 1.8
- ///Ĭϲ
+ ///�������Ĭ�ϲ����
#define PTZ_VERT_MOTOR_STEP 1.8
#endif
diff --git a/APP/Device/Device_speed/speed_to_bldc.c b/APP/Device/Device_speed/speed_to_bldc.c
index 0bd94df..8642457 100644
--- a/APP/Device/Device_speed/speed_to_bldc.c
+++ b/APP/Device/Device_speed/speed_to_bldc.c
@@ -7,6 +7,8 @@
#include "full_bridge.h"
#include "as5047d.h"
+#include "speed_to_hall.h"
+
#ifdef PTZ_BLDC_MOTOR
static volatile uint32_t hori_speed_task_time = 0;
@@ -300,9 +302,9 @@ static void ptz_hori_pid_task()
#endif
-#ifdef PTZ_PID_HALL_SPEED //
+// #ifdef PTZ_PID_HALL_SPEED //
// OSTimeDlyHMSM(0u, 0u, 0u, PTZ_HORI_PID_T);
-// #if 1
+#if 0
g_ptz.hori_pid.hall_h1_count = 0;
g_ptz.hori_pid.hall_h2_count = 0;
g_ptz.hori_pid.hall_h3_count = 0;
@@ -622,6 +624,51 @@ static void ptz_hori_pid_task()
// }
// else
+ /* ٶ */
+#if 1
+
+ g_speed_to_hall.hori_speed_t.flag = calculation_enable;
+
+ if (g_ptz.hori_speed_actual == 0) {
+ h_pwm_duty_change(220);
+ }
+
+ while (!(g_speed_to_hall.hori_speed_t.flag == calculation_start
+ || g_ptz.hori_start_stop_set == PTZ_HORI_STOP)) {
+ OSTimeDlyHMSM(0u, 0u, 0u, 1u);
+ }
+ if (g_ptz.hori_start_stop_set == PTZ_HORI_STOP) {
+ continue;
+ }
+
+ OSTimeDlyHMSM(0u, 0u, 0u, 50u);
+ g_speed_to_hall.hori_speed_t.flag = calculation_ok;
+
+ while (!(g_speed_to_hall.hori_speed_t.flag == calculation_end
+ || g_ptz.hori_start_stop_set == PTZ_HORI_STOP)) {
+ OSTimeDlyHMSM(0u, 0u, 0u, 1u);
+ }
+ if (g_ptz.hori_start_stop_set == PTZ_HORI_STOP) {
+ continue;
+ }
+
+ int32_t time;
+ if (g_speed_to_hall.hori_speed_t.endTime_60ms > g_speed_to_hall.hori_speed_t.startTime_60ms) {
+ time = (g_speed_to_hall.hori_speed_t.endTime_60ms - g_speed_to_hall.hori_speed_t.startTime_60ms - 1) * SPEED_TIMER_PERIOD
+ + g_speed_to_hall.hori_speed_t.endTime_us + (SPEED_TIMER_PERIOD - g_speed_to_hall.hori_speed_t.startTime_us);
+ }
+ else if (g_speed_to_hall.hori_speed_t.endTime_60ms = g_speed_to_hall.hori_speed_t.startTime_60ms) {
+ time = g_speed_to_hall.hori_speed_t.endTime_us - g_speed_to_hall.hori_speed_t.startTime_us;
+ }
+ else {
+ time = (g_speed_to_hall.hori_speed_t.endTime_60ms + (TIME_60MS_MAX - g_speed_to_hall.hori_speed_t.startTime_60ms) - 1) * SPEED_TIMER_PERIOD
+ + g_speed_to_hall.hori_speed_t.endTime_us + (SPEED_TIMER_PERIOD - g_speed_to_hall.hori_speed_t.startTime_us);
+ }
+
+ g_ptz.hori_speed_actual = (float)g_speed_to_hall.hori_speed_t.hallNum * 5000000 / time / PTZ_HORI_RATIO;
+#endif
+
+
if(g_ptz.hori_speed_actual > g_ptz.hori_speed_set * 2)
{//ٶȴ趨ٶȵ3
g_ptz.hori_pid.PidUT_float = g_ptz.hori_pid.PidUT_float * 0.7;////ֱ
@@ -673,8 +720,8 @@ static void ptz_hori_pid_task()
//PIDĵתģѹȼ뵽ģѹоƬ
// hori_dac0_data_out(g_ptz.hori_pid.PidUT_uint);
- // h_pwm_duty_change(g_ptz.hori_pid.PidUT_uint);
- h_pwm_duty_change(500);
+ h_pwm_duty_change(g_ptz.hori_pid.PidUT_uint);
+ // h_pwm_duty_change(500);
//ǰPIDֵ
g_ptz.hori_pid.LastUT_float = g_ptz.hori_pid.PidUT_float;
diff --git a/APP/Device/device_Other/device_interrupt.c b/APP/Device/device_Other/device_interrupt.c
index 33031d6..f375417 100644
--- a/APP/Device/device_Other/device_interrupt.c
+++ b/APP/Device/device_Other/device_interrupt.c
@@ -8,6 +8,9 @@
#include "gd32f4xx_it.h"
#include "ptz_type_select.h"
#include "get_angle.h"
+
+#include "speed_to_hall.h"
+
/// @brief ⲿжϳʼ
/// @param[in] usart_periph:EXTI_IRQ_init
/// @return none
@@ -604,6 +607,25 @@ void ptz_H_HALL_IRQHandler(exti_line_enum hall_linex)
#ifdef PTZ_BLDC_MOTOR
#ifdef PTZ_HALL_FEEDBACK
+ if (g_speed_to_hall.hori_speed_t.flag == calculation_enable) {
+ g_speed_to_hall.hori_speed_t.startTime_us = TIMER_CNT(TIMER6);
+ g_speed_to_hall.hori_speed_t.startTime_60ms = g_speed_to_hall.time_60ms;
+ g_speed_to_hall.hori_speed_t.hallNum = 0;
+ g_speed_to_hall.hori_speed_t.flag = calculation_start;
+ }
+
+ if (g_speed_to_hall.hori_speed_t.flag == calculation_start) {
+ g_speed_to_hall.hori_speed_t.hallNum++;
+ }
+
+ if (g_speed_to_hall.hori_speed_t.flag == calculation_ok) {
+ // g_speed_to_hall.hori_speed_t.hallNum++;
+ g_speed_to_hall.hori_speed_t.endTime_us = TIMER_CNT(TIMER6);
+ g_speed_to_hall.hori_speed_t.endTime_60ms = g_speed_to_hall.time_60ms;
+ g_speed_to_hall.hori_speed_t.flag = calculation_end;
+ }
+
+
switch(hall_linex)
{
case EXTI_10://ˮƽHALL-1
diff --git a/BSP/Driver/speed/speed_to_hall.c b/BSP/Driver/speed/speed_to_hall.c
new file mode 100644
index 0000000..fe1fca9
--- /dev/null
+++ b/BSP/Driver/speed/speed_to_hall.c
@@ -0,0 +1,62 @@
+
+#include "speed_to_hall.h"
+
+
+speed_hall g_speed_to_hall = {0};
+
+/**
+ * @brief 初始化定时器+霍尔计算速度
+ * @param
+ * @retval
+ *
+ */
+void init_hall_speed_module(void)
+{
+ timer_parameter_struct timer_initpara;
+
+ rcu_periph_clock_enable(RCU_TIMER6);
+ timer_struct_para_init(&timer_initpara);
+ timer_deinit(TIMER6);
+
+ // TIMER1 configuration
+ timer_initpara.prescaler = 99;
+ timer_initpara.alignedmode = TIMER_COUNTER_EDGE;//计数模式,边缘对齐
+ timer_initpara.counterdirection = TIMER_COUNTER_UP;//计数方向
+ timer_initpara.period = SPEED_TIMER_PERIOD;//计数重装载值,确定周期,,该值可在任意时刻进行修改以改变周期,TIMER_CAR(timer_periph) = (uint32_t)initpara->period;
+ timer_initpara.clockdivision = TIMER_CKDIV_DIV1;//时钟分频
+ timer_initpara.repetitioncounter = 0;//计数重复值
+ timer_init(TIMER6, &timer_initpara);
+
+ timer_auto_reload_shadow_enable(TIMER6);
+ timer_enable(TIMER6);
+
+ timer_interrupt_enable(TIMER6, TIMER_INT_UP);//定时器更新中断使能
+ nvic_irq_enable(TIMER6_IRQn, 2U, 2U);
+
+ g_speed_to_hall.hori_speed_t.flag = calculation_disable;
+ g_speed_to_hall.vert_speed_t.flag = calculation_disable;
+}
+
+/**
+ * @brief 定时器1中断服务函数
+ * @param
+ * @retval
+ *
+ */
+void TIMER6_IRQHandler(void)
+{
+ if(RESET != timer_interrupt_flag_get(TIMER6, TIMER_INT_FLAG_UP)) {
+ g_speed_to_hall.time_60ms++;
+ if (g_speed_to_hall.time_60ms >= TIME_60MS_MAX) {
+ g_speed_to_hall.time_60ms = 0;
+ }
+
+ timer_interrupt_flag_clear(TIMER6, TIMER_INT_FLAG_UP);
+ }
+}
+
+
+
+
+
+
diff --git a/BSP/Driver/speed/speed_to_hall.h b/BSP/Driver/speed/speed_to_hall.h
new file mode 100644
index 0000000..5c52792
--- /dev/null
+++ b/BSP/Driver/speed/speed_to_hall.h
@@ -0,0 +1,40 @@
+#ifndef __BSP_DRIVER_SPEED_HALL_H_
+#define __BSP_DRIVER_SPEED_HALL_H_
+//#include "ptz_type_select.h"
+
+#include "gd32f4xx.h"
+
+
+typedef struct _speed_t {
+ uint32_t hallNum; //霍尔编码器次数(运行方向的)
+ uint32_t startTime_60ms; //开始时间
+ uint32_t startTime_us;
+ uint32_t endTime_60ms; //结束时间
+ uint32_t endTime_us;
+ uint8_t flag; //标志位
+}speed_t;
+
+typedef struct _speed_to_hall {
+ speed_t hori_speed_t;
+ speed_t vert_speed_t;
+ uint32_t time_60ms;
+}speed_hall;
+
+typedef enum _calculation_speed_type {
+ calculation_disable = 0, //未开始计算速度
+ calculation_enable = 1, //使能计算速度
+ calculation_ok = 2, //达到计算速度时间
+ calculation_start = 3, //开始计算速度
+ calculation_end = 4, //结束计算速度
+}calculation_speed_type;
+
+extern speed_hall g_speed_to_hall;
+
+#define TIME_60MS_MAX 4000000000
+#define SPEED_TIMER_PERIOD 60000
+
+void init_hall_speed_module(void);
+
+
+
+#endif
diff --git a/GD32F4xx_Firmware_Library/SYSTICK/gd32f4xx_it.h b/GD32F4xx_Firmware_Library/SYSTICK/gd32f4xx_it.h
index 76823f7..703c94f 100644
--- a/GD32F4xx_Firmware_Library/SYSTICK/gd32f4xx_it.h
+++ b/GD32F4xx_Firmware_Library/SYSTICK/gd32f4xx_it.h
@@ -68,4 +68,6 @@ void EXTI1_IRQHandler(void);
void EXTI2_IRQHandler(void);
void TIMER4_IRQHandler(void);
+void TIMER6_IRQHandler(void);
+
#endif /* GD32F4XX_IT_H */
diff --git a/PROJECT/OS2.ewp b/PROJECT/OS2.ewp
index d2ffe04..b296e1e 100644
--- a/PROJECT/OS2.ewp
+++ b/PROJECT/OS2.ewp
@@ -409,6 +409,7 @@
$PROJ_DIR$\..\BSP\Driver\timer
$PROJ_DIR$\..\BSP\Driver\full_bridge
$PROJ_DIR$\..\APP\Service
+ $PROJ_DIR$\..\BSP\Driver\speed