From 67382ed910cd949d049f6be1ff23cbb3f4f46571 Mon Sep 17 00:00:00 2001 From: MQjehovah <1421706030@qq.com> Date: Thu, 1 Mar 2018 17:32:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0S=E5=9E=8B=E5=8A=A0=E5=87=8F?= =?UTF-8?q?=E9=80=9F=E7=AE=97=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Driver/inc/stepper.h | 3 +++ src/Driver/stepper_s.c | 6 ++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/Driver/inc/stepper.h b/src/Driver/inc/stepper.h index 1ef5fbe..4407716 100644 --- a/src/Driver/inc/stepper.h +++ b/src/Driver/inc/stepper.h @@ -18,6 +18,9 @@ #define STEP_PER_CIRCLE (360 / ANGEL_PER_STEP) //电机转动一圈的步数 #define STEP_DIV (4) //电机驱动细分值 #define PUL_PER_CIRCLE (STEP_PER_CIRCLE * STEP_DIV) //电机转动一圈的脉冲数 +#define ACC_TIME 500 //整个加速(或减速)过程持续的时间,由用户指定,控制电机加减速的快慢,单位ms +#define ACC_TIME_DIV 100 //加速阶段离散的点的个数 +#define TIME_PER_DIV ACC_TIME/ACC_TIME_DIV //每个离散点持续的时间 typedef struct { diff --git a/src/Driver/stepper_s.c b/src/Driver/stepper_s.c index 77bdcca..f8e5f9e 100644 --- a/src/Driver/stepper_s.c +++ b/src/Driver/stepper_s.c @@ -3,7 +3,7 @@ * @Author: MQjehovah mail:MQjehovah@hotmail.com * @version 1.0.0 * @date 2018-02-28 14:15:45 - * @brief + * @brief 加速曲线是根据时间来离散的,所以每个阶段由时间来分割,及时间累积达到某个值。总的加速时间值由用户指定 ****************************************************************************** * @attention *******************************************************************************/ @@ -23,7 +23,6 @@ void Motor_GPIO_Init(void) { // GPIO_InitTypeDef GPIO_InitStructure; // RCC_APB2PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE); - // GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4; // GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; // GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; @@ -177,6 +176,9 @@ void TIM2_IRQHandler(void) pmotor->passed_puase++; //总脉冲个数 pmotor->f_puase++; //以该频率脉冲输出的脉冲个数 + + + //对称反转??? // if (pmotor->RevetDot == pmotor->PulsesHaven)