implemented the calculation for the time that has to pass to make one step
This commit is contained in:
parent
c06ae5e360
commit
edf029fd31
@ -80,13 +80,13 @@
|
|||||||
/* #define HAL_SD_MODULE_ENABLED */
|
/* #define HAL_SD_MODULE_ENABLED */
|
||||||
#define HAL_SPI_MODULE_ENABLED
|
#define HAL_SPI_MODULE_ENABLED
|
||||||
#define HAL_TIM_MODULE_ENABLED
|
#define HAL_TIM_MODULE_ENABLED
|
||||||
/* #define HAL_UART_MODULE_ENABLED */
|
#define HAL_UART_MODULE_ENABLED */
|
||||||
/* #define HAL_USART_MODULE_ENABLED */
|
/* #define HAL_USART_MODULE_ENABLED */
|
||||||
/* #define HAL_IRDA_MODULE_ENABLED */
|
/* #define HAL_IRDA_MODULE_ENABLED */
|
||||||
/* #define HAL_SMARTCARD_MODULE_ENABLED*/
|
/* #define HAL_SMARTCARD_MODULE_ENABLED*/
|
||||||
/* #define HAL_WWDG_MODULE_ENABLED */
|
/* #define HAL_WWDG_MODULE_ENABLED */
|
||||||
#define HAL_CORTEX_MODULE_ENABLED
|
#define HAL_CORTEX_MODULE_ENABLED
|
||||||
/* #define HAL_PCD_MODULE_ENABLED */
|
/* #define HAL_PCD_MODULE_aENABLED */
|
||||||
/* #define HAL_HCD_MODULE_ENABLED */
|
/* #define HAL_HCD_MODULE_ENABLED */
|
||||||
|
|
||||||
|
|
||||||
|
@ -46,8 +46,10 @@
|
|||||||
/* Private define ------------------------------------------------------------*/
|
/* Private define ------------------------------------------------------------*/
|
||||||
/* Private macro -------------------------------------------------------------*/
|
/* Private macro -------------------------------------------------------------*/
|
||||||
/* Private variables ---------------------------------------------------------*/
|
/* Private variables ---------------------------------------------------------*/
|
||||||
|
UART_HandleTypeDef huart2;
|
||||||
static volatile uint16_t gLastError;
|
static volatile uint16_t gLastError;
|
||||||
static volatile bool gButtonPressed = FALSE;
|
static volatile bool gButtonPressed = FALSE;
|
||||||
|
static volatile float sunWindow;
|
||||||
|
|
||||||
/* Initialization parameters. */
|
/* Initialization parameters. */
|
||||||
l6208_Init_t initDeviceParameters =
|
l6208_Init_t initDeviceParameters =
|
||||||
@ -79,88 +81,76 @@ void ButtonHandler(void);
|
|||||||
*/
|
*/
|
||||||
int main(void)
|
int main(void)
|
||||||
{
|
{
|
||||||
int32_t pos;
|
int32_t pos;
|
||||||
uint32_t freqPwm;
|
uint32_t freqPwm, timeToNextStep;
|
||||||
|
|
||||||
/* STM32xx HAL library initialization */
|
/* STM32xx HAL library initialization */
|
||||||
HAL_Init();
|
HAL_Init();
|
||||||
|
|
||||||
/* Configure the system clock */
|
|
||||||
SystemClock_Config();
|
|
||||||
|
|
||||||
//----- Init of the Motor control library
|
|
||||||
/* Set the L6208 library to use 1 device */
|
|
||||||
BSP_MotorControl_SetNbDevices(BSP_MOTOR_CONTROL_BOARD_ID_L6208, 1);
|
|
||||||
/* When BSP_MotorControl_Init is called with NULL pointer, */
|
|
||||||
/* the L6208 parameters are set with the predefined values from file */
|
|
||||||
/* l6208_target_config.h, otherwise the parameters are set using the */
|
|
||||||
/* initDeviceParameters structure values. */
|
|
||||||
BSP_MotorControl_Init(BSP_MOTOR_CONTROL_BOARD_ID_L6208, NULL);
|
|
||||||
//BSP_MotorControl_Init(BSP_MOTOR_CONTROL_BOARD_ID_L6208, &initDeviceParameters);
|
|
||||||
|
|
||||||
/* Attach the function MyFlagInterruptHandler (defined below) to the flag interrupt */
|
|
||||||
BSP_MotorControl_AttachFlagInterrupt(MyFlagInterruptHandler);
|
|
||||||
|
|
||||||
/* Attach the function MyErrorHandler (defined below) to the error Handler*/
|
/* Configure the system clock */
|
||||||
BSP_MotorControl_AttachErrorHandler(MyErrorHandler);
|
SystemClock_Config();
|
||||||
|
|
||||||
//----- Configure Button for user interaction
|
//----- Init of the Motor control library
|
||||||
|
/* Set the L6208 library to use 1 device */
|
||||||
|
BSP_MotorControl_SetNbDevices(BSP_MOTOR_CONTROL_BOARD_ID_L6208, 1);
|
||||||
|
/* When BSP_MotorControl_Init is called with NULL pointer, */
|
||||||
|
/* the L6208 parameters are set with the predefined values from file */
|
||||||
|
/* l6208_target_config.h, otherwise the parameters are set using the */
|
||||||
|
/* initDeviceParameters structure values. */
|
||||||
|
BSP_MotorControl_Init(BSP_MOTOR_CONTROL_BOARD_ID_L6208, NULL);
|
||||||
|
//BSP_MotorControl_Init(BSP_MOTOR_CONTROL_BOARD_ID_L6208, &initDeviceParameters);
|
||||||
|
|
||||||
/* Set Systick Interrupt priority highest to ensure no lock by using HAL_Delay */
|
/* Attach the function MyFlagInterruptHandler (defined below) to the flag interrupt */
|
||||||
HAL_NVIC_SetPriority(SysTick_IRQn, 0x0, 0x0);
|
BSP_MotorControl_AttachFlagInterrupt(MyFlagInterruptHandler);
|
||||||
|
|
||||||
/* Configure KEY Button */
|
|
||||||
BSP_PB_Init(BUTTON_KEY, BUTTON_MODE_EXTI);
|
|
||||||
|
|
||||||
//----- Disable the power bridges after initialization of the L6208 device
|
|
||||||
|
|
||||||
/* Disable the power bridges after initialization */
|
|
||||||
BSP_MotorControl_CmdDisable(0);
|
|
||||||
|
|
||||||
/* Wait for 2 seconds */
|
|
||||||
HAL_Delay(2000);
|
|
||||||
|
|
||||||
//----- Get the PWM frequency used for the VREFA and VREFB voltage generation
|
/* Attach the function MyErrorHandler (defined below) to the error Handler*/
|
||||||
|
BSP_MotorControl_AttachErrorHandler(MyErrorHandler);
|
||||||
freqPwm = BSP_MotorControl_GetBridgeInputPwmFreq(0);
|
|
||||||
|
|
||||||
//----- Set the PWM frequency used for the VREFA and VREFB voltage generation
|
//----- Configure Button for user interaction
|
||||||
|
|
||||||
BSP_MotorControl_SetBridgeInputPwmFreq(0, freqPwm>>1);
|
|
||||||
|
|
||||||
pos = BSP_MotorControl_GetPosition(0);
|
/* Set Systick Interrupt priority highest to ensure no lock by using HAL_Delay */
|
||||||
|
HAL_NVIC_SetPriority(SysTick_IRQn, 0x0, 0x0);
|
||||||
|
|
||||||
BSP_MotorControl_SetHome(0, pos);
|
/* Configure KEY Button */
|
||||||
|
BSP_PB_Init(BUTTON_KEY, BUTTON_MODE_EXTI);
|
||||||
|
|
||||||
//BSP_MotorControl_Move(0, FORWARD, 4000);
|
//----- Disable the power bridges after initialization of the L6208 device
|
||||||
|
|
||||||
//BSP_MotorControl_WaitWhileActive(0);
|
|
||||||
|
|
||||||
//HAL_Delay(2000);
|
|
||||||
|
|
||||||
//BSP_MotorControl_Move(0, BACKWARD, 4000);
|
|
||||||
|
|
||||||
//BSP_MotorControl_WaitWhileActive(0);
|
|
||||||
|
|
||||||
//BSP_MotorControl_SoftStop(0);
|
/* Disable the power bridges after initialization */
|
||||||
|
BSP_MotorControl_CmdDisable(0);
|
||||||
|
|
||||||
BSP_MotorControl_SelectStepMode(0, STEP_MODE_FULL);
|
/* Wait for 2 seconds */
|
||||||
|
HAL_Delay(2000);
|
||||||
|
|
||||||
/* Infinite loop */
|
//----- Get the PWM frequency used for the VREFA and VREFB voltage generation
|
||||||
|
|
||||||
|
freqPwm = BSP_MotorControl_GetBridgeInputPwmFreq(0);
|
||||||
|
|
||||||
|
//----- Set the PWM frequency used for the VREFA and VREFB voltage generation
|
||||||
|
|
||||||
|
BSP_MotorControl_SetBridgeInputPwmFreq(0, freqPwm>>1);
|
||||||
|
|
||||||
|
pos = BSP_MotorControl_GetPosition(0);
|
||||||
|
|
||||||
|
BSP_MotorControl_SetHome(0, pos);
|
||||||
|
|
||||||
|
timeToNextStep = (float)(sunWindow / 100) * 60 * 60 * 1000;
|
||||||
|
|
||||||
|
BSP_MotorControl_SelectStepMode(0, STEP_MODE_FULL);
|
||||||
|
|
||||||
|
//BSP_MotorControl_Move(0, FORWARD, 25);
|
||||||
|
//BSP_MotorControl_WaitWhileActive(0);
|
||||||
|
|
||||||
|
/* Infinite loop */
|
||||||
while(1)
|
while(1)
|
||||||
{
|
{
|
||||||
if (gButtonPressed)
|
if (gButtonPressed)
|
||||||
{
|
{
|
||||||
gButtonPressed = FALSE;
|
gButtonPressed = FALSE;
|
||||||
BSP_MotorControl_Move(0, FORWARD, 25);
|
// Sleep for timeToNextStep
|
||||||
BSP_MotorControl_WaitWhileActive(0);
|
// Shut down motor for timeToNextStep
|
||||||
BSP_MotorControl_Move(0, FORWARD, 25);
|
// Wake up F401RE and motor after timeToNextStep
|
||||||
BSP_MotorControl_WaitWhileActive(0);
|
// Make the Step
|
||||||
BSP_MotorControl_Move(0, FORWARD, 25);
|
|
||||||
BSP_MotorControl_WaitWhileActive(0);
|
|
||||||
BSP_MotorControl_Move(0, FORWARD, 25);
|
|
||||||
BSP_MotorControl_WaitWhileActive(0);
|
|
||||||
HAL_Delay(2000);
|
|
||||||
}
|
}
|
||||||
BSP_MotorControl_GoHome(0);
|
BSP_MotorControl_GoHome(0);
|
||||||
BSP_MotorControl_WaitWhileActive(0);
|
BSP_MotorControl_WaitWhileActive(0);
|
||||||
@ -210,6 +200,12 @@ void ButtonHandler(void)
|
|||||||
HAL_NVIC_ClearPendingIRQ(KEY_BUTTON_EXTI_IRQn);
|
HAL_NVIC_ClearPendingIRQ(KEY_BUTTON_EXTI_IRQn);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void transmit_uart(char *string){
|
||||||
|
uint8_t len = strlen(string);
|
||||||
|
HAL_UART_Transmit(&huart2, (uint8_t*) string, len, 200);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#ifdef USE_FULL_ASSERT
|
#ifdef USE_FULL_ASSERT
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
main.c:188:6:MyErrorHandler 0 static
|
main.c:187:6:MyErrorHandler 0 static
|
||||||
main.c:177:6:MyFlagInterruptHandler 0 static
|
main.c:176:6:MyFlagInterruptHandler 0 static
|
||||||
main.c:80:5:main 16 static
|
main.c:80:5:main 16 static
|
||||||
main.c:205:6:ButtonHandler 8 static
|
main.c:204:6:ButtonHandler 8 static
|
||||||
|
Loading…
x
Reference in New Issue
Block a user