第一次合并后,水平电机收发测试通过(垂直没有测试)
This commit is contained in:
parent
d5ee07278f
commit
c30d8e8981
|
@ -1,6 +1,6 @@
|
|||
|
||||
#include "rotate_servo.h"
|
||||
|
||||
#include "speed_to_servoMotor.h"
|
||||
|
||||
#ifdef PTZ_MEDIUM_WORM_SERVO_MOTOR_24V
|
||||
|
||||
|
@ -79,7 +79,44 @@ void ptz_vert_stop(unsigned short int time)
|
|||
|
||||
static void ptz_hori_rotate_monitor_task()
|
||||
{
|
||||
|
||||
static uint8_t status;
|
||||
static uint16_t speed = 100;
|
||||
switch( status )
|
||||
{
|
||||
case 0://切换为速度控制模式
|
||||
|
||||
servoSendData(horiMotorType, WriteMotorOneReg(H_MOTOR, H02_CONTR_MODE_SELEC, 0)
|
||||
, WRITE_ONE_REG_FRAME_NUM, lowPriority);
|
||||
status = 1;
|
||||
|
||||
break;
|
||||
|
||||
case 1://设置加速度时间常数
|
||||
servoSendData(horiMotorType, WriteMotorOneReg(H_MOTOR, H06_SPEED_UP_SLOPE_VALUE, 3000)
|
||||
, WRITE_ONE_REG_FRAME_NUM, lowPriority);
|
||||
status = 2;
|
||||
break;
|
||||
|
||||
case 2://设置减速度时间常数
|
||||
servoSendData(horiMotorType, WriteMotorOneReg(H_MOTOR, H06_SPEED_DOWN_SLOPE_VALUE, 2000)
|
||||
, WRITE_ONE_REG_FRAME_NUM, lowPriority);
|
||||
status = 3;
|
||||
break;
|
||||
|
||||
case 3://设置运行速度
|
||||
servoSendData(horiMotorType, WriteMotorOneReg(H_MOTOR, H06_SPEED_COMMU_SET_VALUE, speed)
|
||||
, WRITE_ONE_REG_FRAME_NUM, lowPriority);
|
||||
speed += 20;
|
||||
speed %= 500;
|
||||
status = 4;
|
||||
break;
|
||||
|
||||
case 4://保存设定的参数并运行
|
||||
servoSendData(horiMotorType, WriteMotorOneReg(H_MOTOR, H03_DI1_LOGICAL_SELEC, 1)
|
||||
, WRITE_ONE_REG_FRAME_NUM, lowPriority);
|
||||
status = 3;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void ptz_vert_rotate_monitor_task()
|
||||
|
@ -93,7 +130,7 @@ static void ptz_hori_rotate_task()
|
|||
while(1)
|
||||
{
|
||||
ptz_hori_rotate_monitor_task();
|
||||
OSTimeDlyHMSM(0u, 0u, 0u, 1u);
|
||||
OSTimeDlyHMSM(0u, 0u, 0u, 100u);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@ static void ptz_recv_hori_servo_task()
|
|||
OSSemPend(g_horiMotorMutex, 0, &err);
|
||||
if ( MotorReplyForWrite(H_MOTOR) == true )
|
||||
{
|
||||
OSSemPost(g_horiSpeedMutex);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -59,7 +59,7 @@ void ptz_send_speed(char dev, char speed)
|
|||
\param[out] none
|
||||
\retval none
|
||||
*/
|
||||
void servoHoriLinkListMemPut(uint8_t motorType)
|
||||
void servoLinkListMemPut(uint8_t motorType)
|
||||
{
|
||||
//水平电机
|
||||
if (motorType == horiMotorType) {
|
||||
|
@ -124,6 +124,9 @@ void servoHoriLinkListMemPut(uint8_t motorType)
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
//释放信号量,通知能发送一次
|
||||
OSSemPost(g_horiSpeedMutex);
|
||||
}
|
||||
|
||||
/*!
|
||||
|
@ -299,7 +302,7 @@ static void ptz_vert_servo_task()
|
|||
g_servoMotorLinkList.vertMotor.linkListNum = highPriority;
|
||||
CommuTransData(V_MOTOR, g_servoMotorLinkList.vertMotor.LinkListHead_H->data
|
||||
, g_servoMotorLinkList.vertMotor.LinkListHead_H->length);
|
||||
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -313,6 +316,7 @@ static void ptz_vert_servo_task()
|
|||
else {
|
||||
pdebug(DEBUG_LEVEL_FATAL,"ptz_vert_servo_task no data...\n\r");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -480,7 +484,7 @@ void init_speed_module(void)
|
|||
if (err != OS_ERR_NONE) {
|
||||
pdebug(DEBUG_LEVEL_FATAL, "Failed to create the motor memory pool\n\r");
|
||||
}
|
||||
|
||||
|
||||
//初始化链表头尾
|
||||
g_servoMotorLinkList.horiMotor.LinkListHead_H = NULL;
|
||||
g_servoMotorLinkList.horiMotor.LinkListHead_L = NULL;
|
||||
|
@ -506,10 +510,9 @@ void init_speed_module(void)
|
|||
|
||||
OSTimeDlyHMSM(0u, 0u, 0u, 500u);//等待硬件初始化成功
|
||||
|
||||
uint8_t buffer[20] = {0};
|
||||
uint8_t buffer_len = 0;
|
||||
buffer_len = WriteMotorOneReg_buffer(H_MOTOR, H02_CONTR_MODE_SELEC, 0, buffer);
|
||||
servoSendData(horiMotorType, buffer, buffer_len, lowPriority);
|
||||
|
||||
// servoSendData(horiMotorType, WriteMotorOneReg(H_MOTOR, H02_CONTR_MODE_SELEC, 0),
|
||||
// WRITE_ONE_REG_FRAME_NUM, lowPriority);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -68,7 +68,7 @@ void ptz_send_speed(char dev, char speed);
|
|||
void init_speed_module(void);
|
||||
|
||||
void servoSendData(uint8_t motor,uint8_t *data, uint8_t dataLen, uint8_t priority);
|
||||
void servoHoriLinkListMemPut(uint8_t motorType);
|
||||
void servoLinkListMemPut(uint8_t motorType);
|
||||
void stopTimeOut(uint8_t motorType);
|
||||
void startTimeOut(uint8_t motorType);
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#include "motorCommu.h"
|
||||
#include "servoMotor_recv.h"
|
||||
|
||||
#include "speed_to_servoMotor.h"
|
||||
/*
|
||||
********************************************************************************************************
|
||||
* 电机串口通讯驱动初始化相关结构体
|
||||
|
@ -302,6 +302,7 @@ void DMA0_Channel3_IRQHandler(void)
|
|||
|
||||
CommuInfo_t *pCommuDeal = g_commuInfoBuff[H_MOTOR].pCommuInfo;
|
||||
while(usart_flag_get(g_motorCommuBuff[H_MOTOR].uartNo, USART_FLAG_TC) == RESET); // 等待串口发送完成
|
||||
servoLinkListMemPut(horiMotorType);
|
||||
H_COMMU_RS485_RX; //485切换为接收
|
||||
pCommuDeal->dmaTranFlag = DMA_TRANS_IDLE;
|
||||
}
|
||||
|
@ -378,6 +379,7 @@ void DMA1_Channel7_IRQHandler(void)
|
|||
CommuInfo_t *pCommuDeal = g_commuInfoBuff[V_MOTOR].pCommuInfo;
|
||||
|
||||
while(usart_flag_get(g_motorCommuBuff[V_MOTOR].uartNo, USART_FLAG_TC) == RESET); // 等待串口发送完成
|
||||
servoLinkListMemPut(vertMotorType);
|
||||
V_COMMU_RS485_RX; //485切换为接收
|
||||
pCommuDeal->dmaTranFlag = DMA_TRANS_IDLE;
|
||||
|
||||
|
|
Loading…
Reference in New Issue