diff --git a/stepper/steppermotor_F401RE/.cproject b/stepper/steppermotor_F401RE/.cproject
new file mode 100644
index 0000000..f948644
--- /dev/null
+++ b/stepper/steppermotor_F401RE/.cproject
@@ -0,0 +1,177 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/stepper/steppermotor_F401RE/.mxproject b/stepper/steppermotor_F401RE/.mxproject
new file mode 100644
index 0000000..50916ff
--- /dev/null
+++ b/stepper/steppermotor_F401RE/.mxproject
@@ -0,0 +1,25 @@
+[PreviousGenFiles]
+AdvancedFolderStructure=true
+HeaderFileListSize=3
+HeaderFiles#0=C:/Users/Gregor/STM32CubeIDE/workspace_1.0/steppermotor_F401RE/Core/Inc/stm32f4xx_it.h
+HeaderFiles#1=C:/Users/Gregor/STM32CubeIDE/workspace_1.0/steppermotor_F401RE/Core/Inc/stm32f4xx_hal_conf.h
+HeaderFiles#2=C:/Users/Gregor/STM32CubeIDE/workspace_1.0/steppermotor_F401RE/Core/Inc/main.h
+HeaderFolderListSize=1
+HeaderPath#0=C:/Users/Gregor/STM32CubeIDE/workspace_1.0/steppermotor_F401RE/Core/Inc
+HeaderFiles=;
+SourceFileListSize=3
+SourceFiles#0=C:/Users/Gregor/STM32CubeIDE/workspace_1.0/steppermotor_F401RE/Core/Src/stm32f4xx_it.c
+SourceFiles#1=C:/Users/Gregor/STM32CubeIDE/workspace_1.0/steppermotor_F401RE/Core/Src/stm32f4xx_hal_msp.c
+SourceFiles#2=C:/Users/Gregor/STM32CubeIDE/workspace_1.0/steppermotor_F401RE/Core/Src/main.c
+SourceFolderListSize=1
+SourcePath#0=C:/Users/Gregor/STM32CubeIDE/workspace_1.0/steppermotor_F401RE/Core/Src
+SourceFiles=;
+
+[PreviousLibFiles]
+LibFiles=Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h;Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h;Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h;Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h;Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h;Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h;Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c;Drivers/CMSIS/Include/cmsis_armcc.h;Drivers/CMSIS/Include/cmsis_armclang.h;Drivers/CMSIS/Include/cmsis_compiler.h;Drivers/CMSIS/Include/cmsis_gcc.h;Drivers/CMSIS/Include/cmsis_iccarm.h;Drivers/CMSIS/Include/cmsis_version.h;Drivers/CMSIS/Include/core_armv8mbl.h;Drivers/CMSIS/Include/core_armv8mml.h;Drivers/CMSIS/Include/core_cm0.h;Drivers/CMSIS/Include/core_cm0plus.h;Drivers/CMSIS/Include/core_cm1.h;Drivers/CMSIS/Include/core_cm23.h;Drivers/CMSIS/Include/core_cm3.h;Drivers/CMSIS/Include/core_cm33.h;Drivers/CMSIS/Include/core_cm4.h;Drivers/CMSIS/Include/core_cm7.h;Drivers/CMSIS/Include/core_sc000.h;Drivers/CMSIS/Include/core_sc300.h;Drivers/CMSIS/Include/mpu_armv7.h;Drivers/CMSIS/Include/mpu_armv8.h;Drivers/CMSIS/Include/tz_context.h;
+
+[PreviousUsedCubeIDEFiles]
+SourceFiles=Core\Src\main.c;Core\Src\stm32f4xx_it.c;Core\Src\stm32f4xx_hal_msp.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c;Core\Src/system_stm32f4xx.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c;Core\Src/system_stm32f4xx.c;Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c;;
+HeaderPath=Drivers\STM32F4xx_HAL_Driver\Inc;Drivers\STM32F4xx_HAL_Driver\Inc\Legacy;Drivers\CMSIS\Device\ST\STM32F4xx\Include;Drivers\CMSIS\Include;Core\Inc;
+CDefines=USE_HAL_DRIVER;STM32F401xE;USE_HAL_DRIVER;USE_HAL_DRIVER;
+
diff --git a/stepper/steppermotor_F401RE/.project b/stepper/steppermotor_F401RE/.project
new file mode 100644
index 0000000..b0a333d
--- /dev/null
+++ b/stepper/steppermotor_F401RE/.project
@@ -0,0 +1,33 @@
+
+
+ steppermotor_F401RE
+
+
+
+
+
+ org.eclipse.cdt.managedbuilder.core.genmakebuilder
+ clean,full,incremental,
+
+
+
+
+ org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder
+ full,incremental,
+
+
+
+
+
+ com.st.stm32cube.ide.mcu.MCUProjectNature
+ com.st.stm32cube.ide.mcu.MCUCubeProjectNature
+ org.eclipse.cdt.core.cnature
+ com.st.stm32cube.ide.mcu.MCUCubeIdeServicesRevAev2ProjectNature
+ com.st.stm32cube.ide.mcu.MCUAdvancedStructureProjectNature
+ com.st.stm32cube.ide.mcu.MCUEndUserDisabledTrustZoneProjectNature
+ com.st.stm32cube.ide.mcu.MCUSingleCpuProjectNature
+ com.st.stm32cube.ide.mcu.MCURootProjectNature
+ org.eclipse.cdt.managedbuilder.core.managedBuildNature
+ org.eclipse.cdt.managedbuilder.core.ScannerConfigNature
+
+
diff --git a/stepper/steppermotor_F401RE/.settings/language.settings.xml b/stepper/steppermotor_F401RE/.settings/language.settings.xml
new file mode 100644
index 0000000..dee8543
--- /dev/null
+++ b/stepper/steppermotor_F401RE/.settings/language.settings.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/stepper/steppermotor_F401RE/.settings/stm32cubeide.project.prefs b/stepper/steppermotor_F401RE/.settings/stm32cubeide.project.prefs
new file mode 100644
index 0000000..6cc080e
--- /dev/null
+++ b/stepper/steppermotor_F401RE/.settings/stm32cubeide.project.prefs
@@ -0,0 +1,4 @@
+635E684B79701B039C64EA45C3F84D30=06D6BDB73C214833FC1C613EA37D5A96
+8DF89ED150041C4CBC7CB9A9CAA90856=7E7998FE6928AC5B09C3B82F4A5F71B9
+DC22A860405A8BF2F2C095E5B6529F12=7E7998FE6928AC5B09C3B82F4A5F71B9
+eclipse.preferences.version=1
diff --git a/stepper/steppermotor_F401RE/Core/Inc/l6208.h b/stepper/steppermotor_F401RE/Core/Inc/l6208.h
new file mode 100644
index 0000000..c602b03
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Core/Inc/l6208.h
@@ -0,0 +1,383 @@
+/******************************************************//**
+ * @file l6208.h
+ * @author IPC Rennes
+ * @version V1.5.0
+ * @date June 1st, 2018
+ * @brief Header for l6208.c module
+ * @note (C) COPYRIGHT 2016 STMicroelectronics
+ ******************************************************************************
+ * @attention
+ *
+ *
© COPYRIGHT(c) 2016 STMicroelectronics
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * 3. Neither the name of STMicroelectronics nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ ******************************************************************************
+ */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef _L6208_H_INCLUDED
+#define _L6208_H_INCLUDED
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+/* Includes ------------------------------------------------------------------*/
+#include "l6208_target_config.h"
+#include "motor.h"
+
+/** @addtogroup BSP
+ * @{
+ */
+
+/** @addtogroup L6208
+ * @{
+ */
+
+/* Exported Constants --------------------------------------------------------*/
+
+/** @addtogroup L6208_Exported_Constants
+ * @{
+ */
+/// Current FW major version
+#define L6208_FW_MAJOR_VERSION (uint8_t)(1)
+/// Current FW minor version
+#define L6208_FW_MINOR_VERSION (uint8_t)(4)
+/// Current FW patch version
+#define L6208_FW_PATCH_VERSION (uint8_t)(0)
+/// Current FW version
+#define L6208_FW_VERSION (uint32_t)((L6208_FW_MAJOR_VERSION<<16)|\
+ (L6208_FW_MINOR_VERSION<<8)|\
+ (L6208_FW_PATCH_VERSION))
+
+/// Max position
+#define L6208_MAX_POSITION (0x7FFFFFFF)
+
+/// Min position
+#define L6208_MIN_POSITION (0x80000000)
+
+/// Position range
+#define L6208_POSITION_RANGE ((uint32_t)(L6208_MAX_POSITION -\
+ L6208_MIN_POSITION))
+/// micro step samples per period/4
+#define L6208_USTEPS_PER_QUARTER_PERIOD (16)
+
+/// minimum speed
+#define L6208_MIN_SPEED (16)
+
+/// minimum acceleration and deceleration rate
+#define L6208_MIN_ACC_DEC_RATE (24)
+
+/// Mask for HiZ bit in motorDecayMode_t enum
+#define L6208_FAST_DECAY_MODE_MASK (0x1)
+
+/// L6208 error base number
+#define L6208_ERROR_BASE (0x9000)
+/**
+ * @}
+ */
+
+/* Exported types ------------------------------------------------------------*/
+
+/** @defgroup Error_Types Error Types
+ * @{
+ */
+/// Errors
+typedef enum {
+ L6208_ERROR_SET_HOME = L6208_ERROR_BASE, /// Error while setting home position
+ L6208_ERROR_SET_MAX_SPEED = L6208_ERROR_BASE + 1, /// Error while setting max speed
+ L6208_ERROR_SET_MIN_SPEED = L6208_ERROR_BASE + 2, /// Error while setting min speed
+ L6208_ERROR_SET_ACCELERATION = L6208_ERROR_BASE + 3, /// Error while setting acceleration
+ L6208_ERROR_SET_DECELERATION = L6208_ERROR_BASE + 4, /// Error while setting decelaration
+ L6208_ERROR_MCU_OSC_CONFIG = L6208_ERROR_BASE + 5, /// Error while configuring mcu oscillator
+ L6208_ERROR_MCU_CLOCK_CONFIG = L6208_ERROR_BASE + 6, /// Error while configuring mcu clock
+ L6208_ERROR_POSITION = L6208_ERROR_BASE + 7, /// Unexpected current position (wrong number of steps)
+ L6208_ERROR_SPEED = L6208_ERROR_BASE + 8, /// Unexpected current speed
+ L6208_ERROR_INIT = L6208_ERROR_BASE + 9, /// Unexpected number of devices
+ L6208_ERROR_SET_DIRECTION = L6208_ERROR_BASE + 10,/// Error while setting direction
+ L6208_ERROR_SET_STEP_MODE = L6208_ERROR_BASE + 11,/// Attempt to set an unsupported step mode
+ L6208_ERROR_SET_PWM = L6208_ERROR_BASE + 12,/// Error while setting a PWM parameter
+}errorTypes_t;
+/**
+ * @}
+ */
+
+/** @defgroup Device_Parameters Device Parameters
+ * @{
+ */
+/// Device Parameters Structure Type
+typedef struct
+{
+ /// dwelling waiting time counter (tick)
+ volatile uint32_t dwellCounter;
+ /// motor position indicator (tick)
+ uint32_t ticks;
+ /// LSByte copy of the previous position (tick)
+ uint8_t lsbOldTicks;
+ /// LSByte copy of the previous position (tick) ( micro stepping )
+ uint8_t lsbOldUSteppingTicks;
+ /// LSByte copy of the current position (tick)
+ uint8_t lsbTicks;
+ /// P1 = acceleration phase steps number (motor position control mode)
+ uint32_t positionTarget1;
+ /// P2 = constant speed steps number (motor position control mode)
+ uint32_t positionTarget2;
+ /// P3 = deceleration phase steps number (motor position control mode)
+ uint32_t positionTarget3;
+ /// P = total move distance in steps (motor position control mode)
+ uint32_t positionTarget;
+ /// absolute motor position in microsteps (motor position control mode)
+ volatile int32_t absolutePos;
+ /// mark position in microsteps (motor position control mode)
+ volatile int32_t markPos;
+ /// motor position in microsteps (motor position control mode)
+ volatile uint32_t step;
+ /// dwelling time after position got (ms)
+ volatile uint16_t moveDwellTime;
+ /// number of micro stepping waveform samples to be rescaled according to selected torque value
+ volatile uint8_t uStepsample2scale;
+ /// number of micro stepping waveform samples to be updated into the waveform scanning table
+ volatile uint8_t uStepsample2update;
+ /// microstepping waveform sample index
+ volatile uint8_t uStepSample;
+ /// system status flags
+ volatile uint32_t flags;
+ /// current stepper state machine index
+ volatile motorState_t motionState;
+ /// current step mode
+ volatile motorStepMode_t stepMode;
+ /// micro stepping waveform scanning sample index increment
+ uint8_t uStepInc;
+ /// frequency of the VREFA and VREFB PWM
+ uint32_t vrefPwmFreq;
+ /// current selected torque value
+ volatile uint8_t curTorqueScaler;
+ /// constant speed phase torque value (%)
+ volatile uint8_t runTorque;
+ /// acceleration phase torque value (%)
+ volatile uint8_t accelTorque;
+ /// deceleration phase torque value (%)
+ volatile uint8_t decelTorque;
+ /// holding phase torque value (%)
+ volatile uint8_t holdTorque;
+ /// acceleration (steps/s^2)
+ volatile uint16_t accelerationSps2;
+ /// deceleration (steps/s^2)
+ volatile uint16_t decelerationSps2;
+ /// acceleration (steps/tick^2)
+ volatile uint16_t accelerationSpt2;
+ /// deceleration (steps/tick^2)
+ volatile uint16_t decelerationSpt2;
+ /// maximum speed (steps/s)
+ volatile uint16_t maxSpeedSps;
+ /// minimum speed (steps/s)
+ volatile uint16_t minSpeedSps;
+ /// current speed (steps/s)
+ volatile uint16_t speedSps;
+ /// maximum speed (steps/tick)
+ volatile uint32_t maxSpeedSpt;
+ /// minimum speed (steps/tick)
+ volatile uint32_t minSpeedSpt;
+ /// current speed (steps/tick)
+ volatile uint32_t speedSpt;
+}deviceParams_t;
+/**
+ * @}
+ */
+
+/// Motor driver initialization structure definition
+typedef struct
+{
+ /// acceleration (steps/s^2)
+ uint16_t accelerationSps2;
+ /// acceleration phase torque value (%)
+ uint8_t accelTorque;
+ /// deceleration (steps/s^2)
+ uint16_t decelerationSps2;
+ /// deceleration phase torque value (%)
+ uint8_t decelTorque;
+ /// maximum speed (steps/s)
+ uint16_t maxSpeedSps;
+ /// constant speed phase torque value (%)
+ uint8_t runTorque;
+ /// holding phase torque value (%)
+ uint8_t holdTorque;
+ /// current step mode
+ motorStepMode_t stepMode;
+ /// current decay mode (SLOW_DECAY or FAST_DECAY)
+ motorDecayMode_t decayMode;
+ /// dwelling time after position got (ms)
+ uint16_t moveDwellTime;
+ /// automatic HiZ on stop
+ bool autoHiZstop;
+ /// frequency of the VREFA and VREFB PWM
+ uint32_t vrefPwmFreq;
+} l6208_Init_t;
+
+
+
+/* Exported functions --------------------------------------------------------*/
+
+/** @defgroup L6208_Exported_Functions L6208 Exported Functions
+ * @{
+ */
+motorDrv_t* L6208_GetMotorHandle(void); //Return handle of the motor driver handle
+void L6208_Init(void* pInit); //Start the L6208 library
+uint16_t L6208_ReadId(void); //Read Id to get driver instance
+void L6208_AttachErrorHandler(void (*callback)(uint16_t error)); //Attach a user callback to the error Handler
+void L6208_AttachFlagInterrupt(void (*callback)(void)); //Attach a user callback to the flag Interrupt
+uint8_t L6208_CheckStatusHw(void); //Check if L6208 has a fault by reading EN pin position
+void L6208_Disable(uint8_t deviceId); //Disable the power bridge
+void L6208_ErrorHandler(uint16_t error); //Error handler which calls the user callback
+void L6208_Enable(uint8_t deviceId); //Enable the power bridge
+void L6208_FlagInterruptHandler(void); //Handler of the flag interrupt which calls the user callback (if defined)
+uint16_t L6208_GetAcceleration(uint8_t deviceId); //Return the acceleration in pps^2
+uint16_t L6208_GetCurrentSpeed(uint8_t deviceId); //Return the current speed in pps
+motorDecayMode_t L6208_GetDecayMode(uint8_t deviceId); //Get the motor decay mode
+uint16_t L6208_GetDeceleration(uint8_t deviceId); //Return the deceleration in pps^2
+motorDir_t L6208_GetDirection(uint8_t deviceId); //Get the motor current direction
+uint32_t L6208_GetFwVersion(void); //Return the FW version
+int32_t L6208_GetMark(uint8_t deviceId); //Get the mark position (32b signed)
+uint16_t L6208_GetMaxSpeed(uint8_t deviceId); //Return the max speed in pps
+uint16_t L6208_GetMinSpeed(uint8_t deviceId); //Return the min speed in pps
+motorState_t L6208_GetMotionState(uint8_t deviceId); //Return the motion state
+int32_t L6208_GetPosition(uint8_t deviceId); //Get the current position (32b signed)
+motorStepMode_t L6208_GetStepMode(uint8_t deviceId); //Get the motor step mode
+motorStopMode_t L6208_GetStopMode(uint8_t deviceId); //Get the selected mode to stop the motor
+uint8_t L6208_GetTorque(uint8_t deviceId, motorTorqueMode_t torqueMode); //Get the torque value according to the torque mode
+void L6208_GoHome(uint8_t deviceId); //Go to the home position
+void L6208_GoMark(uint8_t deviceId); //Go to the Mark position
+void L6208_GoTo(uint8_t deviceId, int32_t abs_pos); //Go to the specified position
+void L6208_GoToDir(uint8_t deviceId, motorDir_t direction, int32_t abs_pos); //Go to the specified position using the specified direction
+void L6208_HardHiZ(uint8_t deviceId); //Stop the motor by using the device deceleration and disables the power bridges
+void L6208_HardStop(uint8_t deviceId); //Stop the motor and keeps holding torque
+void L6208_Move(uint8_t deviceId, motorDir_t direction, uint32_t stepCount); //Move the motor by the specified number of steps in the specified direction
+void L6208_ReleaseReset(uint8_t deviceId); //Release the reset pin
+void L6208_Reset(uint8_t deviceId); //Set the reset pin
+void L6208_ResetDevice(void); //Reset L6208 device
+void L6208_Run(uint8_t deviceId, motorDir_t direction); //Run the motor in the specified direction
+bool L6208_SetAcceleration(uint8_t deviceId, uint16_t newAcc); //Set the acceleration in pps^2
+void L6208_SetDecayMode(uint8_t deviceId, motorDecayMode_t decayMode); //Set the motor decay mode
+bool L6208_SetDeceleration(uint8_t deviceId, uint16_t newDec); //Set the deceleration in pps^2
+void L6208_SetDirection(uint8_t deviceId, motorDir_t direction); //Set the motor direction
+void L6208_SetHome(uint8_t deviceId, int32_t homePos); //Set the home position
+void L6208_SetMark(uint8_t deviceId, int32_t markPos); //Set the mark position
+bool L6208_SetMaxSpeed(uint8_t deviceId, uint16_t volatile newSpeed); //Set the max speed value in pps
+bool L6208_SetMinSpeed(uint8_t deviceId, uint16_t volatile newSpeed); //Set the max speed value in pps
+bool L6208_SetNbDevices(uint8_t nbDevices); //Set the number of devices
+bool L6208_SetStepMode(uint8_t deviceId, motorStepMode_t stepMode); //Set the motor step mode
+void L6208_SetStopMode(uint8_t deviceId, motorStopMode_t stopMode); //Select the mode to stop the motor
+void L6208_SetTorque(uint8_t deviceId, motorTorqueMode_t torqueMode, uint8_t torqueValue); //Set the torque value according to the torque mode
+bool L6208_SoftStop(uint8_t deviceId); //Progressively stop the motor by using the device deceleration and set deceleration torque
+void L6208_TickHandler(uint8_t deviceId); //Handle the device state machine at each tick timer pulse end
+uint32_t L6208_VrefPwmGetFreq(uint8_t deviceId); //Get the frequency of VREFA and VREFB PWM
+void L6208_VrefPwmSetFreq(uint8_t deviceId, uint32_t newFreq); //Set the frequency of the VREFA and VREFB PWM
+void L6208_WaitWhileActive(uint8_t deviceId); //Wait for the device state becomes Inactive
+
+
+
+
+/**
+ * @}
+ */
+
+/** @defgroup MotorControl_Board_Linked_Functions MotorControl Board Linked Functions
+ * @{
+ */
+///Delay of the requested number of milliseconds
+extern void L6208_Board_Delay(uint32_t delay);
+///Enable Irq
+extern void L6208_Board_EnableIrq(void);
+///Disable Irq
+extern void L6208_Board_DisableIrq(void);
+///Initialise GPIOs used for L6208
+extern void L6208_Board_GpioInit(void);
+//Initialize the VREFA or VREFB PWM
+extern bool L6208_Board_VrefPwmInit(uint8_t bridgeId, uint32_t pwmFreq);
+///Set duty cycle of VREFA or VREFB PWM
+extern bool L6208_Board_VrefPwmSetDutyCycle(uint8_t bridgeId,\
+ uint16_t value,\
+ bool valueIsPwmDutyCycle);
+///Start the timer for the VREFA or VREFB PWM
+extern bool L6208_Board_VrefPwmStart(uint8_t bridgeId,\
+ uint32_t pwmFreq);
+///Stop the timer for the VREFA or VREFB PWM
+extern bool L6208_Board_VrefPwmStop(uint8_t bridgeId);
+///Get the period of VREFA and VREFB PWM
+extern uint32_t L6208_Board_VrefPwmGetPeriod(void);
+///Check that the new VREFA and VREFB PWM frequency is nor too low nor too high
+bool L6208_Board_VrefPwmFreqCheck(uint32_t newFreq);
+///Initialize the tick
+extern void L6208_Board_TickInit(void);
+///Start the timer for the tick by using the set tick frequency
+extern void L6208_Board_TickStart(void);
+///Stop the timer for the tick
+extern void L6208_Board_TickStop(void);
+///Get the tick frequency in Hz
+extern uint32_t L6208_Board_TickGetFreq(void);
+///Release the reset pin
+extern void L6208_Board_ReleaseReset(void);
+///Set the reset pin
+extern void L6208_Board_Reset(void);
+///Set the control pin
+extern void L6208_Board_CONTROL_PIN_Set(void);
+///Reset the control pin
+extern void L6208_Board_CONTROL_PIN_Reset(void);
+///Set the clock pin
+extern void L6208_Board_CLOCK_PIN_Set(void);
+///Reset the clock pin
+extern void L6208_Board_CLOCK_PIN_Reset(void);
+///Set the half full pin
+extern void L6208_Board_HALF_FULL_PIN_Set(void);
+///Reset the half full pin
+extern void L6208_Board_HALF_FULL_PIN_Reset(void);
+///Set the dir pin
+extern void L6208_Board_DIR_PIN_Set(void);
+///Reset the dir pin
+extern void L6208_Board_DIR_PIN_Reset(void);
+///Returns the EN pin state
+extern uint32_t L6208_Board_FLAG_PIN_GetState(void);
+///Enable the power bridges (leave the output bridges HiZ)
+extern void L6208_Board_Enable(void);
+///Disable the power bridges (leave the output bridges HiZ)
+extern void L6208_Board_Disable(void);
+/**
+ * @}
+ */
+
+ /**
+ * @}
+ */
+
+/**
+ * @}
+ */
+
+#ifdef __cplusplus
+ }
+#endif
+
+#endif /* __L6208_H */
+
+/******************* (C) COPYRIGHT 2016 STMicroelectronics *****END OF FILE****/
diff --git a/stepper/steppermotor_F401RE/Core/Inc/l6208_target_config.h b/stepper/steppermotor_F401RE/Core/Inc/l6208_target_config.h
new file mode 100644
index 0000000..e2f9c17
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Core/Inc/l6208_target_config.h
@@ -0,0 +1,120 @@
+/******************************************************//**
+ * @file l6208_target_config.h
+ * @author IPC Rennes
+ * @version V1.5.0
+ * @date June 1st, 2018
+ * @brief Predefines values for the L6208 parameters
+ * @note (C) COPYRIGHT 2016 STMicroelectronics
+ ******************************************************************************
+ * @attention
+ *
+ * © COPYRIGHT(c) 2016 STMicroelectronics
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * 3. Neither the name of STMicroelectronics nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ ******************************************************************************
+ */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __L6208_TARGET_CONFIG_H
+#define __L6208_TARGET_CONFIG_H
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+/** @addtogroup BSP
+ * @{
+ */
+
+/** @addtogroup L6208
+ * @{
+ */
+
+/** @addtogroup L6208_Exported_Constants
+ * @{
+ */
+
+/** @defgroup Predefined_L6208_Parameters_Values Predefined L6208 Parameters Values
+ * @{
+ */
+
+/// Acceleration rate in step/s^2 or (1/16)th step/s^2 for microstep modes
+#define L6208_CONF_PARAM_ACC_RATE (1000)
+
+/// Acceleration current torque in % (from 0 to 100)
+#define L6208_CONF_PARAM_ACC_CURRENT (10)
+
+/// Deceleration rate in step/s^2 or (1/16)th step/s^2 for microstep modes
+#define L6208_CONF_PARAM_DEC_RATE (1000)
+
+/// Deceleration current torque in % (from 0 to 100)
+#define L6208_CONF_PARAM_DEC_CURRENT (10)
+
+/// Running speed in step/s or (1/16)th step/s for microstep modes
+#define L6208_CONF_PARAM_RUNNING_SPEED (1000)
+
+/// Running current torque in % (from 0 to 100)
+#define L6208_CONF_PARAM_RUNNING_CURRENT (10)
+
+/// Holding current torque in % (from 0 to 100)
+#define L6208_CONF_PARAM_HOLDING_CURRENT (10)
+
+/// Step mode via enum motorStepMode_t
+#define L6208_CONF_PARAM_STEP_MODE (STEP_MODE_1_16)
+
+/// Decay mode via enum motorDecayMode_t
+#define L6208_CONF_PARAM_DECAY_MODE (FAST_DECAY)
+
+/// Dwelling time in ms
+#define L6208_CONF_PARAM_DWELL_TIME (0)
+
+/// Automatic HIZ STOP
+#define L6208_CONF_PARAM_AUTO_HIZ_STOP (FALSE)
+
+/// VREFA and VREFB PWM frequency (Hz)
+#define L6208_CONF_VREF_PWM_FREQUENCY (100000)
+
+/**
+ * @}
+ */
+
+/**
+ * @}
+ */
+
+/**
+ * @}
+ */
+
+/**
+ * @}
+ */
+
+#ifdef __cplusplus
+ }
+#endif
+
+#endif /* __L6208_TARGET_CONFIG_H */
+
+/******************* (C) COPYRIGHT 2016 STMicroelectronics *****END OF FILE****/
diff --git a/stepper/steppermotor_F401RE/Core/Inc/main.h b/stepper/steppermotor_F401RE/Core/Inc/main.h
new file mode 100644
index 0000000..3d72c33
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Core/Inc/main.h
@@ -0,0 +1,66 @@
+/**
+ ******************************************************************************
+ * @file Multi/Examples/MotionControl/IHM05A1_ExampleFor1Motor/Inc/main.h
+ * @author IPC Rennes
+ * @version V1.5.0
+ * @date June 1st, 2018
+ * @brief Header for main.c module
+ ******************************************************************************
+ * @attention
+ *
+ * © COPYRIGHT(c) 2016 STMicroelectronics
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * 3. Neither the name of STMicroelectronics nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ ******************************************************************************
+ */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __MAIN_H
+#define __MAIN_H
+
+/* Includes ------------------------------------------------------------------*/
+#include "x_nucleo_ihmxx.h"
+#include "l6208.h"
+#include "x_nucleo_ihm05a1_stm32f4xx.h"
+#ifdef USE_STM32F4XX_NUCLEO
+#include "x_nucleo_ihm05a1_stm32f4xx.h"
+#endif
+#ifdef USE_STM32F3XX_NUCLEO
+#include "x_nucleo_ihm05a1_stm32f3xx.h"
+#endif
+#ifdef USE_STM32F0XX_NUCLEO
+#include "x_nucleo_ihm05a1_stm32f0xx.h"
+#endif
+#ifdef USE_STM32L0XX_NUCLEO
+#include "x_nucleo_ihm05a1_stm32l0xx.h"
+#endif
+/* Exported types ------------------------------------------------------------*/
+/* Exported constants --------------------------------------------------------*/
+/* Exported functions ------------------------------------------------------- */
+void SystemClock_Config(void);
+void MyErrorHandler(uint16_t error);
+
+#endif /* __MAIN_H */
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/stepper/steppermotor_F401RE/Core/Inc/motor.h b/stepper/steppermotor_F401RE/Core/Inc/motor.h
new file mode 100644
index 0000000..bf37d4c
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Core/Inc/motor.h
@@ -0,0 +1,441 @@
+/**
+ ******************************************************************************
+ * @file motor.h
+ * @author IPC Rennes
+ * @version V1.7.0
+ * @date March 16th, 2018
+ * @brief This file contains all the functions prototypes for motor drivers.
+ ******************************************************************************
+ * @attention
+ *
+ * © COPYRIGHT(c) 2016 STMicroelectronics
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * 3. Neither the name of STMicroelectronics nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ ******************************************************************************
+ */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __MOTOR_H
+#define __MOTOR_H
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+/* Includes ------------------------------------------------------------------*/
+#include
+
+/** @addtogroup BSP
+ * @{
+ */
+
+/** @addtogroup Components
+ * @{
+ */
+
+/** @defgroup Motor Motor
+ * @{
+ */
+
+/** @defgroup Motor_Exported_Constants Motor Exported Constants
+ * @{
+ */
+
+/// boolean for false condition
+#ifndef FALSE
+#define FALSE (0)
+#endif
+/// boolean for true condition
+#ifndef TRUE
+#define TRUE (1)
+#endif
+
+ /**
+ * @}
+ */
+
+/** @defgroup Motor_Exported_Types Motor Exported Types
+ * @{
+ */
+
+/** @defgroup Motor_Boolean_Type Motor Boolean Type
+ * @{
+ */
+///bool Type
+typedef uint8_t bool;
+/**
+ * @}
+ */
+
+/** @defgroup Device_Direction_Options Device Direction Options
+ * @{
+ */
+/// Direction options
+typedef enum {
+ BACKWARD = 0,
+ FORWARD = 1,
+ UNKNOW_DIR = ((uint8_t)0xFF)
+} motorDir_t;
+/**
+ * @}
+ */
+
+/** @defgroup Device_Action_Options Device Action Options
+ * @{
+ */
+/// Action options
+typedef enum {
+ ACTION_RESET = ((uint8_t)0x00),
+ ACTION_COPY = ((uint8_t)0x08)
+} motorAction_t;
+/**
+ * @}
+ */
+
+/** @defgroup Device_States Device States
+ * @{
+ */
+/// Device states
+typedef enum {
+ ACCELERATING = 0,
+ DECELERATINGTOSTOP = 1,
+ DECELERATING = 2,
+ STEADY = 3,
+ INDEX_ACCEL = 4,
+ INDEX_RUN = 5,
+ INDEX_DECEL = 6,
+ INDEX_DWELL = 7,
+ INACTIVE = 8,
+ STANDBY = 9,
+ STANDBYTOINACTIVE = 10
+} motorState_t;
+/**
+ * @}
+ */
+
+/** @defgroup Device_Step_mode Device Step mode
+ * @{
+ */
+ /// Stepping options
+typedef enum {
+ STEP_MODE_FULL = ((uint8_t)0x00),
+ STEP_MODE_HALF = ((uint8_t)0x01),
+ STEP_MODE_1_4 = ((uint8_t)0x02),
+ STEP_MODE_1_8 = ((uint8_t)0x03),
+ STEP_MODE_1_16 = ((uint8_t)0x04),
+ STEP_MODE_1_32 = ((uint8_t)0x05),
+ STEP_MODE_1_64 = ((uint8_t)0x06),
+ STEP_MODE_1_128 = ((uint8_t)0x07),
+ STEP_MODE_1_256 = ((uint8_t)0x08),
+ STEP_MODE_UNKNOW = ((uint8_t)0xFE),
+ STEP_MODE_WAVE = ((uint8_t)0xFF)
+} motorStepMode_t;
+
+/**
+ * @}
+ */
+
+/** @defgroup Decay_mode Decay mode
+ * @{
+ */
+/// Decay Mode
+typedef enum {
+ SLOW_DECAY = 0,
+ FAST_DECAY = 1,
+ UNKNOW_DECAY = ((uint8_t)0xFF)
+} motorDecayMode_t;
+/**
+ * @}
+ */
+
+/** @defgroup Stop_mode Stop mode
+ * @{
+ */
+/// Stop mode
+typedef enum
+{
+ HOLD_MODE = 0,
+ HIZ_MODE = 1,
+ STANDBY_MODE = 2,
+ UNKNOW_STOP_MODE = ((uint8_t)0xFF)
+} motorStopMode_t;
+/**
+ * @}
+ */
+
+/** @defgroup Torque_mode Torque mode
+ * @{
+ */
+/// Torque mode
+typedef enum
+{
+ ACC_TORQUE = 0,
+ DEC_TORQUE = 1,
+ RUN_TORQUE = 2,
+ HOLD_TORQUE = 3,
+ CURRENT_TORQUE = 4,
+ UNKNOW_TORQUE = ((uint8_t)0xFF)
+} motorTorqueMode_t;
+/**
+ * @}
+ */
+
+/** @defgroup Dual_Full_Bridge_Configuration Dual Full Bridge Configuration
+ * @{
+ */
+///Dual full bridge configurations for brush DC motors
+typedef enum {
+ PARALLELING_NONE___1_BIDIR_MOTOR_BRIDGE_A__1_BIDIR_MOTOR_BRIDGE_B = 0,
+ PARALLELING_NONE___1_BIDIR_MOTOR_BRIDGE_A__2_UNDIR_MOTOR_BRIDGE_B = 1,
+ PARALLELING_NONE___2_UNDIR_MOTOR_BRIDGE_A__1_BIDIR_MOTOR_BRIDGE_B = 2,
+ PARALLELING_NONE___2_UNDIR_MOTOR_BRIDGE_A__2_UNDIR_MOTOR_BRIDGE_B = 3,
+ PARALLELING_IN1A_IN2A__1_UNDIR_MOTOR_BRIDGE_A__1_BIDIR_MOTOR_BRIDGE_B = 4,
+ PARALLELING_IN1A_IN2A__1_UNDIR_MOTOR_BRIDGE_A__2_UNDIR_MOTOR_BRIDGE_B = 5,
+ PARALLELING_IN1B_IN2B__1_BIDIR_MOTOR_BRIDGE_A__1_UNDIR_MOTOR_BRIDGE_B = 6,
+ PARALLELING_IN1B_IN2B__2_UNDIR_MOTOR_BRIDGE_A__1_UNDIR_MOTOR_BRIDGE_B = 7,
+ PARALLELING_IN1A_IN2A__IN1B_IN2B__1_UNDIR_MOTOR_BRIDGE_A__1_UNDIR_MOTOR_BRIDGE_B = 8,
+ PARALLELING_IN1A_IN2A__IN1B_IN2B__1_BIDIR_MOTOR = 9,
+ PARALLELING_IN1A_IN1B__IN2A_IN2B__1_UNDIR_MOTOR_BRIDGE_1A__1_UNDIR_MOTOR_BRIDGE_2A = 10,
+ PARALLELING_IN1A_IN1B__IN2A_IN2B__1_BIDIR_MOTOR = 11,
+ PARALLELING_ALL_WITH_IN1A___1_UNDIR_MOTOR = 12,
+ PARALLELING_END_ENUM = 13
+} dualFullBridgeConfig_t;
+/**
+ * @}
+ */
+
+/** @defgroup Motor_Driver_Structure Motor Driver Structure
+ * @{
+ */
+/// Motor driver structure definition
+typedef struct
+{
+ /// Function pointer to Init
+ void (*Init)(void*);
+ /// Function pointer to ReadID
+ uint16_t (*ReadID)(void);
+ /// Function pointer to AttachErrorHandler
+ void(*AttachErrorHandler)(void (*callback)(uint16_t));
+ /// Function pointer to AttachFlagInterrupt
+ void (*AttachFlagInterrupt)(void (*callback)(void));
+ /// Function pointer to AttachBusyInterrupt
+ void (*AttachBusyInterrupt)(void (*callback)(void));
+ /// Function pointer to FlagInterruptHandler
+ void (*FlagInterruptHandler)(void);
+ /// Function pointer to GetAcceleration
+ uint16_t (*GetAcceleration)(uint8_t);
+ /// Function pointer to GetCurrentSpeed
+ uint16_t (*GetCurrentSpeed)(uint8_t);
+ /// Function pointer to GetDeceleration
+ uint16_t (*GetDeceleration)(uint8_t);
+ /// Function pointer to GetDeviceState
+ motorState_t(*GetDeviceState)(uint8_t);
+ /// Function pointer to GetFwVersion
+ uint32_t (*GetFwVersion)(void);
+ /// Function pointer to GetMark
+ int32_t (*GetMark)(uint8_t);
+ /// Function pointer to GetMaxSpeed
+ uint16_t (*GetMaxSpeed)(uint8_t);
+ /// Function pointer to GetMinSpeed
+ uint16_t (*GetMinSpeed)(uint8_t);
+ /// Function pointer to GetPosition
+ int32_t (*GetPosition)(uint8_t);
+ /// Function pointer to GoHome
+ void (*GoHome)(uint8_t);
+ /// Function pointer to GoMark
+ void (*GoMark)(uint8_t);
+ /// Function pointer to GoTo
+ void (*GoTo)(uint8_t, int32_t);
+ /// Function pointer to HardStop
+ void (*HardStop)(uint8_t);
+ /// Function pointer to Move
+ void (*Move)(uint8_t, motorDir_t, uint32_t );
+ /// Function pointer to ResetAllDevices
+ void (*ResetAllDevices)(void);
+ /// Function pointer to Run
+ void (*Run)(uint8_t, motorDir_t);
+ /// Function pointer to SetAcceleration
+ bool(*SetAcceleration)(uint8_t ,uint16_t );
+ /// Function pointer to SetDeceleration
+ bool(*SetDeceleration)(uint8_t , uint16_t );
+ /// Function pointer to SetHome
+ void (*SetHome)(uint8_t, int32_t);
+ /// Function pointer to SetMark
+ void (*SetMark)(uint8_t, int32_t);
+ /// Function pointer to SetMaxSpeed
+ bool (*SetMaxSpeed)(uint8_t, uint16_t );
+ /// Function pointer to SetMinSpeed
+ bool (*SetMinSpeed)(uint8_t, uint16_t );
+ /// Function pointer to SoftStop
+ bool (*SoftStop)(uint8_t);
+ /// Function pointer to StepClockHandler
+ void (*StepClockHandler)(uint8_t deviceId);
+ /// Function pointer to WaitWhileActive
+ void (*WaitWhileActive)(uint8_t);
+ /// Function pointer to CmdDisable
+ void (*CmdDisable)(uint8_t);
+ /// Function pointer to CmdEnable
+ void (*CmdEnable)(uint8_t);
+ /// Function pointer to CmdGetParam
+ uint32_t (*CmdGetParam)(uint8_t, uint32_t);
+ /// Function pointer to CmdGetStatus
+ uint16_t (*CmdGetStatus)(uint8_t);
+ /// Function pointer to CmdNop
+ void (*CmdNop)(uint8_t);
+ /// Function pointer to CmdSetParam
+ void (*CmdSetParam)(uint8_t, uint32_t, uint32_t);
+ /// Function pointer to ReadStatusRegister
+ uint16_t (*ReadStatusRegister)(uint8_t);
+ /// Function pointer to ReleaseReset
+ void (*ReleaseReset)(uint8_t);
+ /// Function pointer to Reset
+ void (*Reset)(uint8_t);
+ /// Function pointer to SelectStepMode
+ bool (*SelectStepMode)(uint8_t deviceId, motorStepMode_t);
+ /// Function pointer to SetDirection
+ void (*SetDirection)(uint8_t, motorDir_t);
+ /// Function pointer to CmdGoToDir
+ void (*CmdGoToDir)(uint8_t, motorDir_t, int32_t);
+ /// Function pointer to CheckBusyHw
+ uint8_t (*CheckBusyHw)(void);
+ /// Function pointer to CheckStatusHw
+ uint8_t (*CheckStatusHw)(void);
+ /// Function pointer to CmdGoUntil
+ void (*CmdGoUntil)(uint8_t, motorAction_t, motorDir_t, uint32_t);
+ /// Function pointer to CmdHardHiZ
+ void (*CmdHardHiZ)(uint8_t);
+ /// Function pointer to CmdReleaseSw
+ void (*CmdReleaseSw)(uint8_t, motorAction_t, motorDir_t);
+ /// Function pointer to CmdResetDevice
+ void (*CmdResetDevice)(uint8_t);
+ /// Function pointer to CmdResetPos
+ void (*CmdResetPos)(uint8_t);
+ /// Function pointer to CmdRun
+ void (*CmdRun)(uint8_t, motorDir_t, uint32_t);
+ /// Function pointer to CmdSoftHiZ
+ void (*CmdSoftHiZ)(uint8_t);
+ /// Function pointer to CmdStepClock
+ void (*CmdStepClock)(uint8_t, motorDir_t);
+ /// Function pointer to FetchAndClearAllStatus
+ void (*FetchAndClearAllStatus)(void);
+ /// Function pointer to GetFetchedStatus
+ uint16_t (*GetFetchedStatus)(uint8_t);
+ /// Function pointer to GetNbDevices
+ uint8_t (*GetNbDevices)(void);
+ /// Function pointer to IsDeviceBusy
+ bool (*IsDeviceBusy)(uint8_t);
+ /// Function pointer to SendQueuedCommands
+ void (*SendQueuedCommands)(void);
+ /// Function pointer to QueueCommands
+ void (*QueueCommands)(uint8_t, uint8_t, int32_t);
+ /// Function pointer to WaitForAllDevicesNotBusy
+ void (*WaitForAllDevicesNotBusy)(void);
+ /// Function pointer to ErrorHandler
+ void (*ErrorHandler)(uint16_t);
+ /// Function pointer to BusyInterruptHandler
+ void (*BusyInterruptHandler)(void);
+ /// Function pointer to CmdSoftStop
+ void (*CmdSoftStop)(uint8_t);
+ /// Function pointer to StartStepClock
+ void (*StartStepClock)(uint16_t);
+ /// Function pointer to StopStepClock
+ void (*StopStepClock)(void);
+ /// Function pointer to SetDualFullBridgeConfig
+ void (*SetDualFullBridgeConfig)(uint8_t);
+ /// Function pointer to GetBridgeInputPwmFreq
+ uint32_t (*GetBridgeInputPwmFreq)(uint8_t);
+ /// Function pointer to SetBridgeInputPwmFreq
+ void (*SetBridgeInputPwmFreq)(uint8_t, uint32_t);
+ /// Function pointer to SetStopMode
+ void (*SetStopMode)(uint8_t, motorStopMode_t);
+ /// Function pointer to GetStopMode
+ motorStopMode_t (*GetStopMode)(uint8_t);
+ /// Function pointer to SetDecayMode
+ void (*SetDecayMode)(uint8_t, motorDecayMode_t);
+ /// Function pointer to GetDecayMode
+ motorDecayMode_t (*GetDecayMode)(uint8_t);
+ /// Function pointer to GetStepMode
+ motorStepMode_t (*GetStepMode)(uint8_t);
+ /// Function pointer to GetDirection
+ motorDir_t (*GetDirection)(uint8_t);
+ /// Function pointer to ExitDeviceFromReset
+ void (*ExitDeviceFromReset)(uint8_t);
+ /// Function pointer to SetTorque
+ void (*SetTorque)(uint8_t, motorTorqueMode_t, uint8_t);
+ /// Function pointer to GetTorque
+ uint8_t (*GetTorque)(uint8_t, motorTorqueMode_t);
+ /// Function pointer to SetVRefFreq
+ void (*SetRefFreq)(uint8_t, uint32_t);
+ /// Function pointer to GetVRefFreq
+ uint32_t (*GetRefFreq)(uint8_t);
+ /// Function pointer to SetVRefDc
+ void (*SetRefDc)(uint8_t, uint8_t);
+ /// Function pointer to GetVRefDc
+ uint8_t (*GetRefDc)(uint8_t);
+ /// Function pointer to SetNbDevices
+ bool (*SetNbDevices)(uint8_t);
+ /// Function pointer to SetAnalogValue
+ bool (*SetAnalogValue)(uint8_t, uint32_t, float);
+ /// Function pointer to GetAnalogValue
+ float (*GetAnalogValue)(uint8_t, uint32_t);
+ /// Function pointer to SetTorqueBoostEnable
+ void (*SetTorqueBoostEnable) (uint8_t, bool);
+ /// Function pointer to GetTorqueBoostEnable
+ bool (*GetTorqueBoostEnable) (uint8_t);
+ /// Function pointer to SetTorqueBoostThreshold
+ void (*SetTorqueBoostThreshold) (uint8_t, uint16_t);
+ /// Function pointer to GetTorqueBoostThreshold
+ uint16_t (*GetTorqueBoostThreshold) (uint8_t);
+ /// Function pointer to GetDualFullBridgeConfig
+ uint8_t (*GetDualFullBridgeConfig) (void);
+}motorDrv_t;
+
+/**
+
+* @}
+ */
+
+/**
+ * @}
+ */
+
+/**
+ * @}
+ */
+
+/**
+ * @}
+ */
+
+/**
+ * @}
+ */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __MOTOR_H */
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/stepper/steppermotor_F401RE/Core/Inc/stm32f4xx_hal_conf.h b/stepper/steppermotor_F401RE/Core/Inc/stm32f4xx_hal_conf.h
new file mode 100644
index 0000000..83e385c
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Core/Inc/stm32f4xx_hal_conf.h
@@ -0,0 +1,418 @@
+/**
+ ******************************************************************************
+ * @file Multi/Examples/MotionControl/IHM05A1_ExampleFor1Motor/Inc/stm32f4xx_hal_conf.h
+ * @author IPC Rennes
+ * @version V1.5.0
+ * @date June 1st, 2018
+ * @brief HAL configuration file
+ ******************************************************************************
+ * @attention
+ *
+ * © COPYRIGHT(c) 2016 STMicroelectronics
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * 3. Neither the name of STMicroelectronics nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ ******************************************************************************
+ */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __STM32F4xx_HAL_CONF_H
+#define __STM32F4xx_HAL_CONF_H
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+/* Exported types ------------------------------------------------------------*/
+/* Exported constants --------------------------------------------------------*/
+
+/* ########################## Module Selection ############################## */
+/**
+ * @brief This is the list of modules to be used in the HAL driver
+ */
+#define HAL_MODULE_ENABLED
+#define HAL_ADC_MODULE_ENABLED
+/* #define HAL_CAN_MODULE_ENABLED */
+/* #define HAL_CRC_MODULE_ENABLED */
+/* #define HAL_CEC_MODULE_ENABLED */
+/* #define HAL_CRYP_MODULE_ENABLED */
+/* #define HAL_DAC_MODULE_ENABLED */
+#define HAL_DMA_MODULE_ENABLED
+/* #define HAL_DMA2D_MODULE_ENABLED */
+/* #define HAL_ETH_MODULE_ENABLED */
+#define HAL_FLASH_MODULE_ENABLED
+/* #define HAL_NAND_MODULE_ENABLED */
+/* #define HAL_NOR_MODULE_ENABLED */
+/* #define HAL_PCCARD_MODULE_ENABLED */
+/* #define HAL_SRAM_MODULE_ENABLED */
+/* #define HAL_SDRAM_MODULE_ENABLED */
+/* #define HAL_HASH_MODULE_ENABLED */
+#define HAL_GPIO_MODULE_ENABLED
+/* #define HAL_I2C_MODULE_ENABLED */
+/* #define HAL_I2S_MODULE_ENABLED */
+/* #define HAL_IWDG_MODULE_ENABLED */
+/* #define HAL_LTDC_MODULE_ENABLED */
+#define HAL_PWR_MODULE_ENABLED
+#define HAL_RCC_MODULE_ENABLED
+/* #define HAL_RNG_MODULE_ENABLED */
+/* #define HAL_RTC_MODULE_ENABLED */
+/* #define HAL_SAI_MODULE_ENABLED */
+/* #define HAL_SD_MODULE_ENABLED */
+#define HAL_SPI_MODULE_ENABLED
+#define HAL_TIM_MODULE_ENABLED
+/* #define HAL_UART_MODULE_ENABLED */
+/* #define HAL_USART_MODULE_ENABLED */
+/* #define HAL_IRDA_MODULE_ENABLED */
+/* #define HAL_SMARTCARD_MODULE_ENABLED*/
+/* #define HAL_WWDG_MODULE_ENABLED */
+#define HAL_CORTEX_MODULE_ENABLED
+/* #define HAL_PCD_MODULE_ENABLED */
+/* #define HAL_HCD_MODULE_ENABLED */
+
+
+/* ########################## HSE/HSI Values adaptation ##################### */
+/**
+ * @brief Adjust the value of External High Speed oscillator (HSE) used in your application.
+ * This value is used by the RCC HAL module to compute the system frequency
+ * (when HSE is used as system clock source, directly or through the PLL).
+ */
+#if !defined (HSE_VALUE)
+ #define HSE_VALUE ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */
+#endif /* HSE_VALUE */
+
+#if !defined (HSE_STARTUP_TIMEOUT)
+ #define HSE_STARTUP_TIMEOUT ((uint32_t)100) /*!< Time out for HSE start up, in ms */
+#endif /* HSE_STARTUP_TIMEOUT */
+
+/**
+ * @brief Internal High Speed oscillator (HSI) value.
+ * This value is used by the RCC HAL module to compute the system frequency
+ * (when HSI is used as system clock source, directly or through the PLL).
+ */
+#if !defined (HSI_VALUE)
+ #define HSI_VALUE ((uint32_t)16000000) /*!< Value of the Internal oscillator in Hz*/
+#endif /* HSI_VALUE */
+
+/**
+ * @brief Internal Low Speed oscillator (LSI) value.
+ */
+#if !defined (LSI_VALUE)
+ #define LSI_VALUE ((uint32_t)32000)
+#endif /* LSI_VALUE */ /*!< Value of the Internal Low Speed oscillator in Hz
+ The real value may vary depending on the variations
+ in voltage and temperature. */
+/**
+ * @brief External Low Speed oscillator (LSE) value.
+ */
+#if !defined (LSE_VALUE)
+ #define LSE_VALUE ((uint32_t)32768) /*!< Value of the External Low Speed oscillator in Hz */
+#endif /* LSE_VALUE */
+
+#if !defined (LSE_STARTUP_TIMEOUT)
+ #define LSE_STARTUP_TIMEOUT ((uint32_t)5000) /*!< Time out for LSE start up, in ms */
+#endif /* LSE_STARTUP_TIMEOUT */
+
+/**
+ * @brief External clock source for I2S peripheral
+ * This value is used by the I2S HAL module to compute the I2S clock source
+ * frequency, this source is inserted directly through I2S_CKIN pad.
+ */
+#if !defined (EXTERNAL_CLOCK_VALUE)
+ #define EXTERNAL_CLOCK_VALUE ((uint32_t)12288000) /*!< Value of the Internal oscillator in Hz*/
+#endif /* EXTERNAL_CLOCK_VALUE */
+
+/* Tip: To avoid modifying this file each time you need to use different HSE,
+ === you can define the HSE value in your toolchain compiler preprocessor. */
+
+/* ########################### System Configuration ######################### */
+/**
+ * @brief This is the HAL system configuration section
+ */
+#define VDD_VALUE ((uint32_t)3300) /*!< Value of VDD in mv */
+#define TICK_INT_PRIORITY ((uint32_t)0x0F) /*!< tick interrupt priority */
+#define USE_RTOS 0
+#define PREFETCH_ENABLE 1
+#define INSTRUCTION_CACHE_ENABLE 1
+#define DATA_CACHE_ENABLE 1
+
+/* ########################## Assert Selection ############################## */
+/**
+ * @brief Uncomment the line below to expanse the "assert_param" macro in the
+ * HAL drivers code
+ */
+/* #define USE_FULL_ASSERT 1 */
+
+/* ################## Ethernet peripheral configuration ##################### */
+
+/* Section 1 : Ethernet peripheral configuration */
+
+/* MAC ADDRESS: MAC_ADDR0:MAC_ADDR1:MAC_ADDR2:MAC_ADDR3:MAC_ADDR4:MAC_ADDR5 */
+#define MAC_ADDR0 2
+#define MAC_ADDR1 0
+#define MAC_ADDR2 0
+#define MAC_ADDR3 0
+#define MAC_ADDR4 0
+#define MAC_ADDR5 0
+
+/* Definition of the Ethernet driver buffers size and count */
+#define ETH_RX_BUF_SIZE ETH_MAX_PACKET_SIZE /* buffer size for receive */
+#define ETH_TX_BUF_SIZE ETH_MAX_PACKET_SIZE /* buffer size for transmit */
+#define ETH_RXBUFNB ((uint32_t)4) /* 4 Rx buffers of size ETH_RX_BUF_SIZE */
+#define ETH_TXBUFNB ((uint32_t)4) /* 4 Tx buffers of size ETH_TX_BUF_SIZE */
+
+/* Section 2: PHY configuration section */
+
+/* DP83848 PHY Address*/
+#define DP83848_PHY_ADDRESS 0x01
+/* PHY Reset delay these values are based on a 1 ms Systick interrupt*/
+#define PHY_RESET_DELAY ((uint32_t)0x000000FF)
+/* PHY Configuration delay */
+#define PHY_CONFIG_DELAY ((uint32_t)0x00000FFF)
+
+#define PHY_READ_TO ((uint32_t)0x0000FFFF)
+#define PHY_WRITE_TO ((uint32_t)0x0000FFFF)
+
+/* Section 3: Common PHY Registers */
+
+#define PHY_BCR ((uint16_t)0x00) /*!< Transceiver Basic Control Register */
+#define PHY_BSR ((uint16_t)0x01) /*!< Transceiver Basic Status Register */
+
+#define PHY_RESET ((uint16_t)0x8000) /*!< PHY Reset */
+#define PHY_LOOPBACK ((uint16_t)0x4000) /*!< Select loop-back mode */
+#define PHY_FULLDUPLEX_100M ((uint16_t)0x2100) /*!< Set the full-duplex mode at 100 Mb/s */
+#define PHY_HALFDUPLEX_100M ((uint16_t)0x2000) /*!< Set the half-duplex mode at 100 Mb/s */
+#define PHY_FULLDUPLEX_10M ((uint16_t)0x0100) /*!< Set the full-duplex mode at 10 Mb/s */
+#define PHY_HALFDUPLEX_10M ((uint16_t)0x0000) /*!< Set the half-duplex mode at 10 Mb/s */
+#define PHY_AUTONEGOTIATION ((uint16_t)0x1000) /*!< Enable auto-negotiation function */
+#define PHY_RESTART_AUTONEGOTIATION ((uint16_t)0x0200) /*!< Restart auto-negotiation function */
+#define PHY_POWERDOWN ((uint16_t)0x0800) /*!< Select the power down mode */
+#define PHY_ISOLATE ((uint16_t)0x0400) /*!< Isolate PHY from MII */
+
+#define PHY_AUTONEGO_COMPLETE ((uint16_t)0x0020) /*!< Auto-Negotiation process completed */
+#define PHY_LINKED_STATUS ((uint16_t)0x0004) /*!< Valid link established */
+#define PHY_JABBER_DETECTION ((uint16_t)0x0002) /*!< Jabber condition detected */
+
+/* Section 4: Extended PHY Registers */
+
+#define PHY_SR ((uint16_t)0x10) /*!< PHY status register Offset */
+#define PHY_MICR ((uint16_t)0x11) /*!< MII Interrupt Control Register */
+#define PHY_MISR ((uint16_t)0x12) /*!< MII Interrupt Status and Misc. Control Register */
+
+#define PHY_LINK_STATUS ((uint16_t)0x0001) /*!< PHY Link mask */
+#define PHY_SPEED_STATUS ((uint16_t)0x0002) /*!< PHY Speed mask */
+#define PHY_DUPLEX_STATUS ((uint16_t)0x0004) /*!< PHY Duplex mask */
+
+#define PHY_MICR_INT_EN ((uint16_t)0x0002) /*!< PHY Enable interrupts */
+#define PHY_MICR_INT_OE ((uint16_t)0x0001) /*!< PHY Enable output interrupt events */
+
+#define PHY_MISR_LINK_INT_EN ((uint16_t)0x0020U) /*!< Enable Interrupt on change of link status */
+#define PHY_LINK_INTERRUPT ((uint16_t)0x2000U) /*!< PHY link status interrupt mask */
+
+/* ################## SPI peripheral configuration ########################## */
+
+/* CRC FEATURE: Use to activate CRC feature inside HAL SPI Driver
+* Activated: CRC code is present inside driver
+* Deactivated: CRC code cleaned from driver
+*/
+
+#define USE_SPI_CRC 1U
+
+/* Includes ------------------------------------------------------------------*/
+/**
+ * @brief Include module's header file
+ */
+
+#ifdef HAL_RCC_MODULE_ENABLED
+ #include "stm32f4xx_hal_rcc.h"
+#endif /* HAL_RCC_MODULE_ENABLED */
+
+#ifdef HAL_GPIO_MODULE_ENABLED
+ #include "stm32f4xx_hal_gpio.h"
+#endif /* HAL_GPIO_MODULE_ENABLED */
+
+#ifdef HAL_DMA_MODULE_ENABLED
+ #include "stm32f4xx_hal_dma.h"
+#endif /* HAL_DMA_MODULE_ENABLED */
+
+#ifdef HAL_CORTEX_MODULE_ENABLED
+ #include "stm32f4xx_hal_cortex.h"
+#endif /* HAL_CORTEX_MODULE_ENABLED */
+
+#ifdef HAL_ADC_MODULE_ENABLED
+ #include "stm32f4xx_hal_adc.h"
+#endif /* HAL_ADC_MODULE_ENABLED */
+
+#ifdef HAL_CAN_MODULE_ENABLED
+ #include "stm32f4xx_hal_can.h"
+#endif /* HAL_CAN_MODULE_ENABLED */
+
+#ifdef HAL_CRC_MODULE_ENABLED
+ #include "stm32f4xx_hal_crc.h"
+#endif /* HAL_CRC_MODULE_ENABLED */
+
+#ifdef HAL_CRYP_MODULE_ENABLED
+ #include "stm32f4xx_hal_cryp.h"
+#endif /* HAL_CRYP_MODULE_ENABLED */
+
+#ifdef HAL_DMA2D_MODULE_ENABLED
+ #include "stm32f4xx_hal_dma2d.h"
+#endif /* HAL_DMA2D_MODULE_ENABLED */
+
+#ifdef HAL_DAC_MODULE_ENABLED
+ #include "stm32f4xx_hal_dac.h"
+#endif /* HAL_DAC_MODULE_ENABLED */
+
+#ifdef HAL_DCMI_MODULE_ENABLED
+ #include "stm32f4xx_hal_dcmi.h"
+#endif /* HAL_DCMI_MODULE_ENABLED */
+
+#ifdef HAL_ETH_MODULE_ENABLED
+ #include "stm32f4xx_hal_eth.h"
+#endif /* HAL_ETH_MODULE_ENABLED */
+
+#ifdef HAL_FLASH_MODULE_ENABLED
+ #include "stm32f4xx_hal_flash.h"
+#endif /* HAL_FLASH_MODULE_ENABLED */
+
+#ifdef HAL_SRAM_MODULE_ENABLED
+ #include "stm32f4xx_hal_sram.h"
+#endif /* HAL_SRAM_MODULE_ENABLED */
+
+#ifdef HAL_NOR_MODULE_ENABLED
+ #include "stm32f4xx_hal_nor.h"
+#endif /* HAL_NOR_MODULE_ENABLED */
+
+#ifdef HAL_NAND_MODULE_ENABLED
+ #include "stm32f4xx_hal_nand.h"
+#endif /* HAL_NAND_MODULE_ENABLED */
+
+#ifdef HAL_PCCARD_MODULE_ENABLED
+ #include "stm32f4xx_hal_pccard.h"
+#endif /* HAL_PCCARD_MODULE_ENABLED */
+
+#ifdef HAL_SDRAM_MODULE_ENABLED
+ #include "stm32f4xx_hal_sdram.h"
+#endif /* HAL_SDRAM_MODULE_ENABLED */
+
+#ifdef HAL_HASH_MODULE_ENABLED
+ #include "stm32f4xx_hal_hash.h"
+#endif /* HAL_HASH_MODULE_ENABLED */
+
+#ifdef HAL_I2C_MODULE_ENABLED
+ #include "stm32f4xx_hal_i2c.h"
+#endif /* HAL_I2C_MODULE_ENABLED */
+
+#ifdef HAL_I2S_MODULE_ENABLED
+ #include "stm32f4xx_hal_i2s.h"
+#endif /* HAL_I2S_MODULE_ENABLED */
+
+#ifdef HAL_IWDG_MODULE_ENABLED
+ #include "stm32f4xx_hal_iwdg.h"
+#endif /* HAL_IWDG_MODULE_ENABLED */
+
+#ifdef HAL_LTDC_MODULE_ENABLED
+ #include "stm32f4xx_hal_ltdc.h"
+#endif /* HAL_LTDC_MODULE_ENABLED */
+
+#ifdef HAL_PWR_MODULE_ENABLED
+ #include "stm32f4xx_hal_pwr.h"
+#endif /* HAL_PWR_MODULE_ENABLED */
+
+#ifdef HAL_RNG_MODULE_ENABLED
+ #include "stm32f4xx_hal_rng.h"
+#endif /* HAL_RNG_MODULE_ENABLED */
+
+#ifdef HAL_RTC_MODULE_ENABLED
+ #include "stm32f4xx_hal_rtc.h"
+#endif /* HAL_RTC_MODULE_ENABLED */
+
+#ifdef HAL_SAI_MODULE_ENABLED
+ #include "stm32f4xx_hal_sai.h"
+#endif /* HAL_SAI_MODULE_ENABLED */
+
+#ifdef HAL_SD_MODULE_ENABLED
+ #include "stm32f4xx_hal_sd.h"
+#endif /* HAL_SD_MODULE_ENABLED */
+
+#ifdef HAL_SPI_MODULE_ENABLED
+ #include "stm32f4xx_hal_spi.h"
+#endif /* HAL_SPI_MODULE_ENABLED */
+
+#ifdef HAL_TIM_MODULE_ENABLED
+ #include "stm32f4xx_hal_tim.h"
+#endif /* HAL_TIM_MODULE_ENABLED */
+
+#ifdef HAL_UART_MODULE_ENABLED
+ #include "stm32f4xx_hal_uart.h"
+#endif /* HAL_UART_MODULE_ENABLED */
+
+#ifdef HAL_USART_MODULE_ENABLED
+ #include "stm32f4xx_hal_usart.h"
+#endif /* HAL_USART_MODULE_ENABLED */
+
+#ifdef HAL_IRDA_MODULE_ENABLED
+ #include "stm32f4xx_hal_irda.h"
+#endif /* HAL_IRDA_MODULE_ENABLED */
+
+#ifdef HAL_SMARTCARD_MODULE_ENABLED
+ #include "stm32f4xx_hal_smartcard.h"
+#endif /* HAL_SMARTCARD_MODULE_ENABLED */
+
+#ifdef HAL_WWDG_MODULE_ENABLED
+ #include "stm32f4xx_hal_wwdg.h"
+#endif /* HAL_WWDG_MODULE_ENABLED */
+
+#ifdef HAL_PCD_MODULE_ENABLED
+ #include "stm32f4xx_hal_pcd.h"
+#endif /* HAL_PCD_MODULE_ENABLED */
+
+#ifdef HAL_HCD_MODULE_ENABLED
+ #include "stm32f4xx_hal_hcd.h"
+#endif /* HAL_HCD_MODULE_ENABLED */
+
+/* Exported macro ------------------------------------------------------------*/
+#ifdef USE_FULL_ASSERT
+/**
+ * @brief The assert_param macro is used for function's parameters check.
+ * @param expr: If expr is false, it calls assert_failed function
+ * which reports the name of the source file and the source
+ * line number of the call that failed.
+ * If expr is true, it returns no value.
+ * @retval None
+ */
+ #define assert_param(expr) ((expr) ? (void)0 : assert_failed((uint8_t *)__FILE__, __LINE__))
+/* Exported functions ------------------------------------------------------- */
+ void assert_failed(uint8_t* file, uint32_t line);
+#else
+ #define assert_param(expr) ((void)0)
+#endif /* USE_FULL_ASSERT */
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __STM32F4xx_HAL_CONF_H */
+
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/stepper/steppermotor_F401RE/Core/Inc/stm32f4xx_it.h b/stepper/steppermotor_F401RE/Core/Inc/stm32f4xx_it.h
new file mode 100644
index 0000000..10c0c1f
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Core/Inc/stm32f4xx_it.h
@@ -0,0 +1,73 @@
+/**
+ ******************************************************************************
+ * @file Multi/Examples/MotionControl/IHM05A1_ExampleFor1Motor/Inc/stm32f4xx_it.h
+ * @author IPC Rennes
+ * @version V1.5.0
+ * @date June 1st, 2018
+ * @brief This file contains the headers of the interrupt handlers.
+ ******************************************************************************
+ * @attention
+ *
+ * © COPYRIGHT(c) 2016 STMicroelectronics
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * 3. Neither the name of STMicroelectronics nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ ******************************************************************************
+ */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __STM32F4xx_IT_H
+#define __STM32F4xx_IT_H
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+/* Includes ------------------------------------------------------------------*/
+#include "main.h"
+
+/* Exported types ------------------------------------------------------------*/
+/* Exported constants --------------------------------------------------------*/
+/* Exported macro ------------------------------------------------------------*/
+/* Exported functions ------------------------------------------------------- */
+
+void NMI_Handler(void);
+void HardFault_Handler(void);
+void MemManage_Handler(void);
+void BusFault_Handler(void);
+void UsageFault_Handler(void);
+void SVC_Handler(void);
+void DebugMon_Handler(void);
+void PendSV_Handler(void);
+void SysTick_Handler(void);
+
+void EXTI15_10_IRQHandler(void);
+void TIM4_IRQHandler(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __STM32F4xx_IT_H */
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/stepper/steppermotor_F401RE/Core/Inc/stm32f4xx_nucleo.h b/stepper/steppermotor_F401RE/Core/Inc/stm32f4xx_nucleo.h
new file mode 100644
index 0000000..1fc66d0
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Core/Inc/stm32f4xx_nucleo.h
@@ -0,0 +1,302 @@
+/**
+ ******************************************************************************
+ * @file stm32f4xx_nucleo.h
+ * @author MCD Application Team
+ * @brief This file contains definitions for:
+ * - LEDs and push-button available on STM32F4XX-Nucleo Kit
+ * from STMicroelectronics
+ * - LCD, joystick and microSD available on Adafruit 1.8" TFT LCD
+ * shield (reference ID 802)
+ ******************************************************************************
+ * @attention
+ *
+ * © COPYRIGHT(c) 2017 STMicroelectronics
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * 3. Neither the name of STMicroelectronics nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ ******************************************************************************
+ */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __STM32F4XX_NUCLEO_H
+#define __STM32F4XX_NUCLEO_H
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+/* Includes ------------------------------------------------------------------*/
+#include "stm32f4xx_hal.h"
+
+/* To be defined only if the board is provided with the related shield */
+/* https://www.adafruit.com/products/802 */
+#define ADAFRUIT_TFT_JOY_SD_ID802
+
+/** @addtogroup BSP
+ * @{
+ */
+
+/** @addtogroup STM32F4XX_NUCLEO
+ * @{
+ */
+
+/** @addtogroup STM32F4XX_NUCLEO_LOW_LEVEL
+ * @{
+ */
+
+/** @defgroup STM32F4XX_NUCLEO_LOW_LEVEL_Exported_Types STM32F4XX NUCLEO LOW LEVEL Exported Types
+ * @{
+ */
+typedef enum
+{
+ LED2 = 0
+}Led_TypeDef;
+
+typedef enum
+{
+ BUTTON_USER = 0,
+ /* Alias */
+ BUTTON_KEY = BUTTON_USER
+} Button_TypeDef;
+
+typedef enum
+{
+ BUTTON_MODE_GPIO = 0,
+ BUTTON_MODE_EXTI = 1
+}ButtonMode_TypeDef;
+
+typedef enum
+{
+ JOY_NONE = 0,
+ JOY_SEL = 1,
+ JOY_DOWN = 2,
+ JOY_LEFT = 3,
+ JOY_RIGHT = 4,
+ JOY_UP = 5
+}JOYState_TypeDef;
+
+/**
+ * @}
+ */
+
+/** @defgroup STM32F4XX_NUCLEO_LOW_LEVEL_Exported_Constants STM32F4XX NUCLEO LOW LEVEL Exported Constants
+ * @{
+ */
+
+/**
+ * @brief Define for STM32F4XX_NUCLEO board
+ */
+#if !defined (USE_STM32F4XX_NUCLEO)
+ #define USE_STM32F4XX_NUCLEO
+#endif
+
+/** @defgroup STM32F4XX_NUCLEO_LOW_LEVEL_LED STM32F4XX NUCLEO LOW LEVEL LED
+ * @{
+ */
+#define LEDn 1
+
+#define LED2_PIN GPIO_PIN_5
+#define LED2_GPIO_PORT GPIOA
+#define LED2_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE()
+#define LED2_GPIO_CLK_DISABLE() __HAL_RCC_GPIOA_CLK_DISABLE()
+
+#define LEDx_GPIO_CLK_ENABLE(__INDEX__) LED2_GPIO_CLK_ENABLE()
+#define LEDx_GPIO_CLK_DISABLE(__INDEX__) LED2_GPIO_CLK_DISABLE()
+/**
+ * @}
+ */
+
+/** @defgroup STM32F4XX_NUCLEO_LOW_LEVEL_BUTTON STM32F4XX NUCLEO LOW LEVEL BUTTON
+ * @{
+ */
+#define BUTTONn 1
+
+/**
+ * @brief Key push-button
+ */
+#define USER_BUTTON_PIN GPIO_PIN_13
+#define USER_BUTTON_GPIO_PORT GPIOC
+#define USER_BUTTON_GPIO_CLK_ENABLE() __HAL_RCC_GPIOC_CLK_ENABLE()
+#define USER_BUTTON_GPIO_CLK_DISABLE() __HAL_RCC_GPIOC_CLK_DISABLE()
+#define USER_BUTTON_EXTI_LINE GPIO_PIN_13
+#define USER_BUTTON_EXTI_IRQn EXTI15_10_IRQn
+
+#define BUTTONx_GPIO_CLK_ENABLE(__INDEX__) USER_BUTTON_GPIO_CLK_ENABLE()
+#define BUTTONx_GPIO_CLK_DISABLE(__INDEX__) USER_BUTTON_GPIO_CLK_DISABLE()
+
+/* Aliases */
+#define KEY_BUTTON_PIN USER_BUTTON_PIN
+#define KEY_BUTTON_GPIO_PORT USER_BUTTON_GPIO_PORT
+#define KEY_BUTTON_GPIO_CLK_ENABLE() USER_BUTTON_GPIO_CLK_ENABLE()
+#define KEY_BUTTON_GPIO_CLK_DISABLE() USER_BUTTON_GPIO_CLK_DISABLE()
+#define KEY_BUTTON_EXTI_LINE USER_BUTTON_EXTI_LINE
+#define KEY_BUTTON_EXTI_IRQn USER_BUTTON_EXTI_IRQn
+
+/**
+ * @}
+ */
+
+/** @defgroup STM32F4XX_NUCLEO_LOW_LEVEL_BUS STM32F4XX NUCLEO LOW LEVEL BUS
+ * @{
+ */
+/*############################### SPI1 #######################################*/
+#ifdef HAL_SPI_MODULE_ENABLED
+
+#define NUCLEO_SPIx SPI1
+#define NUCLEO_SPIx_CLK_ENABLE() __HAL_RCC_SPI1_CLK_ENABLE()
+
+#define NUCLEO_SPIx_SCK_AF GPIO_AF5_SPI1
+#define NUCLEO_SPIx_SCK_GPIO_PORT GPIOA
+#define NUCLEO_SPIx_SCK_PIN GPIO_PIN_5
+#define NUCLEO_SPIx_SCK_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE()
+#define NUCLEO_SPIx_SCK_GPIO_CLK_DISABLE() __HAL_RCC_GPIOA_CLK_DISABLE()
+
+#define NUCLEO_SPIx_MISO_MOSI_AF GPIO_AF5_SPI1
+#define NUCLEO_SPIx_MISO_MOSI_GPIO_PORT GPIOA
+#define NUCLEO_SPIx_MISO_MOSI_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE()
+#define NUCLEO_SPIx_MISO_MOSI_GPIO_CLK_DISABLE() __HAL_RCC_GPIOA_CLK_DISABLE()
+#define NUCLEO_SPIx_MISO_PIN GPIO_PIN_6
+#define NUCLEO_SPIx_MOSI_PIN GPIO_PIN_7
+/* Maximum Timeout values for flags waiting loops. These timeouts are not based
+ on accurate values, they just guarantee that the application will not remain
+ stuck if the SPI communication is corrupted.
+ You may modify these timeout values depending on CPU frequency and application
+ conditions (interrupts routines ...). */
+#define NUCLEO_SPIx_TIMEOUT_MAX 1000
+
+/**
+ * @brief SD Control Lines management
+ */
+#define SD_CS_LOW() HAL_GPIO_WritePin(SD_CS_GPIO_PORT, SD_CS_PIN, GPIO_PIN_RESET)
+#define SD_CS_HIGH() HAL_GPIO_WritePin(SD_CS_GPIO_PORT, SD_CS_PIN, GPIO_PIN_SET)
+
+/**
+ * @brief LCD Control Lines management
+ */
+#define LCD_CS_LOW() HAL_GPIO_WritePin(LCD_CS_GPIO_PORT, LCD_CS_PIN, GPIO_PIN_RESET)
+#define LCD_CS_HIGH() HAL_GPIO_WritePin(LCD_CS_GPIO_PORT, LCD_CS_PIN, GPIO_PIN_SET)
+#define LCD_DC_LOW() HAL_GPIO_WritePin(LCD_DC_GPIO_PORT, LCD_DC_PIN, GPIO_PIN_RESET)
+#define LCD_DC_HIGH() HAL_GPIO_WritePin(LCD_DC_GPIO_PORT, LCD_DC_PIN, GPIO_PIN_SET)
+
+/**
+ * @brief SD Control Interface pins (shield D4)
+ */
+#define SD_CS_PIN GPIO_PIN_5
+#define SD_CS_GPIO_PORT GPIOB
+#define SD_CS_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
+#define SD_CS_GPIO_CLK_DISABLE() __HAL_RCC_GPIOB_CLK_DISABLE()
+
+/**
+ * @brief LCD Control Interface pins (shield D10)
+ */
+#define LCD_CS_PIN GPIO_PIN_6
+#define LCD_CS_GPIO_PORT GPIOB
+#define LCD_CS_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
+#define LCD_CS_GPIO_CLK_DISABLE() __HAL_RCC_GPIOB_CLK_DISABLE()
+
+/**
+ * @brief LCD Data/Command Interface pins (shield D8)
+ */
+#define LCD_DC_PIN GPIO_PIN_9
+#define LCD_DC_GPIO_PORT GPIOA
+#define LCD_DC_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE()
+#define LCD_DC_GPIO_CLK_DISABLE() __HAL_RCC_GPIOA_CLK_DISABLE()
+
+#endif /* HAL_SPI_MODULE_ENABLED */
+
+/*################################ ADC1 ######################################*/
+/**
+ * @brief ADC Interface pins
+ * used to detect motion of Joystick available on Adafruit 1.8" TFT shield
+ */
+
+#ifdef HAL_ADC_MODULE_ENABLED
+
+#define NUCLEO_ADCx ADC1
+#define NUCLEO_ADCx_CLK_ENABLE() __HAL_RCC_ADC1_CLK_ENABLE()
+#define NUCLEO_ADCx_CLK_DISABLE() __HAL_RCC_ADC1_CLK_DISABLE()
+
+#define NUCLEO_ADCx_CHANNEL ADC_CHANNEL_8
+
+#define NUCLEO_ADCx_GPIO_PORT GPIOB
+#define NUCLEO_ADCx_GPIO_PIN GPIO_PIN_0
+#define NUCLEO_ADCx_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
+#define NUCLEO_ADCx_GPIO_CLK_DISABLE() __HAL_RCC_GPIOB_CLK_DISABLE()
+#endif /* HAL_ADC_MODULE_ENABLED */
+/**
+ * @}
+ */
+
+/**
+ * @}
+ */
+
+/** @defgroup STM32F4XX_NUCLEO_LOW_LEVEL_Exported_Macros STM32F4XX NUCLEO LOW LEVEL Exported Macros
+ * @{
+ */
+/**
+ * @}
+ */
+
+/** @defgroup STM32F4XX_NUCLEO_LOW_LEVEL_Exported_Functions STM32F4XX NUCLEO LOW LEVEL Exported Functions
+ * @{
+ */
+uint32_t BSP_GetVersion(void);
+void BSP_LED_Init(Led_TypeDef Led);
+void BSP_LED_DeInit(Led_TypeDef Led);
+void BSP_LED_On(Led_TypeDef Led);
+void BSP_LED_Off(Led_TypeDef Led);
+void BSP_LED_Toggle(Led_TypeDef Led);
+void BSP_PB_Init(Button_TypeDef Button, ButtonMode_TypeDef ButtonMode);
+void BSP_PB_DeInit(Button_TypeDef Button);
+uint32_t BSP_PB_GetState(Button_TypeDef Button);
+#ifdef HAL_ADC_MODULE_ENABLED
+uint8_t BSP_JOY_Init(void);
+JOYState_TypeDef BSP_JOY_GetState(void);
+void BSP_JOY_DeInit(void);
+#endif /* HAL_ADC_MODULE_ENABLED */
+
+
+/**
+ * @}
+ */
+
+/**
+ * @}
+ */
+
+/**
+ * @}
+ */
+
+/**
+ * @}
+ */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __STM32F4XX_NUCLEO_H */
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/stepper/steppermotor_F401RE/Core/Inc/x_nucleo_ihm05a1_stm32f4xx.h b/stepper/steppermotor_F401RE/Core/Inc/x_nucleo_ihm05a1_stm32f4xx.h
new file mode 100644
index 0000000..0c5a163
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Core/Inc/x_nucleo_ihm05a1_stm32f4xx.h
@@ -0,0 +1,209 @@
+/**
+ ******************************************************************************
+ * @file x_nucleo_ihm05a1_stm32f4xx.h
+ * @author IPC Rennes
+ * @version V1.5.0
+ * @date June 1st, 2018
+ * @brief Header for BSP driver for x-nucleo-ihm05a1 Nucleo extension board
+ * (based on L6208)
+ ******************************************************************************
+ * @attention
+ *
+ * © COPYRIGHT(c) 2018 STMicroelectronics
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * 3. Neither the name of STMicroelectronics nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ ******************************************************************************
+ */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef X_NUCLEO_IHM05A1_STM32F4XX_H
+#define X_NUCLEO_IHM05A1_STM32F4XX_H
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+/* Includes ------------------------------------------------------------------*/
+#include "stm32f4xx_nucleo.h"
+
+/** @addtogroup BSP
+ * @{
+ */
+
+/** @addtogroup X_NUCLEO_IHM05A1_STM32F4XX
+ * @{
+ */
+
+/* Exported Constants --------------------------------------------------------*/
+
+/** @defgroup IHM05A1_Exported_Constants IHM05A1 Exported Constants
+ * @{
+ */
+
+/******************************************************************************/
+/* USE_STM32F4XX_NUCLEO */
+/******************************************************************************/
+
+ /** @defgroup Constants_For_STM32F4XX_NUCLEO Constants For STM32F4XX NUCLEO
+* @{
+*/
+
+/// GPIO Pin used for the VREFA
+#define BSP_MOTOR_CONTROL_BOARD_VREFA_PIN (GPIO_PIN_3)
+/// GPIO port used for the VREFA
+#define BSP_MOTOR_CONTROL_BOARD_VREFA_PORT (GPIOB)
+
+/// Interrupt line used for L6208 OCD and OVT
+#define FLAG_EXTI_LINE_IRQn (EXTI15_10_IRQn)
+
+/// Timer used to generate the VREFA PWM
+#define BSP_MOTOR_CONTROL_BOARD_TIMER_VREFA_PWM (TIM2)
+
+/// Timer used to generate the VREFB PWM
+#define BSP_MOTOR_CONTROL_BOARD_TIMER_VREFB_PWM (TIM3)
+
+/// Channel Timer used for the VREFA PWM
+#define BSP_MOTOR_CONTROL_BOARD_CHAN_TIMER_VREFA_PWM (TIM_CHANNEL_2)
+
+/// Channel Timer used for the VREFB PWM
+#define BSP_MOTOR_CONTROL_BOARD_CHAN_TIMER_VREFB_PWM (TIM_CHANNEL_2)
+
+/// HAL Active Channel Timer used for the VREFA PWM
+#define BSP_MOTOR_CONTROL_BOARD_HAL_ACT_CHAN_TIMER_VREFA_PWM (HAL_TIM_ACTIVE_CHANNEL_2)
+
+/// HAL Active Channel Timer used for the VREFB PWM
+#define BSP_MOTOR_CONTROL_BOARD_HAL_ACT_CHAN_TIMER_VREFB_PWM (HAL_TIM_ACTIVE_CHANNEL_2)
+
+/// Timer Clock Enable for the VREFA PWM
+#define __BSP_MOTOR_CONTROL_BOARD_TIMER_VREFA_PWM_CLCK_ENABLE() __TIM2_CLK_ENABLE()
+
+/// Timer Clock Disable for the VREFA PWM
+#define __BSP_MOTOR_CONTROL_BOARD_TIMER_VREFA_PWM_CLCK_DISABLE() __TIM2_CLK_DISABLE()
+
+/// Timer Clock Enable for the VREFB PWMs
+#define __BSP_MOTOR_CONTROL_BOARD_TIMER_VREFB_PWM_CLCK_ENABLE() __TIM3_CLK_ENABLE()
+
+/// Timer Clock Disable for the VREFB PWMs
+#define __BSP_MOTOR_CONTROL_BOARD_TIMER_VREFB_PWM_CLCK_DISABLE() __TIM3_CLK_DISABLE()
+
+/// VREFA PWM GPIO alternate function
+#define BSP_MOTOR_CONTROL_BOARD_AFx_TIMx_VREFA_PWM (GPIO_AF1_TIM2)
+
+/// VREFB PWM GPIO alternate function
+#define BSP_MOTOR_CONTROL_BOARD_AFx_TIMx_VREFB_PWM (GPIO_AF2_TIM3)
+
+/// Timer used to generate the tick
+#define BSP_MOTOR_CONTROL_BOARD_TIMER_TICK (TIM4)
+
+/// tick timer global interrupt
+#define BSP_MOTOR_CONTROL_BOARD_TIMER_TICK_IRQn (TIM4_IRQn)
+
+/// Channel Timer used for the tick
+#define BSP_MOTOR_CONTROL_BOARD_CHAN_TIMER_TICK (TIM_CHANNEL_1)
+
+/// Timer Clock Enable for the tick
+#define __BSP_MOTOR_CONTROL_BOARD_TIMER_TICK_CLCK_ENABLE() __TIM4_CLK_ENABLE()
+
+/// Timer Clock Disable for the tick
+#define __BSP_MOTOR_CONTROL_BOARD_TIMER_TICK_CLCK_DISABLE() __TIM4_CLK_DISABLE()
+
+/// HAL Active Channel Timer used for the tick
+#define BSP_MOTOR_CONTROL_BOARD_HAL_ACT_CHAN_TIMER_TICK (HAL_TIM_ACTIVE_CHANNEL_1)
+
+/// Flag interrupt priority
+#define BSP_MOTOR_CONTROL_BOARD_EN_AND_FLAG_PRIORITY (1)
+
+/// tick timer priority (lower than flag interrupt priority)
+#define BSP_MOTOR_CONTROL_BOARD_TIMER_TICK_PRIORITY (BSP_MOTOR_CONTROL_BOARD_EN_AND_FLAG_PRIORITY + 1)
+
+ /**
+* @}
+*/
+
+/******************************************************************************/
+/* Independent plateform definitions */
+/******************************************************************************/
+
+ /** @defgroup Constants_For_All_Nucleo_Platforms Constants For All Nucleo Platforms
+* @{
+*/
+
+/// GPIO Pin used for the VREFB
+#define BSP_MOTOR_CONTROL_BOARD_VREFB_PIN (GPIO_PIN_7)
+/// GPIO Port used for the VREFB
+#define BSP_MOTOR_CONTROL_BOARD_VREFB_PORT (GPIOC)
+
+/// GPIO Pin used for the L6208 clock pin (step clock input)
+#define BSP_MOTOR_CONTROL_BOARD_CLOCK_PIN (GPIO_PIN_10)
+/// GPIO port used for the L6208 clock pin (step clock input)
+#define BSP_MOTOR_CONTROL_BOARD_CLOCK_PORT (GPIOB)
+
+/// GPIO Pin used for the L6208 CW/CCW pin (direction)
+#define BSP_MOTOR_CONTROL_BOARD_DIR_PIN (GPIO_PIN_8)
+/// GPIO port used for the L6208 CW/CCW pin (direction)
+#define BSP_MOTOR_CONTROL_BOARD_DIR_PORT (GPIOA)
+
+/// GPIO Pin used for the L6208 HALF/FULL pin (step mode selector)
+#define BSP_MOTOR_CONTROL_BOARD_HALF_FULL_PIN (GPIO_PIN_5)
+/// GPIO port used for the L6208 HALF/FULL pin (step mode selector)
+#define BSP_MOTOR_CONTROL_BOARD_HALF_FULL_PORT (GPIOB)
+
+/// GPIO Pin used for the L6208 control pin (decay mode selector)
+#define BSP_MOTOR_CONTROL_BOARD_CONTROL_PIN (GPIO_PIN_4)
+/// GPIO port used for the L6208 control pin (decay mode selector)
+#define BSP_MOTOR_CONTROL_BOARD_CONTROL_PORT (GPIOB)
+
+/// GPIO Pin used for the L6208 reset pin
+#define BSP_MOTOR_CONTROL_BOARD_RESET_PIN (GPIO_PIN_9)
+/// GPIO port used for the L6208 reset pin
+#define BSP_MOTOR_CONTROL_BOARD_RESET_PORT (GPIOA)
+
+/// GPIO Pin used for the L6208 EN pin (chip enable) and OCD and OVT alarms
+#define BSP_MOTOR_CONTROL_BOARD_EN_AND_FLAG_PIN (GPIO_PIN_10)
+/// GPIO port used for the L6208 EN pin (chip enable) OCD and OVT alarms
+#define BSP_MOTOR_CONTROL_BOARD_EN_AND_FLAG_PORT (GPIOA)
+
+/**
+ * @}
+ */
+
+/**
+ * @}
+ */
+
+/**
+ * @}
+ */
+
+/**
+ * @}
+ */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* X_NUCLEO_IHM05A1_STM32F4XX_H */
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/stepper/steppermotor_F401RE/Core/Inc/x_nucleo_ihmxx.h b/stepper/steppermotor_F401RE/Core/Inc/x_nucleo_ihmxx.h
new file mode 100644
index 0000000..cb1e0bc
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Core/Inc/x_nucleo_ihmxx.h
@@ -0,0 +1,241 @@
+/**
+ ******************************************************************************
+ * @file x_nucleo_ihmxx.h
+ * @author IPC Rennes
+ * @version V1.7.0
+ * @date March 16th, 2018
+ * @brief This file provides common definitions for motor control
+ ******************************************************************************
+ * @attention
+ *
+ * © COPYRIGHT(c) 2018 STMicroelectronics
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * 3. Neither the name of STMicroelectronics nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ ******************************************************************************
+ */
+
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef X_NUCLEO_IHMXX_H
+#define X_NUCLEO_IHMXX_H
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+/* Includes ------------------------------------------------------------------*/
+#include "motor.h"
+
+/** @addtogroup BSP
+ * @{
+ */
+
+/** @addtogroup MOTOR_CONTROL
+ * @{
+ */
+
+/** @defgroup MOTOR_CONTROL_Exported_Types MOTOR CONTROL Exported Types
+ * @{
+ */
+
+
+
+/**
+ * @}
+ */
+
+/** @defgroup MOTOR_CONTROL_Exported_Constants MOTOR CONTROL Exported Constants
+ * @{
+ */
+/// Motor control error tag (used when trying to call undefined functions via motorDrvHandle)
+#define MOTOR_CONTROL_ERROR_TAG (0x0800)
+///Motor control board id for L6474
+#define BSP_MOTOR_CONTROL_BOARD_ID_L6474 (6474)
+ ///Motor control board id for L6470
+ #define BSP_MOTOR_CONTROL_BOARD_ID_L6470 (6470)
+ ///Motor control board id for L6472
+ #define BSP_MOTOR_CONTROL_BOARD_ID_L6472 (6472)
+ ///Motor control board id for L6480
+ #define BSP_MOTOR_CONTROL_BOARD_ID_L6480 (6480)
+ ///Motor control board id for L6482
+ #define BSP_MOTOR_CONTROL_BOARD_ID_L6482 (6482)
+ ///Motor control board id for L6474
+ #define BSP_MOTOR_CONTROL_BOARD_ID_L6474 (6474)
+///Motor control board id for Powerstep01
+#define BSP_MOTOR_CONTROL_BOARD_ID_POWERSTEP01 (0001)
+///Motor control board id for L6206
+#define BSP_MOTOR_CONTROL_BOARD_ID_L6206 (6206)
+///Motor control board id for L6208
+#define BSP_MOTOR_CONTROL_BOARD_ID_L6208 (6208)
+///Motor control board id for STSPIN220
+#define BSP_MOTOR_CONTROL_BOARD_ID_STSPIN220 (220)
+///Motor control board id for STSPIN240
+#define BSP_MOTOR_CONTROL_BOARD_ID_STSPIN240 (240)
+///Motor control board id for STSPIN250
+#define BSP_MOTOR_CONTROL_BOARD_ID_STSPIN250 (250)
+/**
+ * @}
+ */
+
+
+/** @defgroup MOTOR_CONTROL_Exported_Macros MOTOR CONTROL Exported Macros
+ * @{
+ */
+#if defined ( __GNUC__ )
+ #ifndef __weak
+ #define __weak __attribute__((weak))
+ #endif /* __weak */
+#endif /* __GNUC__ */
+/**
+ * @}
+ */
+
+/** @defgroup MOTOR_CONTROL_Weak_Function_Prototypes MOTOR CONTROL Weak Function Prototypes
+ * @{
+ */
+__weak motorDrv_t* L6474_GetMotorHandle(void);
+__weak motorDrv_t* l647x_GetMotorHandle(void);
+__weak motorDrv_t* l648x_GetMotorHandle(void);
+__weak motorDrv_t* Powerstep01_GetMotorHandle(void);
+__weak motorDrv_t* L6206_GetMotorHandle(void);
+__weak motorDrv_t* L6208_GetMotorHandle(void);
+__weak motorDrv_t* Stspin220_GetMotorHandle(void);
+__weak motorDrv_t* Stspin240_250_GetMotorHandle(void);
+/**
+ * @}
+ */
+
+/** @defgroup MOTOR_CONTROL_Exported_Functions MOTOR CONTROL Exported Functions
+ * @{
+ */
+void BSP_MotorControl_AttachErrorHandler(void (*callback)(uint16_t));
+void BSP_MotorControl_AttachFlagInterrupt(void (*callback)(void));
+void BSP_MotorControl_AttachBusyInterrupt(void (*callback)(void));
+void BSP_MotorControl_ErrorHandler(uint16_t error);
+void BSP_MotorControl_Init(uint16_t id, void* initDeviceParameters);
+void BSP_MotorControl_FlagInterruptHandler(void);
+uint16_t BSP_MotorControl_GetAcceleration(uint8_t deviceId);
+uint16_t BSP_MotorControl_GetBoardId(void);
+uint16_t BSP_MotorControl_GetCurrentSpeed(uint8_t deviceId);
+uint16_t BSP_MotorControl_GetDeceleration(uint8_t deviceId);
+motorState_t BSP_MotorControl_GetDeviceState(uint8_t deviceId);
+uint32_t BSP_MotorControl_GetFwVersion(void);
+int32_t BSP_MotorControl_GetMark(uint8_t deviceId);
+uint16_t BSP_MotorControl_GetMaxSpeed(uint8_t deviceId);
+uint16_t BSP_MotorControl_GetMinSpeed(uint8_t deviceId);
+int32_t BSP_MotorControl_GetPosition(uint8_t deviceId);
+void BSP_MotorControl_GoHome(uint8_t deviceId);
+void BSP_MotorControl_GoMark(uint8_t deviceId);
+void BSP_MotorControl_GoTo(uint8_t deviceId, int32_t targetPosition);
+void BSP_MotorControl_HardStop(uint8_t deviceId);
+void BSP_MotorControl_Move(uint8_t deviceId, motorDir_t direction, uint32_t stepCount);
+void BSP_MotorControl_ResetAllDevices(void);
+void BSP_MotorControl_Run(uint8_t deviceId, motorDir_t direction);
+bool BSP_MotorControl_SetAcceleration(uint8_t deviceId,uint16_t newAcc);
+bool BSP_MotorControl_SetDeceleration(uint8_t deviceId, uint16_t newDec);
+void BSP_MotorControl_SetHome(uint8_t deviceId, int32_t homePosition);
+void BSP_MotorControl_SetMark(uint8_t deviceId, int32_t markPosition);
+bool BSP_MotorControl_SetMaxSpeed(uint8_t deviceId, uint16_t newMaxSpeed);
+bool BSP_MotorControl_SetMinSpeed(uint8_t deviceId, uint16_t newMinSpeed);
+bool BSP_MotorControl_SoftStop(uint8_t deviceId);
+void BSP_MotorControl_StepClockHandler(uint8_t deviceId);
+void BSP_MotorControl_WaitWhileActive(uint8_t deviceId);
+void BSP_MotorControl_CmdDisable(uint8_t deviceId);
+void BSP_MotorControl_CmdEnable(uint8_t deviceId);
+uint32_t BSP_MotorControl_CmdGetParam(uint8_t deviceId, uint32_t param);
+uint16_t BSP_MotorControl_CmdGetStatus(uint8_t deviceId);
+void BSP_MotorControl_CmdNop(uint8_t deviceId);
+void BSP_MotorControl_CmdSetParam(uint8_t deviceId, uint32_t param, uint32_t value);
+uint16_t BSP_MotorControl_ReadStatusRegister(uint8_t deviceId);
+void BSP_MotorControl_ReleaseReset(uint8_t deviceId);
+void BSP_MotorControl_Reset(uint8_t deviceId);
+bool BSP_MotorControl_SelectStepMode(uint8_t deviceId, motorStepMode_t stepMode);
+void BSP_MotorControl_SetDirection(uint8_t deviceId, motorDir_t dir);
+void BSP_MotorControl_CmdGoToDir(uint8_t deviceId, motorDir_t dir, int32_t abs_pos);
+uint8_t BSP_MotorControl_CheckBusyHw(void);
+uint8_t BSP_MotorControl_CheckStatusHw(void);
+void BSP_MotorControl_CmdGoUntil(uint8_t deviceId, motorAction_t action, motorDir_t dir, uint32_t speed);
+void BSP_MotorControl_CmdHardHiZ(uint8_t deviceId);
+void BSP_MotorControl_CmdReleaseSw(uint8_t deviceId, motorAction_t action, motorDir_t dir);
+void BSP_MotorControl_CmdResetDevice(uint8_t deviceId);
+void BSP_MotorControl_CmdResetPos(uint8_t deviceId);
+void BSP_MotorControl_CmdRun(uint8_t deviceId, motorDir_t dir, uint32_t speed);
+void BSP_MotorControl_CmdSoftHiZ(uint8_t deviceId);
+void BSP_MotorControl_CmdStepClock(uint8_t deviceId, motorDir_t dir);
+void BSP_MotorControl_FetchAndClearAllStatus(void);
+uint16_t BSP_MotorControl_GetFetchedStatus(uint8_t deviceId);
+uint8_t BSP_MotorControl_GetNbDevices(void);
+bool BSP_MotorControl_IsDeviceBusy(uint8_t deviceId);
+void BSP_MotorControl_SendQueuedCommands(void);
+void BSP_MotorControl_QueueCommands(uint8_t deviceId, uint8_t command, int32_t value);
+void BSP_MotorControl_WaitForAllDevicesNotBusy(void);
+void BSP_MotorControl_BusyInterruptHandler(void);
+void BSP_MotorControl_CmdSoftStop(uint8_t deviceId);
+void BSP_MotorControl_StartStepClock(uint16_t newFreq);
+void BSP_MotorControl_StopStepClock(void);
+void BSP_MotorControl_SetDualFullBridgeConfig(uint8_t config);
+uint32_t BSP_MotorControl_GetBridgeInputPwmFreq(uint8_t bridgeId);
+void BSP_MotorControl_SetBridgeInputPwmFreq(uint8_t bridgeId, uint32_t newFreq);
+void BSP_MotorControl_SetStopMode(uint8_t deviceId, motorStopMode_t stopMode);
+motorStopMode_t BSP_MotorControl_GetStopMode(uint8_t deviceId);
+void BSP_MotorControl_SetDecayMode(uint8_t deviceId, motorDecayMode_t decayMode);
+motorDecayMode_t BSP_MotorControl_GetDecayMode(uint8_t deviceId);
+motorStepMode_t BSP_MotorControl_GetStepMode(uint8_t deviceId);
+motorDir_t BSP_MotorControl_GetDirection(uint8_t deviceId);
+void BSP_MotorControl_ExitDeviceFromReset(uint8_t deviceId);
+uint8_t BSP_MotorControl_GetTorque(uint8_t deviceId, motorTorqueMode_t torqueMode);
+void BSP_MotorControl_SetTorque(uint8_t deviceId, motorTorqueMode_t torqueMode, uint8_t torqueValue);
+void BSP_MotorControl_SetRefFreq(uint8_t refId, uint32_t newFreq);
+uint32_t BSP_MotorControl_GetRefFreq(uint8_t refId);
+void BSP_MotorControl_SetRefDc(uint8_t refId, uint8_t newDc);
+uint8_t BSP_MotorControl_GetRefDc(uint8_t refId);
+bool BSP_MotorControl_SetNbDevices(uint16_t id, uint8_t nbDevices);
+bool BSP_MotorControl_SetAnalogValue(uint8_t deviceId, uint32_t param, float value);
+float BSP_MotorControl_GetAnalogValue(uint8_t deviceId, uint32_t param);
+void BSP_MotorControl_SetTorqueBoostEnable(uint8_t deviceId, bool enable);
+bool BSP_MotorControl_GetTorqueBoostEnable(uint8_t deviceId);
+void BSP_MotorControl_SetTorqueBoostThreshold(uint8_t deviceId, uint16_t speedThreshold);
+uint16_t BSP_MotorControl_GetTorqueBoostThreshold(uint8_t deviceId);
+uint8_t BSP_MotorControl_GetDualFullBridgeConfig(void);
+/**
+ * @}
+ */
+
+/**
+ * @}
+ */
+
+/**
+ * @}
+ */
+
+#ifdef __cplusplus
+ }
+#endif
+
+#endif /* X_NUCLEO_IHMXX_H */
+
+
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/stepper/steppermotor_F401RE/Core/Src/clock_f4.c b/stepper/steppermotor_F401RE/Core/Src/clock_f4.c
new file mode 100644
index 0000000..f733289
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Core/Src/clock_f4.c
@@ -0,0 +1,111 @@
+/**
+ ******************************************************************************
+ * @file Multi/Examples/MotionControl/IHM05A1_ExampleFor1Motor/Src/clock_f4.c
+ * @author IPC Rennes
+ * @version V1.5.0
+ * @date June 1st, 2018
+ * @brief Clock configuration of the IHM05A1 with a NucleoF4xx
+ ******************************************************************************
+ * @attention
+ *
+ * © COPYRIGHT(c) 2016 STMicroelectronics
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * 3. Neither the name of STMicroelectronics nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ ******************************************************************************
+ */
+
+/* Includes ------------------------------------------------------------------*/
+#include "main.h"
+
+/** @defgroup IHM05A1_System_clock_configuration
+ * @{
+ */
+
+/**
+ * @brief System Clock Configuration
+ * The system Clock is configured as follow :
+ * System Clock source = PLL (HSE)
+ * SYSCLK(Hz) = 84000000
+ * HCLK(Hz) = 84000000
+ * AHB Prescaler = 1
+ * APB1 Prescaler = 2
+ * APB2 Prescaler = 1
+ * HSI Frequency(Hz) = 16000000
+ * PLL_M = 16
+ * PLL_N = 336
+ * PLL_P = 4
+ * PLL_Q = 7
+ * VDD(V) = 3.3
+ * Main regulator output voltage = Scale2 mode
+ * Flash Latency(WS) = 2
+ * @param None
+ * @retval None
+ */
+void SystemClock_Config(void)
+{
+ RCC_ClkInitTypeDef RCC_ClkInitStruct;
+ RCC_OscInitTypeDef RCC_OscInitStruct;
+
+ /* Enable Power Control clock */
+ __PWR_CLK_ENABLE();
+
+ /* The voltage scaling allows optimizing the power consumption when the device is
+ clocked below the maximum system frequency, to update the voltage scaling value
+ regarding system frequency refer to product datasheet. */
+ __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE2);
+
+ /* Enable HSE Oscillator and activate PLL with HSI as source */
+ RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
+ RCC_OscInitStruct.HSIState = RCC_HSI_ON;
+ RCC_OscInitStruct.HSICalibrationValue = 16;
+ RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
+ RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;
+ RCC_OscInitStruct.PLL.PLLM = 16;
+ RCC_OscInitStruct.PLL.PLLN = 336;
+ RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV4;
+ RCC_OscInitStruct.PLL.PLLQ = 7;
+ if(HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
+ {
+ MyErrorHandler(0);
+ }
+
+ /* Select PLL as system clock source and configure the HCLK, PCLK1 and PCLK2
+ clocks dividers */
+ RCC_ClkInitStruct.ClockType = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2);
+ RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
+ RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
+ RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;
+ RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
+ if(HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
+ {
+ MyErrorHandler(1);
+ }
+}
+
+/**
+ * @}
+ */
+
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/stepper/steppermotor_F401RE/Core/Src/l6208.c b/stepper/steppermotor_F401RE/Core/Src/l6208.c
new file mode 100644
index 0000000..f41f524
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Core/Src/l6208.c
@@ -0,0 +1,2183 @@
+/**
+ ******************************************************************************
+ * @file l6208.c
+ * @author IPC Rennes
+ * @version V1.5.0
+ * @date June 1st, 2018
+ * @brief L6208 product related routines
+ * @note (C) COPYRIGHT 2016 STMicroelectronics
+ ******************************************************************************
+ * @attention
+ *
+ * © COPYRIGHT(c) 2016 STMicroelectronics
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * 3. Neither the name of STMicroelectronics nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ ******************************************************************************
+ */
+
+#include "l6208.h"
+#include "string.h"
+
+/** @addtogroup BSP
+ * @{
+ */
+
+/** @addtogroup L6208
+ * @{
+ */
+
+/* Private constants ---------------------------------------------------------*/
+
+/** @addtogroup L6208_Private_Constants
+ * @{
+ */
+
+/// The maximum number of devices
+#define MAX_NUMBER_OF_DEVICES (1)
+
+/// Bridge A
+#define BRIDGE_A (0)
+/// Bridge B
+#define BRIDGE_B (1)
+
+/// Bitmaps for system flags
+#define EN_A_set 0x00000001 ///< EN_A pin status
+#define HiZstop 0x00000002 ///< motor has to be left in HiZ after stopping
+#define busy 0x00000004 ///< stepper position command executing flag
+#define running 0x00000008 ///< running motor flag
+#define velocitymode 0x00000010 ///< velocity controlled stepper motor
+#define positionmode 0x00000020 ///< position controlled stepper motor
+#define fullstep 0x00000040 ///< full step mode controlled
+#define halfstep 0x00000080 ///< half step mode controlled
+#define microstep 0x00000100 ///< micro step mode controlled
+#define forward 0x00000200 ///< forward running motor
+#define dir2change 0x00000400 ///< direction has to be changed while the motor is running
+#define fastdecaymode 0x00000800 ///< decay mode is fast
+#define wavestep 0x00001000 ///< wave step mode controlled
+
+/**
+ * @}
+ */
+
+/* Private variables ---------------------------------------------------------*/
+
+/** @addtogroup L6208_Private_Variables
+ * @{
+ */
+
+/// Function pointer to flag interrupt call back
+void (*flagInterruptCallback)(void);
+/// Function pointer to error handler call back
+void (*errorHandlerCallback)(uint16_t);
+static volatile bool isrFlag = FALSE;
+static uint16_t l6208DriverInstance = 0;
+
+/// L6208 Device Paramaters structure
+deviceParams_t devicePrm;
+
+/// Exponent used to scale the sine function for the RefMicroTable
+#define L6208_SINE_WAVEFORM_POWER_OF_TWO_MAX_VALUE (15)
+
+/// RefMicroTable values are 2^L6208_SINE_WAVEFORM_POWER_OF_TWO_MAX_VALUE*|sin(n/16*PI/2)|
+/// where n is the index in the table
+const uint16_t RefMicroTable[L6208_USTEPS_PER_QUARTER_PERIOD*3] =
+{
+ 0,3212,6393,9512,12540,15447,18205,20788,23170,25330,27246,28899,30274,31357,32138,32610,
+ 32768,32610,32138,31357,30274,28899,27246,25330,23170,20788,18205,15447,12540,9512,6393,3212,
+ 0,3212,6393,9512,12540,15447,18205,20788,23170,25330,27246,28899,30274,31357,32138,32610
+};
+
+/// microstepping PWM period and torque scaled waveform samples array
+uint16_t updatedMicroTable[L6208_USTEPS_PER_QUARTER_PERIOD+1];
+/// waveform microstepping PWM period sample arrays for VREFA wave
+uint16_t microTable1[L6208_USTEPS_PER_QUARTER_PERIOD*3+1];
+/// waveform microstepping PWM period sample array for VREFB wave, 90 deg shifted
+uint16_t *pMicroTable2 = &(microTable1[16]);
+
+/**
+ * @}
+ */
+
+/* Private function prototypes -----------------------------------------------*/
+
+/** @addtogroup L6208_Private_functions
+ * @{
+ */
+void L6208_ClearSysFlag(uint32_t mask);
+uint32_t L6208_ComputeNbAccOrDecSteps(uint16_t accOrDecRate);
+uint16_t L6208_ConvertAcceDecelRateValue(uint16_t newAccOrDecRate);
+void L6208_DoAccel(void);
+void L6208_DoDecel(void);
+void L6208_DoRun(void);
+uint8_t L6208_GetMicrostepSample2Scale(void);
+void L6208_Indexmodeinit(void);
+bool L6208_IsSysFlag(uint32_t mask);
+void L6208_ResetSteps(void);
+uint32_t L6208_ScaleWaveformSample(uint8_t sampleIndex);
+void L6208_ScaleWaveformTable(void);
+void L6208_SetDeviceParamsToGivenValues(l6208_Init_t* pInitDevicePrm);
+void L6208_SetDeviceParamsToPredefinedValues(void);
+void L6208_SetMicrostepSample2Scale(uint8_t value);
+void L6208_SetMicrostepSample2Update(uint8_t value);
+void L6208_SetMotionState(motorState_t newMotionState);
+bool L6208_SetSpeed(uint16_t newSpeed, uint32_t volatile *pSpeed);
+void L6208_SetSysFlag(uint32_t mask);
+bool L6208_StartMovement(void);
+void L6208_UpdateScanWaveformTable(void);
+void L6208_UstepWaveformHandling(void);
+bool L6208_VectorCalc(uint8_t newTorque);
+/**
+ * @}
+ */
+
+/** @defgroup L6208_Exported_Variables L6208 Exported Variables
+ * @{
+ */
+
+/// L6208 motor driver functions pointer structure
+motorDrv_t l6208Drv =
+{
+ L6208_Init, //void (*Init)(void*);
+ L6208_ReadId, //uint16_t (*ReadID)(void);
+ L6208_AttachErrorHandler, //void (*AttachErrorHandler)(void (*callback)(uint16_t));
+ L6208_AttachFlagInterrupt, //void (*AttachFlagInterrupt)(void (*callback)(void));
+ 0, //void (*AttachBusyInterrupt)(void (*callback)(void));
+ L6208_FlagInterruptHandler, //void (*FlagInterruptHandler)(void);
+ L6208_GetAcceleration, //uint16_t (*GetAcceleration)(uint8_t);
+ L6208_GetCurrentSpeed, //uint16_t (*GetCurrentSpeed)(uint8_t);
+ L6208_GetDeceleration, //uint16_t (*GetDeceleration)(uint8_t);
+ L6208_GetMotionState, //motorState_t(*GetDeviceState)(uint8_t);
+ L6208_GetFwVersion, //uint32_t (*GetFwVersion)(void);
+ L6208_GetMark, //int32_t (*GetMark)(uint8_t);
+ L6208_GetMaxSpeed, //uint16_t (*GetMaxSpeed)(uint8_t);
+ L6208_GetMinSpeed, //uint16_t (*GetMinSpeed)(uint8_t);
+ L6208_GetPosition, //int32_t (*GetPosition)(uint8_t);
+ L6208_GoHome, //void (*GoHome)(uint8_t);
+ L6208_GoMark, //void (*GoMark)(uint8_t);
+ L6208_GoTo, //void (*GoTo)(uint8_t, int32_t);
+ L6208_HardStop, //void (*HardStop)(uint8_t);
+ L6208_Move, //void (*Move)(uint8_t, motorDir_t, uint32_t );
+ 0, //void (*ResetAllDevices)(void);
+ L6208_Run, //void (*Run)(uint8_t, motorDir_t);
+ L6208_SetAcceleration, //bool(*SetAcceleration)(uint8_t ,uint16_t );
+ L6208_SetDeceleration, //bool(*SetDeceleration)(uint8_t , uint16_t );
+ L6208_SetHome, //void (*SetHome)(uint8_t, int32_t);
+ L6208_SetMark, //void (*SetMark)(uint8_t, int32_t);
+ L6208_SetMaxSpeed, //bool (*SetMaxSpeed)(uint8_t, uint16_t );
+ L6208_SetMinSpeed, //bool (*SetMinSpeed)(uint8_t, uint16_t );
+ L6208_SoftStop, //bool (*SoftStop)(uint8_t);
+ L6208_TickHandler, //void (*StepClockHandler)(uint8_t deviceId);
+ L6208_WaitWhileActive, //void (*WaitWhileActive)(uint8_t);
+ L6208_Disable, //void (*CmdDisable)(uint8_t);
+ L6208_Enable, //void (*CmdEnable)(uint8_t);
+ 0, //uint32_t (*CmdGetParam)(uint8_t, uint32_t);
+ 0, //uint16_t (*CmdGetStatus)(uint8_t);
+ 0, //void (*CmdNop)(uint8_t);
+ 0, //void (*CmdSetParam)(uint8_t, uint32_t, uint32_t);
+ 0, //uint16_t (*ReadStatusRegister)(uint8_t);
+ L6208_ReleaseReset, //void (*ReleaseReset)(uint8_t);
+ L6208_Reset, //void (*Reset)(uint8_t);
+ L6208_SetStepMode, //bool (*SelectStepMode)(uint8_t deviceId, motorStepMode_t);
+ L6208_SetDirection, //void (*SetDirection)(uint8_t, motorDir_t);
+ L6208_GoToDir, //void (*CmdGoToDir)(uint8_t, motorDir_t, int32_t);
+ 0, //uint8_t (*CheckBusyHw)(void);
+ L6208_CheckStatusHw, //uint8_t (*CheckStatusHw)(void);
+ 0, //void (*CmdGoUntil)(uint8_t, motorAction_t, motorDir_t, uint32_t);
+ 0, //void (*CmdHardHiZ)(uint8_t);
+ 0, //void (*CmdReleaseSw)(uint8_t, motorAction_t, motorDir_t);
+ 0, //void (*CmdResetDevice)(uint8_t);
+ 0, //void (*CmdResetPos)(uint8_t);
+ 0, //void (*CmdRun)(uint8_t, motorDir_t, uint32_t);
+ 0, //void (*CmdSoftHiZ)(uint8_t);
+ 0, //void (*CmdStepClock)(uint8_t, motorDir_t);
+ 0, //void (*FetchAndClearAllStatus)(void);
+ 0, //uint16_t (*GetFetchedStatus)(uint8_t);
+ 0, //uint8_t (*GetNbDevices)(void);
+ 0, //bool (*IsDeviceBusy)(uint8_t);
+ 0, //void (*SendQueuedCommands)(void);
+ 0, //void (*QueueCommands)(uint8_t, uint8_t, int32_t);
+ 0, //void (*WaitForAllDevicesNotBusy)(void);
+ L6208_ErrorHandler, //void (*ErrorHandler)(uint16_t);
+ 0, //void (*BusyInterruptHandler)(void);
+ 0, //void (*CmdSoftStop)(uint8_t);
+ 0, //void (*StartStepClock)(uint16_t);
+ 0, //void (*StopStepClock)(void);
+ 0, //void (*SetDualFullBridgeConfig)(uint8_t);
+ L6208_VrefPwmGetFreq, //uint32_t (*GetBridgeInputPwmFreq)(uint8_t);
+ L6208_VrefPwmSetFreq, //void (*SetBridgeInputPwmFreq)(uint8_t, uint32_t);
+ L6208_SetStopMode, //void (*SetStopMode)(uint8_t, motorStopMode_t);
+ L6208_GetStopMode, //motorStopMode_t (*GetStopMode)(uint8_t);
+ L6208_SetDecayMode, //void (*SetDecayMode)(uint8_t, motorDecayMode_t);
+ L6208_GetDecayMode, //motorDecayMode_t (*GetDecayMode)(uint8_t);
+ L6208_GetStepMode, //motorStepMode_t (*GetStepMode)(uint8_t);
+ L6208_GetDirection, //motorDir_t (*GetDirection)(uint8_t);
+ 0, //void (*ExitDeviceFromReset)(uint8_t);
+ L6208_SetTorque, //void (*SetTorque)(uint8_t, motorTorqueMode_t, uint8_t);
+ L6208_GetTorque, //uint8_t (*GetTorque)(uint8_t, motorTorqueMode_t);
+ 0, //void (*SetRefFreq)(uint8_t, uint32_t);
+ 0, //uint32_t (*GetRefFreq)(uint8_t);
+ 0, //void (*SetRefDc)(uint8_t, uint8_t);
+ 0, //uint8_t (*GetRefDc)(uint8_t);
+ L6208_SetNbDevices, //bool (*SetNbDevices)(uint8_t);
+ 0, //bool (*SetAnalogValue)(uint8_t, uint32_t, float);
+ 0 //float (*GetAnalogValue)(uint8_t, uint32_t);
+};
+
+/**
+ * @}
+ */
+
+/** @defgroup L6208_library_Functions L6208 library Functions
+ * @{
+ */
+
+/******************************************************//**
+ * @brief Return motor handle (pointer to the L6208 motor driver structure)
+ * @retval Pointer to the motorDrv_t structure
+ **********************************************************/
+motorDrv_t* L6208_GetMotorHandle(void)
+{
+ return (&l6208Drv);
+}
+
+/******************************************************//**
+ * @brief Start the L6208 library
+ * @param[in] pInit pointer to the initialization data
+ * @retval None
+ **********************************************************/
+void L6208_Init(void* pInit)
+{
+
+ l6208DriverInstance++;
+
+ /* Initialise the GPIOs */
+ L6208_Board_GpioInit();
+
+ if (pInit == NULL)
+ {
+ /* Set context variables to the predefined values from l6208_target_config.h */
+ /* Set GPIO according to these values */
+ L6208_SetDeviceParamsToPredefinedValues();
+ }
+ else
+ {
+ L6208_SetDeviceParamsToGivenValues((l6208_Init_t*) pInit);
+ }
+
+ /* Initialise the PWMs */
+ L6208_Board_VrefPwmInit(BRIDGE_A, devicePrm.vrefPwmFreq);
+ L6208_Board_VrefPwmInit(BRIDGE_B, devicePrm.vrefPwmFreq);
+
+ /* Initialise the tick */
+ L6208_Board_TickInit();
+
+ /* Reset L6208 */
+ L6208_ResetDevice();
+
+ /* Align motor mechanical position to driver position */
+ L6208_Board_VrefPwmStart(BRIDGE_A, devicePrm.vrefPwmFreq);
+ L6208_Board_VrefPwmStart(BRIDGE_B, devicePrm.vrefPwmFreq);
+ L6208_Enable(0);
+ }
+
+/******************************************************//**
+ * @brief Read id
+ * @retval Id of the l6208 Driver Instance
+ **********************************************************/
+uint16_t L6208_ReadId(void)
+ {
+ return(l6208DriverInstance);
+ }
+
+/******************************************************//**
+ * @brief Attaches a user callback to the error Handler.
+ * The call back will be then called each time the library
+ * detects an error
+ * @param[in] callback Name of the callback to attach
+ * to the error Hanlder
+ * @retval None
+ **********************************************************/
+void L6208_AttachErrorHandler(void (*callback)(uint16_t error))
+ {
+ errorHandlerCallback = (void (*)(uint16_t error)) callback;
+}
+
+/******************************************************//**
+ * @brief Attach a user callback to the flag Interrupt
+ * The call back will be then called each time the EN
+ * pin will be pulled down due to the occurrence of
+ * OCD or OVT
+ * @param[in] callback Name of the callback to attach
+ * to the Flag Interrupt
+ * @retval None
+ **********************************************************/
+void L6208_AttachFlagInterrupt(void (*callback)(void))
+{
+ flagInterruptCallback = (void (*)())callback;
+}
+
+/******************************************************//**
+ * @brief Check if L6208 has a fault by reading EN pin position.
+ * @retval One if L6208 has EN pin down, otherwise zero
+ **********************************************************/
+uint8_t L6208_CheckStatusHw(void)
+{
+ if(!L6208_Board_FLAG_PIN_GetState())
+ {
+ return 0x01;
+ }
+ else
+ {
+ return 0x00;
+ }
+}
+
+/******************************************************//**
+ * @brief Disable the power bridges (leave the output bridges HiZ)
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @retval None
+ **********************************************************/
+void L6208_Disable(uint8_t deviceId)
+ {
+ L6208_Board_Disable();
+ L6208_ClearSysFlag(EN_A_set);
+}
+
+/******************************************************//**
+ * @brief Error handler which calls the user callback (if defined)
+ * @param[in] error Number of the error
+ * @retval None
+ **********************************************************/
+void L6208_ErrorHandler(uint16_t error)
+ {
+ if (errorHandlerCallback != 0)
+ {
+ errorHandlerCallback(error);
+ }
+ else
+ {
+ while(1)
+ {
+ /* Infinite loop */
+ }
+ }
+ }
+
+/******************************************************//**
+ * @brief Enable the power bridges
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @retval None
+ **********************************************************/
+void L6208_Enable(uint8_t deviceId)
+ {
+ L6208_Board_Enable();
+ L6208_SetSysFlag(EN_A_set);
+ }
+
+/******************************************************//**
+ * @brief Handler of the flag interrupt which calls the user callback (if defined)
+ * @retval None
+ **********************************************************/
+void L6208_FlagInterruptHandler(void)
+ {
+ if (flagInterruptCallback != 0)
+ {
+ /* Set isr flag */
+ isrFlag = TRUE;
+
+ flagInterruptCallback();
+
+ /* Reset isr flag */
+ isrFlag = FALSE;
+ }
+ }
+
+/******************************************************//**
+ * @brief Get the stepper acceleration rate
+ * in step/s^2 for full, half and wave modes
+ * in microsteps/s^2 for microstep modes
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @retval the stepper acceleration rate in step/s^2 or microstep/s^2
+ * @note
+ **********************************************************/
+uint16_t L6208_GetAcceleration(uint8_t deviceId)
+ {
+ return devicePrm.accelerationSps2;
+ }
+
+/******************************************************//**
+ * @brief Get the current speed
+ * in step/s for full, half and wave modes
+ * in microsteps/s for microstep modes
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @retval return the current speed in step/s or microstep/s
+ * @note
+ **********************************************************/
+uint16_t L6208_GetCurrentSpeed(uint8_t deviceId)
+ {
+ uint64_t tmp64 = (uint64_t) devicePrm.speedSpt * L6208_Board_TickGetFreq();
+
+ devicePrm.speedSps = (uint16_t)(tmp64 >> 23);
+ if (devicePrm.speedSps & 0x1)
+ {
+ devicePrm.speedSps = (devicePrm.speedSps >> 1) + 1;
+ }
+ else
+ {
+ devicePrm.speedSps = devicePrm.speedSps >> 1;
+ }
+ return devicePrm.speedSps;
+ }
+
+/******************************************************//**
+ * @brief Get the motor decay mode
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @retval decay mode
+ **********************************************************/
+motorDecayMode_t L6208_GetDecayMode(uint8_t deviceId)
+ {
+ if (L6208_IsSysFlag(fastdecaymode)) return (FAST_DECAY);
+ else return (SLOW_DECAY);
+ }
+
+/******************************************************//**
+ * @brief Get the stepper deceleration rate
+ * in step/s^2 for full, half and wave modes
+ * in microsteps/s^2 for microstep modes
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @retval the stepper deceleration rate in step/s^2 or microstep/s^2
+ * @note
+ **********************************************************/
+uint16_t L6208_GetDeceleration(uint8_t deviceId)
+ {
+ return devicePrm.decelerationSps2;
+ }
+
+/******************************************************//**
+ * @brief Get the motor current direction
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @retval direction
+ **********************************************************/
+motorDir_t L6208_GetDirection(uint8_t deviceId)
+ {
+ if (L6208_IsSysFlag(forward))
+ {
+ return FORWARD;
+ }
+ else
+ {
+ return BACKWARD;
+ }
+ }
+
+/******************************************************//**
+ * @brief Return the FW version.
+ * @retval FW version
+ **********************************************************/
+uint32_t L6208_GetFwVersion(void)
+ {
+ return L6208_FW_VERSION;
+ }
+
+/******************************************************//**
+ * @brief Get the mark position (32b signed)
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @retval mark position
+ **********************************************************/
+int32_t L6208_GetMark(uint8_t deviceId)
+{
+ return devicePrm.markPos;
+ }
+
+/******************************************************//**
+ * @brief Get the max speed
+ * in step/s for full, half and wave modes
+ * in microsteps/s for microstep modes
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @retval return the max speed in step/s or microstep/s
+ * @note
+ **********************************************************/
+uint16_t L6208_GetMaxSpeed(uint8_t deviceId)
+ {
+ return devicePrm.maxSpeedSps;
+ }
+
+/******************************************************//**
+ * @brief Get the min speed
+ * in step/s for full, half and wave modes
+ * in microsteps/s for microstep modes
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @retval return the min speed in step/s or microstep/s
+ * @note
+ **********************************************************/
+uint16_t L6208_GetMinSpeed(uint8_t deviceId)
+{
+ return devicePrm.minSpeedSps;
+ }
+
+/******************************************************//**
+ * @brief Get the stepper state machine index
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @retval one of the stepper state machine index in the motorState_t enum
+ **********************************************************/
+motorState_t L6208_GetMotionState(uint8_t deviceId)
+ {
+ // gets the new stepper state machine index
+ return devicePrm.motionState;
+}
+
+/******************************************************//**
+ * @brief Get the current position (32b signed)
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @retval current absoulte position
+ **********************************************************/
+int32_t L6208_GetPosition(uint8_t deviceId)
+ {
+ return devicePrm.absolutePos;
+ }
+
+/******************************************************//**
+ * @brief Get the motor step mode
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @retval step mode
+ **********************************************************/
+motorStepMode_t L6208_GetStepMode(uint8_t deviceId)
+ {
+ return devicePrm.stepMode;
+ }
+
+/******************************************************//**
+ * @brief Get the selected stop mode
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @retval the selected stop mode
+ **********************************************************/
+motorStopMode_t L6208_GetStopMode(uint8_t deviceId)
+ {
+ if (L6208_IsSysFlag(HiZstop) == FALSE)
+ {
+ return (HOLD_MODE);
+ }
+ else
+ {
+ return (HIZ_MODE);
+ }
+}
+
+/******************************************************//**
+ * @brief Get the torque of the specified device
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @param[in] torqueMode torque mode
+ * @retval the torqueValue in % (from 0 to 100)
+ * @note
+ **********************************************************/
+uint8_t L6208_GetTorque(uint8_t deviceId, motorTorqueMode_t torqueMode)
+{
+ uint8_t torqueValue = 0;
+ switch(torqueMode)
+ {
+ case ACC_TORQUE:
+ torqueValue = devicePrm.accelTorque;
+ break;
+ case DEC_TORQUE:
+ torqueValue = devicePrm.decelTorque;
+ break;
+ case RUN_TORQUE:
+ torqueValue = devicePrm.runTorque;
+ break;
+ case HOLD_TORQUE:
+ torqueValue = devicePrm.holdTorque;
+ break;
+ case CURRENT_TORQUE:
+ torqueValue = devicePrm.curTorqueScaler;
+ break;
+ default:
+ break;
+ }
+ return torqueValue;
+}
+
+/******************************************************//**
+ * @brief Go to the home position
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @retval None
+ **********************************************************/
+void L6208_GoHome(uint8_t deviceId)
+{
+ L6208_GoTo(deviceId, 0);
+}
+
+/******************************************************//**
+ * @brief Go to the Mark position
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @retval None
+ **********************************************************/
+void L6208_GoMark(uint8_t deviceId)
+{
+ L6208_GoTo(deviceId, devicePrm.markPos);
+}
+
+/******************************************************//**
+ * @brief Move the motor to the absolute position using the shortest path
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @param[in] abs_pos 32 bit signed value position
+ * @retval None
+ * @note The position is at the resolution corresponding to the
+ * selected step mode.
+ * STEP_MODE_FULL or STEP_MODE_WAVE : step
+ * STEP_MODE_HALF : 1/2 step
+ * STEP_MODE_1_4 : 1/4 step
+ * STEP_MODE_1_8 : 1/8 step
+ * STEP_MODE_1_16 : 1/16 step
+ **********************************************************/
+void L6208_GoTo(uint8_t deviceId, int32_t abs_pos)
+{
+ uint32_t steps = 0;
+
+ if(L6208_IsSysFlag(running))
+ {
+ L6208_HardStop(0);
+ }
+
+ if (abs_pos > devicePrm.absolutePos)
+ {
+ steps = abs_pos - devicePrm.absolutePos;
+ if (steps < (L6208_POSITION_RANGE>>1))
+ {
+ L6208_Move(0, FORWARD, steps);
+}
+ else
+ {
+ L6208_Move(0, BACKWARD, (L6208_POSITION_RANGE - steps));
+ }
+}
+ else
+{
+ steps = devicePrm.absolutePos - abs_pos;
+ if (steps < (L6208_POSITION_RANGE>>1))
+ {
+ L6208_Move(0, BACKWARD, steps);
+ }
+ else
+ {
+ L6208_Move(0, FORWARD, (L6208_POSITION_RANGE - steps));
+ }
+}
+}
+
+/******************************************************//**
+ * @brief Move the motor to the absolute position
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @param[in] direction FORWARD or BACKWARD
+ * @param[in] abs_pos 32 bit signed value position
+ * @retval None
+ * @note The position is at the resolution corresponding to the
+ * selected step mode.
+ * STEP_MODE_FULL or STEP_MODE_WAVE : step
+ * STEP_MODE_HALF : 1/2 step
+ * STEP_MODE_1_4 : 1/4 step
+ * STEP_MODE_1_8 : 1/8 step
+ * STEP_MODE_1_16 : 1/16 step
+ **********************************************************/
+void L6208_GoToDir(uint8_t deviceId, motorDir_t direction, int32_t abs_pos)
+{
+ uint32_t steps = 0;
+
+ if(L6208_IsSysFlag(running))
+ {
+ L6208_HardStop(0);
+ }
+
+ if (direction != BACKWARD)
+ {
+ if (abs_pos > devicePrm.absolutePos)
+ {
+ steps = abs_pos - devicePrm.absolutePos;
+ }
+ else
+ {
+ steps = L6208_POSITION_RANGE + (abs_pos - devicePrm.absolutePos);
+ }
+}
+ else
+{
+ if (abs_pos > devicePrm.absolutePos)
+ {
+ steps = L6208_POSITION_RANGE + (devicePrm.absolutePos - abs_pos);
+}
+ else
+{
+ steps = devicePrm.absolutePos - abs_pos;
+ }
+ }
+ L6208_Move(0, direction, steps);
+}
+
+/******************************************************//**
+ * @brief Immediately stop the motor and disables the power bridges
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @retval None
+ **********************************************************/
+void L6208_HardHiZ(uint8_t deviceId)
+{
+ /* Disables power stage */
+ L6208_Disable(0);
+
+ /* Sets inactive state */
+ L6208_SetMotionState(INACTIVE);
+
+ /* Clears the running motor and the position */
+ L6208_ClearSysFlag(running);
+
+ /* Disables PWMs */
+ L6208_Board_VrefPwmStop(BRIDGE_A);
+ L6208_Board_VrefPwmStop(BRIDGE_B);
+
+ /* Disables tick timer */
+ L6208_Board_TickStop();
+}
+
+/******************************************************//**
+ * @brief Immediately stop the motor and keeps holding torque
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @retval None
+ **********************************************************/
+void L6208_HardStop(uint8_t deviceId)
+{
+ /* Sets inactive state */
+ L6208_SetMotionState(INACTIVE);
+
+ /* Clears the running motor and the position */
+ L6208_ClearSysFlag(running);
+ L6208_VectorCalc(devicePrm.holdTorque);
+
+ /* Disables tick timer */
+ L6208_Board_TickStop();
+}
+
+/******************************************************//**
+ * @brief Move the motor by the specified number of steps
+ * in the specified direction
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @param[in] direction FORWARD or BACKWARD
+ * @param[in] stepCount 32 bit unsigned step count
+ * @retval None
+ * @note The step count resolution is corresponding to the
+ * selected step mode.
+ * STEP_MODE_FULL or STEP_MODE_WAVE : step
+ * STEP_MODE_HALF : 1/2 step
+ * STEP_MODE_1_4 : 1/4 step
+ * STEP_MODE_1_8 : 1/8 step
+ * STEP_MODE_1_16 : 1/16 step
+ **********************************************************/
+void L6208_Move(uint8_t deviceId, motorDir_t direction, uint32_t stepCount)
+{
+ if(L6208_IsSysFlag(running))
+ {
+ L6208_HardStop(0);
+ }
+
+ /* clear the velocity driving mode flag */
+ L6208_ClearSysFlag(velocitymode);
+
+ /* Set the indexing driving mode flag */
+ /* and the user command executing flag */
+ L6208_SetSysFlag(positionmode);
+
+ /* store relative number of steps to move */
+ devicePrm.positionTarget = stepCount;
+
+ L6208_SetDirection(0, direction);
+
+ /* Motor activation */
+ L6208_StartMovement();
+}
+
+/******************************************************//**
+ * @brief Release the L6208 reset (Reset pin set to high level)
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @retval None
+ **********************************************************/
+void L6208_ReleaseReset(uint8_t deviceId)
+ {
+ L6208_Board_ReleaseReset();
+}
+
+/******************************************************//**
+ * @brief Reset the L6208 (Reset pin set to low level)
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @retval None
+ **********************************************************/
+void L6208_Reset(uint8_t deviceId)
+ {
+ L6208_Board_Reset();
+ }
+
+/******************************************************//**
+ * @brief Reset the device with current step mode, resets current speed,
+ * positions and microstep variables.
+ * @retval None
+ **********************************************************/
+void L6208_ResetDevice(void)
+ {
+ L6208_SetStepMode(0, L6208_GetStepMode(0));
+}
+
+/******************************************************//**
+ * @brief Run the motor in the specified direction
+ * according to the speed profile defined by the minimum speed,
+ * maximum speed, and acceleration parameters.
+ * The device accelerates from the minimum speed up to the maximum
+ * speed by using the device acceleration.
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @param[in] direction FORWARD or BACKWARD
+ * @retval None
+ **********************************************************/
+void L6208_Run(uint8_t deviceId, motorDir_t direction)
+{
+ if(L6208_IsSysFlag(running))
+ {
+ L6208_HardStop(0);
+ }
+ L6208_SetDirection(0, direction);
+ /* Clear the indexing driving mode flag */
+ L6208_ClearSysFlag(positionmode);
+ /* Set the velocity driving mode flag */
+ L6208_SetSysFlag(velocitymode);
+ /* Motor activation */
+ L6208_StartMovement();
+}
+
+/******************************************************//**
+ * @brief Set the stepper acceleration rate
+ * in step/s^2 and step/tick^2 for full, half and wave modes
+ * in microsteps/s^2 and microsteps/tick^2 for microstep modes
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @param[in] newAcc new acceleration rate in step/s^2 or microstep/s^2
+ * @retval TRUE
+ * @note
+ **********************************************************/
+bool L6208_SetAcceleration(uint8_t deviceId, uint16_t newAcc)
+{
+ uint16_t newAccSpt2 = L6208_ConvertAcceDecelRateValue(newAcc);
+ if (newAccSpt2)
+ {
+ devicePrm.accelerationSps2 = newAcc;
+ devicePrm.accelerationSpt2 = newAccSpt2;
+ }
+ else
+ {
+ L6208_ErrorHandler(L6208_ERROR_SET_ACCELERATION);
+ }
+ return TRUE;
+}
+
+/******************************************************//**
+ * @brief Select the motor decay mode
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @param[in] decayMode (SLOW_DECAY or FAST_DECAY)
+ * @retval None
+ **********************************************************/
+void L6208_SetDecayMode(uint8_t deviceId, motorDecayMode_t decayMode)
+{
+ if ((decayMode & L6208_FAST_DECAY_MODE_MASK) == L6208_FAST_DECAY_MODE_MASK)
+ {
+ L6208_Board_CONTROL_PIN_Set();
+ L6208_SetSysFlag(fastdecaymode);
+ }
+ else
+ {
+ L6208_Board_CONTROL_PIN_Reset();
+ L6208_ClearSysFlag(fastdecaymode);
+ }
+}
+
+/******************************************************//**
+ * @brief Set the stepper deceleration rate
+ * in step/s^2 and step/tick^2 for full, half and wave modes
+ * in microsteps/s^2 and microsteps/tick^2 for microstep modes
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @param[in] newDec new deceleration rate in step/s^2 or microstep/s^2
+ * @retval TRUE
+ * @note
+ **********************************************************/
+bool L6208_SetDeceleration(uint8_t deviceId, uint16_t newDec)
+{
+ uint16_t newDecSpt2 = L6208_ConvertAcceDecelRateValue(newDec);
+ if (newDecSpt2)
+ {
+ devicePrm.decelerationSps2 = newDec;
+ devicePrm.decelerationSpt2 = newDecSpt2;
+ }
+ else
+ {
+ L6208_ErrorHandler(L6208_ERROR_SET_DECELERATION);
+ }
+ return TRUE;
+}
+
+/******************************************************//**
+ * @brief Specify the direction
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @param[in] dir FORWARD or BACKWARD
+ * @note In velocity mode a direction change forces the device to stop and
+ * then run in the new direction. In position mode, if the device is
+ * running, a direction change will generate an error.
+ * @retval None
+ **********************************************************/
+void L6208_SetDirection(uint8_t deviceId, motorDir_t dir)
+{
+ L6208_ClearSysFlag(dir2change);
+ if (dir == FORWARD)
+ {
+ if (!L6208_IsSysFlag(forward))
+ {
+ if (L6208_IsSysFlag(running))
+ {
+ /* motor is running */
+ if (L6208_IsSysFlag(positionmode))
+ {
+ L6208_ErrorHandler(L6208_ERROR_SET_DIRECTION);
+ }
+ else
+ {
+ /* set the rotation direction to change flag */
+ L6208_SetSysFlag(dir2change);
+ }
+ }
+ else /* the motor is stopped, cw direction selected */
+ {
+ L6208_SetSysFlag(forward);
+ L6208_Board_DIR_PIN_Set();
+ }
+ }
+ }
+ else
+ {
+ if (L6208_IsSysFlag(forward))
+ {
+ if (L6208_IsSysFlag(running))
+ {
+ /* motor is running */
+ if (L6208_IsSysFlag(positionmode))
+ {
+ L6208_ErrorHandler(L6208_ERROR_SET_DIRECTION);
+ }
+ else
+ {
+ /* set the rotation direction to change flag */
+ L6208_SetSysFlag(dir2change);
+ }
+ }
+ else /* the motor is stopped, ccw direction selected */
+ {
+ L6208_ClearSysFlag(forward);
+ L6208_Board_DIR_PIN_Reset();
+ }
+ }
+ }
+ if(L6208_IsSysFlag(dir2change))
+ {
+ L6208_VectorCalc(devicePrm.decelTorque);
+ L6208_SetMotionState(DECELERATINGTOSTOP);
+ }
+}
+
+/******************************************************//**
+ * @brief Set home position
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @param[in] homePos new home position
+ * @retval None
+ **********************************************************/
+void L6208_SetHome(uint8_t deviceId, int32_t homePos)
+{
+ if (!L6208_IsSysFlag(running))
+ {
+ devicePrm.absolutePos -= homePos;
+ }
+ else
+ {
+ L6208_ErrorHandler(L6208_ERROR_SET_HOME);
+ }
+}
+
+/******************************************************//**
+ * @brief Set mark position
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @param[in] markPos new mark position
+ * @retval None
+ **********************************************************/
+void L6208_SetMark(uint8_t deviceId, int32_t markPos)
+{
+ devicePrm.markPos = markPos;
+}
+
+/******************************************************//**
+ * @brief Set the user selected maximum speed
+ * in step/s and step/tick for full, half and wave modes
+ * in microsteps/s and microsteps/tick for microstep modes
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @param[in] newSpeed speed value (step/s or microstep/s)
+ * @retval TRUE
+ * @note One microstep is 1/16 step
+ **********************************************************/
+bool L6208_SetMaxSpeed(uint8_t deviceId, uint16_t newSpeed)
+{
+ if (L6208_SetSpeed(newSpeed, &devicePrm.maxSpeedSpt))
+ {
+ devicePrm.maxSpeedSps = newSpeed;
+ }
+ else
+ {
+ L6208_ErrorHandler(L6208_ERROR_SET_MAX_SPEED);
+ }
+ return TRUE;
+}
+
+/******************************************************//**
+ * @brief Set the user selected minimum speed
+ * in step/s and step/tick for full, half and wave modes
+ * in microsteps/s and microsteps/tick for microstep modes
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @param[in] newSpeed speed value (step/s or microstep/s)
+ * @retval TRUE
+ * @note One microstep is 1/16 step
+ **********************************************************/
+bool L6208_SetMinSpeed(uint8_t deviceId, uint16_t newSpeed)
+{
+ if (L6208_SetSpeed(newSpeed, &devicePrm.minSpeedSpt))
+ {
+ devicePrm.minSpeedSps = newSpeed;
+ }
+ else
+ {
+ L6208_ErrorHandler(L6208_ERROR_SET_MIN_SPEED);
+ }
+ return TRUE;
+}
+
+/******************************************************//**
+ * @brief Sets the number of devices to be used
+ * @param[in] nbDevices (from 1 to MAX_NUMBER_OF_DEVICES)
+ * @retval TRUE if successfull, FALSE if failure, attempt to set a number of
+ * devices greater than MAX_NUMBER_OF_DEVICES
+ **********************************************************/
+bool L6208_SetNbDevices(uint8_t nbDevices)
+{
+ if (nbDevices <= MAX_NUMBER_OF_DEVICES)
+ {
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+}
+
+/******************************************************//**
+ * @brief Set the step mode
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @param[in] stepMode
+ * @retval true if the command is successfully executed, else false
+ * @note Every time the step mode is changed, the step state machine is reset
+ **********************************************************/
+bool L6208_SetStepMode(uint8_t deviceId, motorStepMode_t stepMode)
+{
+ devicePrm.stepMode = stepMode;
+ L6208_ClearSysFlag(fullstep | halfstep | microstep | wavestep);
+ switch (stepMode)
+ {
+ case STEP_MODE_HALF:
+ /* Set the Half/Full pin low and Reset and the set the Half/Full pin high*/
+ L6208_Board_HALF_FULL_PIN_Reset();
+ L6208_Board_Reset();
+ L6208_Board_HALF_FULL_PIN_Set();
+ /* Set system flag */
+ L6208_SetSysFlag(halfstep);
+ break;
+ case STEP_MODE_FULL:
+ /* Set the Half/Full pin low and Reset */
+ L6208_Board_HALF_FULL_PIN_Reset();
+ L6208_Board_Reset();
+ /* Set system flag */
+ L6208_SetSysFlag(fullstep);
+ break;
+ case STEP_MODE_WAVE:
+ /* Set the Half/Full pin low and Reset and the set the Half/Full pin high*/
+ L6208_Board_CLOCK_PIN_Reset();
+ L6208_Board_HALF_FULL_PIN_Reset();
+ L6208_Board_Reset();
+ L6208_Board_CLOCK_PIN_Set();
+ L6208_Board_HALF_FULL_PIN_Set();
+ L6208_Board_Delay(2);
+ L6208_Board_CLOCK_PIN_Reset();
+ L6208_Board_Delay(2);
+ L6208_Board_HALF_FULL_PIN_Reset();
+ /* Set system flag */
+ L6208_SetSysFlag(wavestep);
+ break;
+ case STEP_MODE_1_4:
+ /* Set the Half/Full pin low and Reset */
+ L6208_Board_HALF_FULL_PIN_Reset();
+ L6208_Board_Reset();
+ /* Set system flag */
+ L6208_SetSysFlag(microstep);
+ devicePrm.uStepInc = 4;
+ break;
+ case STEP_MODE_1_8:
+ /* Set the Half/Full pin low and Reset */
+ L6208_Board_HALF_FULL_PIN_Reset();
+ L6208_Board_Reset();
+ /* Set system flag */
+ L6208_SetSysFlag(microstep);
+ devicePrm.uStepInc = 2;
+ break;
+ case STEP_MODE_1_16:
+ /* Set the Half/Full pin low and Reset */
+ L6208_Board_HALF_FULL_PIN_Reset();
+ L6208_Board_Reset();
+ /* Set system flag */
+ L6208_SetSysFlag(microstep);
+ devicePrm.uStepInc = 1;
+ break;
+ default:
+ return FALSE;
+ }
+ L6208_Board_Delay(2);
+ L6208_Board_ReleaseReset();
+ L6208_ResetSteps();
+ return TRUE;
+}
+
+/******************************************************//**
+ * @brief Select the mode to stop the motor. When the motor
+ * is stopped, if autoHiZ is TRUE, the power bridges are disabled
+ * if autoHiZ is FALSE, the power bridges are kept enabled.
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @param[in] stopMode HOLD_MODE to let power bridge enabled
+ * @retval None
+ **********************************************************/
+void L6208_SetStopMode(uint8_t deviceId, motorStopMode_t stopMode)
+{
+ if (stopMode == HOLD_MODE)
+ {
+ L6208_ClearSysFlag(HiZstop);
+ }
+ else
+ {
+ L6208_SetSysFlag(HiZstop);
+ }
+}
+
+/******************************************************//**
+ * @brief Set the torque of the specified device
+ * @param[in] deviceId Unused parameter
+ * @param[in] torqueMode Torque mode as specified in enum motorTorqueMode_t
+ * @param[in] torqueValue in % (from 0 to 100)
+ * @retval None
+ * @note
+ **********************************************************/
+void L6208_SetTorque(uint8_t deviceId, motorTorqueMode_t torqueMode, uint8_t torqueValue)
+{
+ if (torqueValue>100) torqueValue = 100;
+ switch(torqueMode)
+ {
+ case ACC_TORQUE:
+ devicePrm.accelTorque = torqueValue;
+ break;
+ case DEC_TORQUE:
+ devicePrm.decelTorque = torqueValue;
+ break;
+ case RUN_TORQUE:
+ devicePrm.runTorque = torqueValue;
+ break;
+ case HOLD_TORQUE:
+ devicePrm.holdTorque = torqueValue;
+ if (devicePrm.motionState != INACTIVE)
+ {
+ break;
+ }
+ L6208_VectorCalc(devicePrm.holdTorque);
+ break;
+ case CURRENT_TORQUE:
+ devicePrm.curTorqueScaler = torqueValue;
+ L6208_SetMicrostepSample2Scale(L6208_USTEPS_PER_QUARTER_PERIOD);
+ default:
+ break; //ignore error
+ }
+}
+
+/******************************************************//**
+ * @brief Stop the motor by using the device deceleration and set deceleration torque
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @retval true if the command is successfully executed, else false
+ * @note .
+ **********************************************************/
+bool L6208_SoftStop(uint8_t deviceId)
+{
+ L6208_VectorCalc(devicePrm.decelTorque);
+ L6208_SetMotionState(DECELERATINGTOSTOP);
+ return TRUE;
+}
+
+/******************************************************//**
+ * @brief Handle the device state machine at each tick timer pulse end.
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @retval None
+ **********************************************************/
+void L6208_TickHandler(uint8_t deviceId)
+{
+ uint32_t locMaxSpeedSpt = devicePrm.maxSpeedSpt;
+ uint32_t locMinSpeedSpt = devicePrm.minSpeedSpt;
+
+ /* Update state, target speed, acceleration and deceleration rates */
+ L6208_Board_CLOCK_PIN_Reset();
+
+ switch(L6208_GetMotionState(0))
+ {
+ /* ============ Velocity control mode states ======================== */
+ case ACCELERATING:
+ /* velocity mode: acceleration phase */
+ /* Increase Speed and update position */
+ L6208_DoAccel();
+ if(locMaxSpeedSpt < devicePrm.speedSpt)
+ {
+ /*Target speed reached */
+ devicePrm.speedSpt = locMaxSpeedSpt;
+ L6208_VectorCalc(devicePrm.runTorque);
+ L6208_SetMotionState(STEADY);
+ }
+ break;
+ case STEADY:
+ /* velocity mode: constant speed phase */
+ /* Update position */
+ L6208_DoRun();
+ if(locMaxSpeedSpt != devicePrm.speedSpt)
+ {
+ /* targeted speed has changed */
+ if(locMaxSpeedSpt< devicePrm.speedSpt)
+ {
+ /* Slow down the motor */
+ L6208_VectorCalc(devicePrm.decelTorque);
+ L6208_SetMotionState(DECELERATING);
+ }
+ else
+ {
+ /* speed up the motor */
+ L6208_VectorCalc(devicePrm.accelTorque);
+ L6208_SetMotionState(ACCELERATING);
+ }
+ }
+ break;
+ case DECELERATING:
+ /* velocity mode: running motor deceleration phase */
+ /* Decrease Speed and update position */
+ L6208_DoDecel();
+ if(locMaxSpeedSpt > devicePrm.speedSpt)
+ {
+ /*Target speed reached but motor has still to be run*/
+ devicePrm.speedSpt = locMaxSpeedSpt;
+ L6208_VectorCalc(devicePrm.runTorque);
+ L6208_SetMotionState(STEADY);
+ }
+ break;
+ case DECELERATINGTOSTOP:
+ /* velocity mode: decelerate to stopped phase */
+ /* Decrease current speed */
+ L6208_DoDecel();
+ if(devicePrm.speedSpt == locMinSpeedSpt)
+ {
+ if (L6208_IsSysFlag(dir2change))
+ {
+ L6208_ClearSysFlag(running);
+ /* Change direction */
+ if (L6208_IsSysFlag(forward))
+ {
+ /* switch to reverse rotation */
+ L6208_SetDirection(0, BACKWARD);
+ }
+ else
+ {
+ /* switch to forward rotation */
+ L6208_SetDirection(0, FORWARD);
+ }
+ L6208_SetSysFlag(running);
+ L6208_SetMotionState(ACCELERATING);
+ /* Set VRefA and VRefB to the selected acceleration torque */
+ L6208_VectorCalc(devicePrm.accelTorque);
+ }
+ else
+ {
+ if (L6208_IsSysFlag(HiZstop))
+ {
+ L6208_HardHiZ(0);
+ }
+ else
+ {
+ L6208_HardStop(0);
+ }
+ }
+ }
+ break;
+
+ /* ============ Position (indexed) control mode states ======================== */
+
+ case INDEX_ACCEL:
+ /* position mode: acceleration state*/
+
+ /* Increase Speed and update position */
+ L6208_DoAccel();
+
+ if(devicePrm.positionTarget1 <= devicePrm.step)
+ {
+ /* End of acceleration phase */
+ L6208_VectorCalc(devicePrm.runTorque);
+ L6208_SetMotionState(INDEX_RUN);
+ }
+ break;
+
+ case INDEX_RUN:
+ /* position mode: constant speed phase */
+
+ /* Update position */
+ L6208_DoRun();
+
+ if(devicePrm.positionTarget2 <= devicePrm.step)
+ {
+ /* reach position targeted for constant speed */
+ L6208_VectorCalc(devicePrm.decelTorque);
+ L6208_SetMotionState(INDEX_DECEL);
+ }
+ break;
+
+ case INDEX_DECEL:
+ /* position mode: deceleration phase */
+
+ /* Decrease Speed and update position */
+ L6208_DoDecel();
+
+ if(devicePrm.positionTarget3 <= devicePrm.step)
+ {
+ /* reach position targeted for deceleration phase */
+ /* the motor terminated its run */
+ /* the torque will be the deceleration one */
+ devicePrm.step = devicePrm.positionTarget3;
+ L6208_SetMotionState(INDEX_DWELL);
+ }
+ break;
+
+ case INDEX_DWELL:
+ /* position mode: dwelling state */
+ if(devicePrm.dwellCounter > 0)
+ {
+ /* decrease the dwelling wait tick counter */
+ devicePrm.dwellCounter--;
+ }
+ if(devicePrm.dwellCounter == 0)
+ {
+ /* dwelling wait time is elapsed */
+ /* so stop the motor */
+ if (L6208_IsSysFlag(HiZstop))
+ {
+ L6208_HardHiZ(0);
+ }
+ else
+ {
+ L6208_HardStop(0);
+ }
+ }
+ break;
+
+ /* ============ stopped state ======================== */
+ case INACTIVE:
+ {
+ if(L6208_IsSysFlag(running))
+ {
+ /* clear the user move command executing */
+ /* and the motor running flags */
+ L6208_ClearSysFlag(running);
+ }
+ break;
+ }
+ default:
+ break;
+ } /* switch(L6208_GetMotionState(0)) */
+ if(L6208_GetMotionState(0) != INACTIVE)
+ {
+ if (L6208_IsSysFlag(microstep))
+ {
+ /* Microstep handling */
+ switch(devicePrm.uStepInc)
+ {
+ default:
+ case 1:
+ /* 1 microstep increment */
+ devicePrm.lsbTicks = (uint8_t)(devicePrm.ticks>>16);
+ break;
+
+ case 2:
+ /* 2 microsteps increment */
+ devicePrm.lsbTicks = (uint8_t)(devicePrm.ticks>>17);
+ break;
+
+ case 4:
+ /* 4 microsteps increment */
+ devicePrm.lsbTicks = (uint8_t)(devicePrm.ticks>>18);
+ break;
+ }
+ devicePrm.lsbTicks &= 0x01;
+ if(devicePrm.lsbOldUSteppingTicks != devicePrm.lsbTicks)
+ {
+ /* waveform sample to update */
+ devicePrm.lsbOldUSteppingTicks = devicePrm.lsbTicks;
+ devicePrm.step++;
+ if (L6208_IsSysFlag(forward))
+ {
+ /* the motor is going forward */
+ devicePrm.absolutePos++;
+ /* Reset the absolute motor position in step/microsteps */
+ /* Get next microstep sample */
+ devicePrm.uStepSample += devicePrm.uStepInc;
+ if(devicePrm.uStepSample > 31)
+ {
+ devicePrm.uStepSample = 0;
+ }
+ }
+ else
+ {
+ /* the motor is going backward */
+ devicePrm.absolutePos--;
+ if(devicePrm.uStepSample >= devicePrm.uStepInc)
+ {
+ /* Get previous microstep sample */
+ devicePrm.uStepSample -= devicePrm.uStepInc;
+ }
+ else
+ {
+ devicePrm.uStepSample = 32 - devicePrm.uStepInc;
+ }
+ }
+ /* set the PWM to update VRefs */
+ L6208_Board_VrefPwmSetDutyCycle(BRIDGE_A, pMicroTable2[devicePrm.uStepSample], FALSE);
+ L6208_Board_VrefPwmSetDutyCycle(BRIDGE_B, microTable1[devicePrm.uStepSample], FALSE);
+ if(devicePrm.uStepsample2update > 0)
+ {
+ /* the waveform samples table has been recalculated
+ so update the waveform scanning table */
+ L6208_UpdateScanWaveformTable();
+ devicePrm.uStepsample2update = 0;
+ }
+ }
+ /* Microstep: use the bit4 toggling as step clock */
+ /* this bit is used because there are 16 microstep samples per quarter period */
+ devicePrm.lsbTicks = (uint8_t)((devicePrm.uStepSample>>4) & 0x01);
+ if(devicePrm.lsbOldTicks != devicePrm.lsbTicks)
+ {
+ /* the selected bit status changed ==> get the next motor step
+ save the current masked motor tick position for step setting scope ... */
+ devicePrm.lsbOldTicks = devicePrm.lsbTicks;
+ L6208_Board_CLOCK_PIN_Set();
+ }
+ }
+ else
+ {
+ /* Full and half step handling code */
+ if(!L6208_IsSysFlag(halfstep))
+ {
+ /* Full step: use the bit 16 toggling as step clock */
+ devicePrm.lsbTicks = (uint8_t)((devicePrm.ticks>>16) & 0x00000001);
+ }
+ else
+ {
+ /* half step: use the bit 15 toggling as step clock */
+ devicePrm.lsbTicks = (uint8_t)((devicePrm.ticks>>15) & 0x00000001);
+ }
+ if(devicePrm.lsbOldTicks != devicePrm.lsbTicks)
+ {
+ /* the selected bit status changed ==> get the next motor step */
+ devicePrm.step++;
+ if(L6208_IsSysFlag(forward))
+ {
+ /* the motor is going forward */
+ devicePrm.absolutePos++;
+ }
+ else
+ {
+ /* the motor is going backward */
+ devicePrm.absolutePos--;
+ }
+ /* save the current masked motor tick position for step setting scope ... */
+ devicePrm.lsbOldTicks = devicePrm.lsbTicks;
+ L6208_Board_CLOCK_PIN_Set();
+ }
+ }
+ }
+ L6208_UstepWaveformHandling();
+}
+
+/******************************************************//**
+ * @brief Get the frequency of VREFA and VREFB PWM
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @retval the frequency of VREFA and VREFB PWM in Hz
+ * @note
+ **********************************************************/
+uint32_t L6208_VrefPwmGetFreq(uint8_t deviceId)
+ {
+ return devicePrm.vrefPwmFreq;
+}
+
+/******************************************************//**
+ * @brief Set the frequency of the VREFA and VREFB PWM
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @param[in] newFreq in Hz
+ * @retval None
+ * @note
+ **********************************************************/
+void L6208_VrefPwmSetFreq(uint8_t deviceId, uint32_t newFreq)
+{
+ if (!L6208_Board_VrefPwmFreqCheck(newFreq)) L6208_ErrorHandler(L6208_ERROR_SET_PWM);
+ devicePrm.vrefPwmFreq = newFreq;
+ /* Re-Initialise the PWMs -----------------------------------------------------*/
+ L6208_Board_VrefPwmInit(BRIDGE_A, devicePrm.vrefPwmFreq);
+ L6208_Board_VrefPwmInit(BRIDGE_B, devicePrm.vrefPwmFreq);
+ /* Recompute the waveform samples according to the new PWM frequency */
+ L6208_ScaleWaveformTable();
+ /* Update the waveform scanning table */
+ L6208_UpdateScanWaveformTable();
+ if (L6208_IsSysFlag(running))
+ {
+ L6208_Board_VrefPwmStart(BRIDGE_A, devicePrm.vrefPwmFreq);
+ L6208_Board_VrefPwmStart(BRIDGE_B, devicePrm.vrefPwmFreq);
+ }
+}
+
+/******************************************************//**
+ * @brief Lock while motor is running
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @retval None
+ **********************************************************/
+void L6208_WaitWhileActive(uint8_t deviceId)
+{
+ /* Wait while motor is running */
+ while (L6208_IsSysFlag(running));
+}
+
+/**
+ * @}
+ */
+
+/* ------------------------------------------------------------------------- */
+/* Private functions ------------------------------------------------------- */
+/* ------------------------------------------------------------------------- */
+/******************************************************//**
+ * @brief Clear the bit/s of flags according to the specified mask
+ * @param[in] mask flag bit mask
+ * @retval None
+ **********************************************************/
+inline void L6208_ClearSysFlag(uint32_t mask)
+ {
+ devicePrm.flags &= ~mask;
+}
+
+/******************************************************//**
+ * @brief Compute the number of steps at the end of the accereration/deceleration phase
+ * P = position in steps at the end of the acceleration/deceleration phase
+ * T = acceleration/deceleration time in seconds
+ * A = acceleration/deceleration rate in steps per second per second (steps/sec^2)
+ * V = peak velocity during acceleration/deceleration phase
+ * V1 = average velocity during acceleration/deceleration phase
+ * T = V/A
+ * V1 = V/2
+ * P = V1*T
+ * P = V^2/2A
+ * @param accOrDecRate acceleration/deceleration rate in steps per second per second (steps/sec^2)
+ * @retval end position or 0xFFFFFFFF on error
+ **********************************************************/
+uint32_t L6208_ComputeNbAccOrDecSteps(uint16_t accOrDecRate)
+ {
+ uint32_t nbAccOrDecSteps;
+ uint32_t locMaxSpeedSps = (uint32_t)devicePrm.maxSpeedSps;
+
+ if (L6208_IsSysFlag(microstep))
+ {
+ switch(devicePrm.uStepInc)
+ {
+ case 1:
+ locMaxSpeedSps = (uint32_t)devicePrm.maxSpeedSps;
+ break;
+ case 2:
+ locMaxSpeedSps = ((uint32_t)devicePrm.maxSpeedSps)>>1;
+ accOrDecRate >>= 1;
+ break;
+ case 4:
+ locMaxSpeedSps = ((uint32_t)devicePrm.maxSpeedSps)>>2;
+ accOrDecRate >>= 2;
+ break;
+ default:
+ break;
+ }
+ }
+ else if (L6208_IsSysFlag(halfstep))
+ {
+ locMaxSpeedSps = ((uint32_t)devicePrm.maxSpeedSps)<<1;
+ accOrDecRate <<= 1;
+ }
+
+ if(accOrDecRate == 0)
+ {
+ /* division by 0 error */
+ return 0xFFFFFFFF;
+ }
+ nbAccOrDecSteps = locMaxSpeedSps * locMaxSpeedSps;
+ nbAccOrDecSteps /= (uint32_t)accOrDecRate;
+ nbAccOrDecSteps /= 2;
+
+ return nbAccOrDecSteps;
+ }
+
+/******************************************************//**
+ * @brief Compute the acceleration/deceleration speed increment value
+ * @param[in] newAccOrDecRate acceleration or deceleration value (steps/s^2) greater or equal than 24
+ * @retval the speed (step/tick) increment value
+ * LSB = 2^-24 step/tick^2 or 2^-20 microstep/tick^2
+ * @note return 0 if the rate is too low or if the tick frequency is too small
+ * or if the device is running in position mode
+ **********************************************************/
+uint16_t L6208_ConvertAcceDecelRateValue(uint16_t newAccOrDecRate)
+{
+ uint64_t tmp64;
+ uint32_t tmp32;
+
+ if (((L6208_IsSysFlag(running))&&(L6208_IsSysFlag(positionmode)))||\
+ (newAccOrDecRate < L6208_MIN_ACC_DEC_RATE))
+ {
+ return 0;
+ }
+ /* Compute (tick frequency)^2 */
+ tmp32 = (uint32_t)L6208_Board_TickGetFreq();
+ tmp32 *= tmp32;
+ /* Return 0 if the (tick frequency)^2 is too small */
+ if ( tmp32 < (uint32_t)newAccOrDecRate )
+ {
+ return 0;
+}
+ /* Compute the decimal number of microstep or step per tick^2 */
+ /* Decimal part is on 32 bits */
+ tmp64 = (uint64_t)newAccOrDecRate << 32;
+ tmp64 /= ((uint64_t)tmp32);
+
+ return (uint16_t)((tmp64 & 0x00000000FFFFFFFF)>>8);
+}
+
+/******************************************************//**
+ * @brief Compute next position and speed according to the acceleration rate
+ * @retval None
+ **********************************************************/
+void L6208_DoAccel(void)
+{
+ /* Increase speed by acceleration rate */
+ uint32_t locAccelerationSpt2 = (uint32_t)devicePrm.accelerationSpt2;
+ uint32_t locMinSpeedSpt = devicePrm.minSpeedSpt;
+ if ((devicePrm.speedSpt + locAccelerationSpt2) < locMinSpeedSpt)
+ {
+ devicePrm.speedSpt = locMinSpeedSpt;
+ }
+ else
+ {
+ devicePrm.speedSpt += locAccelerationSpt2;
+ }
+ /* Compute next position */
+ L6208_DoRun();
+}
+
+/******************************************************//**
+ * @brief Compute next position and speed according to the deceleration rate
+ * @retval None
+ **********************************************************/
+void L6208_DoDecel(void)
+{
+ /* Decrease current speed by deceleration rate */
+ uint32_t locDecelerationSpt2 = (uint32_t)devicePrm.decelerationSpt2;
+ uint32_t locMinSpeedSpt = devicePrm.minSpeedSpt;
+ if((devicePrm.speedSpt - locMinSpeedSpt) > (uint32_t)locDecelerationSpt2)
+ {
+ devicePrm.speedSpt -= (uint32_t)locDecelerationSpt2;
+ }
+ else
+ {
+ /* Set minimum speed */
+ devicePrm.speedSpt = locMinSpeedSpt;
+ }
+ /* Compute next position */
+ L6208_DoRun();
+}
+
+/******************************************************//**
+ * @brief Compute next position by adding current speed
+ * @retval None
+ **********************************************************/
+void L6208_DoRun(void)
+{
+ devicePrm.ticks += (devicePrm.speedSpt >> 8) & 0x0000FFFF;
+}
+
+/******************************************************//**
+ * @brief Get number of samples to rescale
+ * @retval uStepsample2scale the number of micro stepping waveform samples to rescale
+ **********************************************************/
+uint8_t L6208_GetMicrostepSample2Scale(void)
+{
+ return devicePrm.uStepsample2scale;
+}
+
+/******************************************************//**
+ * @brief Initialize the system for position mode motor moving command
+ * P = total move distance in steps
+ * P1 = steps required to accel from 0 to V
+ * P2 = steps required to decel from V to 0
+ * V = peak velocity in steps per second (steps/sec)
+ * V1 = average velocity during accel or decel*
+ * A = required accel rate in steps per second per second (steps/sec2)
+ * D = required decel rate in steps per second per second (steps/sec2)
+ * T1 = acceleration time in seconds
+ * T2 = deceleration time in seconds*
+ *
+ * 1) T1 = V / A
+ * 2) V1 = V / 2
+ * 3) P1 = V1 T1
+ * Substituting 1 and 2 into 3 yields:
+ * 4) P1 = V2 / 2A
+ * In the same manner we have:
+ * 5) P2 = V2 / 2D
+ *
+ * P1 = PD/(D+A)
+ *
+ * \sa Application Note: AN2044
+ * @retval None
+ **********************************************************/
+void L6208_Indexmodeinit(void)
+ {
+ uint32_t tmpVal0;
+ uint32_t tmpVal1;
+ uint32_t locAccelSteps;
+ uint32_t locDecSteps;
+
+ /* calculate the number of steps to get the running speed */
+ locAccelSteps = L6208_ComputeNbAccOrDecSteps(devicePrm.accelerationSps2);
+ /* calculate the number of steps to get the motor stopped */
+ locDecSteps = L6208_ComputeNbAccOrDecSteps(devicePrm.decelerationSps2);
+ if(( locAccelSteps + locDecSteps ) > devicePrm.positionTarget)
+ {
+ /* Triangular move needed */
+ /* accelsteps = P1 = PD/(D+A) */
+ tmpVal0 = devicePrm.positionTarget * devicePrm.decelerationSps2;
+ tmpVal1 = (uint32_t)devicePrm.decelerationSps2;
+ tmpVal1 += (uint32_t)devicePrm.accelerationSps2;
+ locAccelSteps = tmpVal0 / tmpVal1;
+ devicePrm.positionTarget1 = locAccelSteps;
+ devicePrm.positionTarget2 = devicePrm.positionTarget1 + 1;
+ devicePrm.positionTarget3 = devicePrm.positionTarget;
+ if(devicePrm.positionTarget1 == 0)
+ {
+ devicePrm.positionTarget1 = 1;
+ }
+ }
+ else
+ {
+ /* trapezoidal move needed */
+ /* P1 = V^2/2A */
+ /* P2 = P - V^2/2D */
+ devicePrm.positionTarget1 = locAccelSteps;
+ devicePrm.positionTarget2 = devicePrm.positionTarget - locDecSteps;
+ devicePrm.positionTarget3 = devicePrm.positionTarget;
+ }
+ L6208_SetMotionState(INDEX_ACCEL);
+}
+
+/******************************************************//**
+ * @brief Check the bit/s of flags according to the specified mask
+ * @param[in] mask flag bit mask
+ * @retval TRUE if the bit of the mask are set
+ **********************************************************/
+inline bool L6208_IsSysFlag(uint32_t mask)
+ {
+ return (bool)((devicePrm.flags & mask) == mask);
+ }
+
+/******************************************************//**
+ * @brief Stepper driver device step state reset subroutine
+ * @retval None
+ **********************************************************/
+void L6208_ResetSteps(void)
+ {
+ devicePrm.speedSpt = 0; // reset the current speed value
+ devicePrm.ticks = 0; // reset the current ticks counter value
+ devicePrm.step = 0; // reset the current step counter value
+ devicePrm.lsbOldTicks = 0; // reset copy of the previous position (tick)
+ devicePrm.lsbOldUSteppingTicks = 0; // reset copy of the previous position (tick) ( micro stepping )
+ devicePrm.lsbTicks = 0; // reset copy of the current position (tick)
+ devicePrm.absolutePos = 0; // reset the absolute motor position in step/microsteps
+ devicePrm.uStepSample = 0; // reset the microstepping waveform sample index
+}
+
+/******************************************************//**
+ * @brief Compute the specified micro stepping waveform sample with the
+ * current selected torque and pwm period
+ * @param[in] sampleIndex sample Index
+ * @retval scaled sample value
+ **********************************************************/
+uint32_t L6208_ScaleWaveformSample(uint8_t sampleIndex)
+{
+ uint32_t sample;
+
+ sample = (uint32_t)RefMicroTable[sampleIndex];
+ sample *= L6208_Board_VrefPwmGetPeriod();
+ sample >>= (uint32_t)L6208_SINE_WAVEFORM_POWER_OF_TWO_MAX_VALUE;
+
+ sample *= (uint32_t)devicePrm.curTorqueScaler; // torque val (%)
+ sample /= (uint32_t)100;
+
+ return sample;
+ }
+
+/******************************************************//**
+ * @brief Compute the micro stepping waveform sample table samples with the
+ * current selected torque and pwm period
+ * @retval None
+ **********************************************************/
+void L6208_ScaleWaveformTable(void)
+{
+ uint8_t index;
+ for(index=0; index<=L6208_USTEPS_PER_QUARTER_PERIOD; index++)
+ {
+ /* Calculate the scaled sample and save its value into the waveform to update table */
+ updatedMicroTable[index] = (uint16_t)L6208_ScaleWaveformSample(index);
+ }
+}
+
+/******************************************************//**
+ * @brief Set the parameters of the device to values of the structure pointed
+ * by pInitDevicePrm. Set GPIO according to these values.
+ * @param pInitDevicePrm pointer onto the structure containing values to
+ * initialize the device parameters.
+ * @retval None
+ **********************************************************/
+void L6208_SetDeviceParamsToGivenValues(l6208_Init_t* pInitDevicePrm)
+{
+ memset(&devicePrm, 0, sizeof(devicePrm));
+ L6208_SetAcceleration(0, pInitDevicePrm->accelerationSps2);
+ L6208_SetDeceleration(0, pInitDevicePrm->decelerationSps2);
+ L6208_SetMaxSpeed(0, pInitDevicePrm->maxSpeedSps);
+ L6208_SetMinSpeed(0, L6208_MIN_SPEED);
+ devicePrm.accelTorque = pInitDevicePrm->accelTorque;
+ devicePrm.decelTorque = pInitDevicePrm->decelTorque;
+ devicePrm.runTorque = pInitDevicePrm->runTorque;
+ devicePrm.holdTorque = pInitDevicePrm->holdTorque;
+ /* Only once acceleration, deceleration, min speed and max speed have been */
+ /* initialized, set the step mode */
+ devicePrm.stepMode = pInitDevicePrm->stepMode;
+ L6208_SetDecayMode(0, pInitDevicePrm->decayMode);
+ devicePrm.moveDwellTime = pInitDevicePrm->moveDwellTime;
+ if (L6208_CONF_PARAM_AUTO_HIZ_STOP) L6208_SetSysFlag(pInitDevicePrm->autoHiZstop);
+ if (!L6208_Board_VrefPwmFreqCheck(pInitDevicePrm->vrefPwmFreq))
+ L6208_ErrorHandler(L6208_ERROR_SET_PWM);
+ devicePrm.vrefPwmFreq = pInitDevicePrm->vrefPwmFreq;
+ /* Initialize current stepper state machine index */
+ L6208_SetMotionState(INACTIVE);
+}
+
+/******************************************************//**
+ * @brief Set the parameters of the device to predefined values
+ * Set GPIO according to these values
+ * from l6208_target_config.h
+ * @retval None
+ **********************************************************/
+void L6208_SetDeviceParamsToPredefinedValues(void)
+ {
+ memset(&devicePrm, 0, sizeof(devicePrm));
+ L6208_SetAcceleration(0, L6208_CONF_PARAM_ACC_RATE);
+ L6208_SetDeceleration(0, L6208_CONF_PARAM_DEC_RATE);
+ L6208_SetMaxSpeed(0, L6208_CONF_PARAM_RUNNING_SPEED);
+ L6208_SetMinSpeed(0, L6208_MIN_SPEED);
+ devicePrm.accelTorque = L6208_CONF_PARAM_ACC_CURRENT;
+ devicePrm.decelTorque = L6208_CONF_PARAM_DEC_CURRENT;
+ devicePrm.runTorque = L6208_CONF_PARAM_RUNNING_CURRENT;
+ devicePrm.holdTorque = L6208_CONF_PARAM_HOLDING_CURRENT;
+ /* Only once acceleration, deceleration, min speed and max speed have been */
+ /* initialized, set the step mode */
+ devicePrm.stepMode = L6208_CONF_PARAM_STEP_MODE;
+ L6208_SetDecayMode(0, L6208_CONF_PARAM_DECAY_MODE);
+ devicePrm.moveDwellTime = L6208_CONF_PARAM_DWELL_TIME;
+ if (L6208_CONF_PARAM_AUTO_HIZ_STOP) L6208_SetSysFlag(HiZstop);
+ if (!L6208_Board_VrefPwmFreqCheck(L6208_CONF_VREF_PWM_FREQUENCY))
+ L6208_ErrorHandler(L6208_ERROR_SET_PWM);
+ devicePrm.vrefPwmFreq = L6208_CONF_VREF_PWM_FREQUENCY;
+ /* Initialize current stepper state machine index */
+ L6208_SetMotionState(INACTIVE);
+ }
+
+/******************************************************//**
+ * @brief Set the number of micro stepping waveform samples to rescale
+ * @param[in] value number of micro stepping waveform samples
+ * @retval None
+ **********************************************************/
+void L6208_SetMicrostepSample2Scale(uint8_t value)
+{
+ // clamp to maximum number of samples per period/4
+ if(value > L6208_USTEPS_PER_QUARTER_PERIOD)
+ {
+ value = L6208_USTEPS_PER_QUARTER_PERIOD;
+ }
+ devicePrm.uStepsample2scale = value;
+}
+
+/******************************************************//**
+ * @brief Set the number of micro stepping waveform samples to update into scanning
+ * @param[in] value number of micro stepping waveform samples
+ * @retval None
+ **********************************************************/
+void L6208_SetMicrostepSample2Update(uint8_t value)
+{
+ // clamp to maximum number of samples per period/4
+ if(value > L6208_USTEPS_PER_QUARTER_PERIOD)
+ {
+ value = L6208_USTEPS_PER_QUARTER_PERIOD;
+ }
+ devicePrm.uStepsample2update = value;
+ }
+
+/******************************************************//**
+ * @brief Set the stepper state machine index
+ * @param[in] newMotionState
+ * @retval None
+ **********************************************************/
+void L6208_SetMotionState(motorState_t newMotionState)
+{
+ // sets the new stepper state machine index
+ devicePrm.motionState = newMotionState;
+}
+
+/******************************************************//**
+ * @brief Set the user selected speed in step/tick
+ * @param[in] newSpeed speed value (step/s)
+ * @param[in] pSpeed pointer to the selected speed field
+ * @retval return FALSE if the speed is too low or too high
+ * or if the device is running in position mode, else TRUE
+ **********************************************************/
+bool L6208_SetSpeed(uint16_t newSpeed, uint32_t volatile *pSpeed)
+{
+ uint64_t tmp64;
+ uint32_t tmp32;
+
+ if (((L6208_IsSysFlag(running))&&(L6208_IsSysFlag(positionmode)))||\
+ (newSpeed < L6208_MIN_SPEED))
+ {
+ return FALSE;
+ }
+ tmp32 = (uint32_t)L6208_Board_TickGetFreq();
+ if (tmp32 < newSpeed)
+ {
+ return FALSE;
+ }
+ /* Compute the decimal number of microstep or step per tick */
+ /* Decimal part is on 32 bits */
+ tmp64 = (uint64_t)newSpeed << 32;
+ tmp64 /= ((uint64_t)tmp32);
+ /* set the running constant speed value (step/tick) */
+ *pSpeed = (uint32_t)((tmp64 & 0x00000000FFFFFFFF)>>8);
+
+ return TRUE;
+}
+
+/******************************************************//**
+ * @brief Set the bit/s of flags according to the specified mask
+ * @param[in] mask flag bit mask
+ * @retval None
+ **********************************************************/
+inline void L6208_SetSysFlag(uint32_t mask)
+ {
+ devicePrm.flags |= mask;
+}
+
+/******************************************************//**
+ * @brief Stepper motor start command
+ * @retval true on correct command execution
+ **********************************************************/
+bool L6208_StartMovement(void)
+{
+ uint32_t tmp;
+ if (L6208_IsSysFlag(running))
+ {
+ /* Motor is already running ==> quit */
+ return FALSE;
+ }
+ if (!L6208_IsSysFlag(positionmode))
+ {
+ /* Set the VREFA and VREFB to the selected acc. torque */
+ L6208_VectorCalc(devicePrm.accelTorque);
+
+ /* If the speed control mode is selected */
+ /* setup the motor acceleration for velocity mode driving */
+ L6208_SetMotionState(ACCELERATING);
+ }
+ else
+ {
+ /* if position control mode is selected, reset the current step counter */
+ devicePrm.step = 0;
+ if(devicePrm.uStepSample > 31)
+ {
+ /* check the micro stepping waveform sample index */
+ devicePrm.uStepSample = 0;
+ }
+ /* Set the position dwelling wait time */
+ /* compute number of ticks per millisecond */
+ tmp = (uint32_t)L6208_Board_TickGetFreq() / 1000;
+ /* Compute the dwelling time in ticks => dwellCounter (ticks) */
+ devicePrm.dwellCounter = tmp * (uint32_t)devicePrm.moveDwellTime;
+ if (devicePrm.positionTarget == 0)
+ {
+ /* if the position to go is 0 (no move) */
+ /* Set the deceleration torque */
+ L6208_VectorCalc(devicePrm.decelTorque);
+ /* Set the dwelling delay state index */
+ L6208_SetMotionState(INDEX_DWELL);
+ }
+ else
+ {
+ /* Set the VREFA and VREFB to the selected acc. torque */
+ L6208_VectorCalc(devicePrm.accelTorque);
+ /* go to the selected position */
+ L6208_Indexmodeinit();
+ L6208_SetMotionState(INDEX_ACCEL);
+ }
+ }
+ /* Sets the motor running flag */
+ L6208_SetSysFlag(running);
+ /* Start the VREFA and VREFB PWMs */
+ L6208_Board_VrefPwmStart(BRIDGE_A, devicePrm.vrefPwmFreq);
+ L6208_Board_VrefPwmStart(BRIDGE_B, devicePrm.vrefPwmFreq);
+ if (!(L6208_IsSysFlag(EN_A_set)))
+ {
+ /* Enable power bridges */
+ L6208_Enable(0);
+ }
+ /* Start the tick */
+ L6208_Board_TickStart();
+
+ return TRUE;
+}
+
+/******************************************************//**
+ * @brief Update the micro stepping waveform samples table with the
+ * values previously scaled with current selected torque and tick period
+ * @retval None
+ **********************************************************/
+void L6208_UpdateScanWaveformTable(void)
+{
+ uint8_t index;
+
+ for(index=0; index<=L6208_USTEPS_PER_QUARTER_PERIOD; index++)
+ {
+ microTable1[index] = updatedMicroTable[index];
+ microTable1[L6208_USTEPS_PER_QUARTER_PERIOD*2 - index] = microTable1[index];
+ microTable1[index + L6208_USTEPS_PER_QUARTER_PERIOD*2] = updatedMicroTable[index];
+ }
+ /* clear the number of samples to update */
+ L6208_SetMicrostepSample2Update(0);
+}
+
+/******************************************************//**
+ * @brief Check if there are waveform samples to rescale and if so, perform the rescaling
+ * @retval None
+ **********************************************************/
+void L6208_UstepWaveformHandling(void)
+{
+ /* micro stepper waveform samples rescaling ... and updating */
+ if(L6208_GetMicrostepSample2Scale() > 0)
+ {
+ /* Current torque value has been changed, so recalculate the waveform table */
+ L6208_ScaleWaveformTable();
+
+ /* Set the number of samples to update */
+ L6208_SetMicrostepSample2Update(L6208_USTEPS_PER_QUARTER_PERIOD);
+
+ /* Reset the number of samples to rescaled afer rescaling */
+ L6208_SetMicrostepSample2Scale(0);
+ }
+}
+
+/******************************************************//**
+ * @brief Set the current torque value (Vref)
+ * @param[in] newTorque Selected torque value
+ * @retval always TRUE
+ **********************************************************/
+bool L6208_VectorCalc(uint8_t newTorque)
+{
+ /* save current selected torque value */
+ devicePrm.curTorqueScaler = newTorque;
+
+ if(!L6208_IsSysFlag(microstep))
+ {
+ /* full/half step mode or the motor is not running */
+ /* set the PWM duty cycle according to the current torque value (%). */
+ /* The TON value will be calculated inside the TIMx_PWM_duty_setup f(). */
+ L6208_Board_VrefPwmSetDutyCycle(BRIDGE_A, devicePrm.curTorqueScaler, TRUE);
+ L6208_Board_VrefPwmSetDutyCycle(BRIDGE_B, devicePrm.curTorqueScaler, TRUE);
+ }
+ else
+ {
+ /* microstep mode */
+ if(L6208_IsSysFlag(running))
+ {
+ /* set the number of waveform sample to rescale according current selected */
+ /* torque value */
+ L6208_SetMicrostepSample2Scale(L6208_USTEPS_PER_QUARTER_PERIOD);
+ }
+ else
+ {
+ /* micro stepping mode motor stopped */
+ /* Recompute the waveform samples according to the new PWM frequency */
+ L6208_ScaleWaveformTable();
+ /* Update the waveform scanning table */
+ L6208_UpdateScanWaveformTable();
+ /* Set the VREF timer PWM TON to update VREFA and VREFB */
+ L6208_Board_VrefPwmSetDutyCycle(BRIDGE_A, pMicroTable2[devicePrm.uStepSample], FALSE);
+ L6208_Board_VrefPwmSetDutyCycle(BRIDGE_B, microTable1[devicePrm.uStepSample], FALSE);
+ }
+ }
+ return TRUE;
+}
+
+/**
+ * @}
+ */
+
+/**
+ * @}
+ */
+
+/**
+ * @}
+ */
+
+/******************* (C) COPYRIGHT 2016 STMicroelectronics *****END OF FILE****/
diff --git a/stepper/steppermotor_F401RE/Core/Src/main.c b/stepper/steppermotor_F401RE/Core/Src/main.c
new file mode 100644
index 0000000..468e5a3
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Core/Src/main.c
@@ -0,0 +1,539 @@
+/**
+ ******************************************************************************
+ * @file Multi/Examples/MotionControl/IHM05A1_ExampleFor1Motor/Src/main.c
+ * @author IPC Rennes
+ * @version V1.5.0
+ * @date June 1st, 2018
+ * @brief This example shows how to use 1 IHM05A1 expansion board
+ ******************************************************************************
+ * @attention
+ *
+ * © COPYRIGHT(c) 2016 STMicroelectronics
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * 3. Neither the name of STMicroelectronics nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ ******************************************************************************
+ */
+
+/* Includes ------------------------------------------------------------------*/
+#include "main.h"
+
+/** @defgroup IHM05A1_Example_for_1_motor_device
+ * @{
+ */
+
+/* Private typedef -----------------------------------------------------------*/
+/* Private define ------------------------------------------------------------*/
+/* Private macro -------------------------------------------------------------*/
+/* Private variables ---------------------------------------------------------*/
+static volatile uint16_t gLastError;
+
+/* Initialization parameters. */
+l6208_Init_t initDeviceParameters =
+{
+ 1500, //Acceleration rate in step/s^2 or (1/16)th step/s^2 for microstep modes
+ 20, //Acceleration current torque in % (from 0 to 100)
+ 1500, //Deceleration rate in step/s^2 or (1/16)th step/s^2 for microstep modes
+ 20, //Deceleration current torque in % (from 0 to 100)
+ 1500, //Running speed in step/s or (1/16)th step/s for microstep modes
+ 10, //Running current torque in % (from 0 to 100)
+ 5, //Holding current torque in % (from 0 to 100)
+ STEP_MODE_1_16, //Step mode via enum motorStepMode_t
+ FAST_DECAY, //Decay mode via enum motorDecayMode_t
+ 0, //Dwelling time in ms
+ FALSE, //Automatic HIZ STOP
+ 100000 //VREFA and VREFB PWM frequency (Hz)
+};
+
+/* Private function prototypes -----------------------------------------------*/
+static void MyFlagInterruptHandler(void);
+void ButtonHandler(void);
+
+/* Private functions ---------------------------------------------------------*/
+
+/**
+ * @brief Main program
+ * @param None
+ * @retval None
+ */
+int main(void)
+{
+ int32_t pos;
+ uint16_t mySpeed;
+ uint32_t freqPwm;
+
+ /* STM32xx HAL library initialization */
+ 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*/
+ BSP_MotorControl_AttachErrorHandler(MyErrorHandler);
+
+//----- Configure Button for user interaction
+
+ /* Set Systick Interrupt priority highest to ensure no lock by using HAL_Delay */
+ HAL_NVIC_SetPriority(SysTick_IRQn, 0x0, 0x0);
+
+ /* 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
+
+ freqPwm = BSP_MotorControl_GetBridgeInputPwmFreq(0);
+
+//----- Set the PWM frequency used for the VREFA and VREFB voltage generation
+
+ BSP_MotorControl_SetBridgeInputPwmFreq(0, freqPwm>>1);
+
+//----- Move of 16000 microsteps in the FW direction
+
+ /* Move device 16000 microsteps in the FORWARD direction */
+ BSP_MotorControl_Move(0, FORWARD, 16000);
+
+ /* Wait for the motor ends moving */
+ BSP_MotorControl_WaitWhileActive(0);
+
+ /* Wait for 2 seconds */
+ HAL_Delay(2000);
+
+//----- Move of 16000 microsteps in the BW direction
+
+ /* Move device 16000 microsteps in the BACKWARD direction*/
+ BSP_MotorControl_Move(0, BACKWARD, 16000);
+
+ /* Wait for the motor ends moving */
+ BSP_MotorControl_WaitWhileActive(0);
+
+ /* Get current position */
+ pos = BSP_MotorControl_GetPosition(0);
+
+ /* Set the current position to be the Home position */
+ BSP_MotorControl_SetHome(0, pos);
+
+ /* Wait for 2 seconds */
+ HAL_Delay(2000);
+
+//----- Go to position -6400
+
+ /* Request to go to position -6400 */
+ BSP_MotorControl_GoTo(0, -6400);
+
+ /* Wait for the motor ends moving */
+ BSP_MotorControl_WaitWhileActive(0);
+
+ /* Get current position */
+ pos = BSP_MotorControl_GetPosition(0);
+
+ if (pos != -6400)
+ {
+ MyErrorHandler(L6208_ERROR_POSITION);
+ }
+
+ /* Get current position */
+ pos = BSP_MotorControl_GetPosition(0);
+
+ /* Set the current position to be the Mark position */
+ BSP_MotorControl_SetMark(0, pos);
+
+ /* Wait for 2 seconds */
+ HAL_Delay(2000);
+
+//----- Go Home
+
+ /* Request to go to Home */
+ BSP_MotorControl_GoHome(0);
+ BSP_MotorControl_WaitWhileActive(0);
+
+ /* Get current position */
+ pos = BSP_MotorControl_GetPosition(0);
+
+ /* Wait for 2 seconds */
+ HAL_Delay(2000);
+
+//----- Go to position 6400
+
+ /* Request to go to position 6400 */
+ BSP_MotorControl_CmdGoToDir(0, FORWARD, 6400);
+
+ /* Wait for the motor ends moving */
+ BSP_MotorControl_WaitWhileActive(0);
+
+ /* Get current position */
+ pos = BSP_MotorControl_GetPosition(0);
+
+ /* Wait for 2 seconds */
+ HAL_Delay(2000);
+
+//----- Go Mark which was set previously after go to -6400
+
+ /* Request to go to Mark position */
+ BSP_MotorControl_GoMark(0);
+
+ /* Wait for the motor ends moving */
+ BSP_MotorControl_WaitWhileActive(0);
+
+ /* Get current position */
+ pos = BSP_MotorControl_GetPosition(0);
+
+ /* Wait for 2 seconds */
+ HAL_Delay(2000);
+
+//----- Run the motor BACKWARD
+
+ /* Request to run BACKWARD */
+ BSP_MotorControl_Run(0, BACKWARD);
+ HAL_Delay(5000);
+
+ /* Get current speed */
+ mySpeed = BSP_MotorControl_GetCurrentSpeed(0);
+
+//----- Increase the speed while running
+
+ /* Increase speed to 2400 microstep/s */
+ BSP_MotorControl_SetMaxSpeed(0, 2400);
+ HAL_Delay(5000);
+
+ /* Get current speed */
+ mySpeed = BSP_MotorControl_GetCurrentSpeed(0);
+
+//----- Decrease the speed while running
+
+ /* Decrease speed to 1200 microstep/s */
+ BSP_MotorControl_SetMaxSpeed(0, 1200);
+ HAL_Delay(5000);
+
+ /* Get current speed */
+ mySpeed = BSP_MotorControl_GetCurrentSpeed(0);
+
+//----- Increase acceleration while running
+
+ /* Increase acceleration to 2000 microstep/s^2 */
+ BSP_MotorControl_SetAcceleration(0, 2000);
+ HAL_Delay(5000);
+
+ /* Increase speed to 2400 microstep/s */
+ BSP_MotorControl_SetMaxSpeed(0, 2400);
+ HAL_Delay(5000);
+
+ /* Get current speed */
+ mySpeed = BSP_MotorControl_GetCurrentSpeed(0);
+
+ if (mySpeed != 2400)
+ {
+ MyErrorHandler(L6208_ERROR_SPEED);
+ }
+//----- Increase deceleration while running
+
+ /* Increase deceleration to 2000 microstep/s^2 */
+ BSP_MotorControl_SetDeceleration(0, 2000);
+ HAL_Delay(5000);
+
+ /* Decrease speed to 1200 microstep/s */
+ BSP_MotorControl_SetMaxSpeed(0, 1200);
+ HAL_Delay(5000);
+
+ /* Get current speed */
+ mySpeed = BSP_MotorControl_GetCurrentSpeed(0);
+
+//----- Soft stopped required while running
+
+ /* Request soft stop */
+ BSP_MotorControl_SoftStop(0);
+
+ /* Wait for the motor ends moving */
+ BSP_MotorControl_WaitWhileActive(0);
+
+ /* Wait for 2 seconds */
+ HAL_Delay(2000);
+
+//----- Run stopped by hardstop
+
+ /* Request to run in FORWARD direction */
+ BSP_MotorControl_Run(0, FORWARD);
+ HAL_Delay(5000);
+
+ /* Request to immediatly stop */
+ BSP_MotorControl_HardStop(0);
+ BSP_MotorControl_WaitWhileActive(0);
+
+ /* Wait for 2 seconds */
+ HAL_Delay(2000);
+
+//----- GOTO stopped by softstop
+
+ /* Request to go to position 20000 */
+ BSP_MotorControl_GoTo(0, 20000);
+ HAL_Delay(5000);
+
+ /* Request to perform a soft stop */
+ BSP_MotorControl_SoftStop(0);
+ BSP_MotorControl_WaitWhileActive(0);
+
+ /* Wait for 2 seconds */
+ HAL_Delay(2000);
+
+//----- Change step mode to full step mode
+
+ /* Select full step mode (normal mode) */
+ BSP_MotorControl_SelectStepMode(0, STEP_MODE_FULL);
+
+ /* Set speed, acceleration and deceleration to scale with normal mode */
+ /* For normal mode and half step mode, these parameters are in steps/s or /s^2 */
+ /* For microstep modes, these parameters are either in (1/16)step/s or /s^2 */
+ BSP_MotorControl_SetMaxSpeed(0, BSP_MotorControl_GetMaxSpeed(0)>>4);
+ BSP_MotorControl_SetMinSpeed(0, L6208_MIN_SPEED);
+ BSP_MotorControl_SetAcceleration(0, BSP_MotorControl_GetAcceleration(0)>>4);
+ BSP_MotorControl_SetDeceleration(0, BSP_MotorControl_GetDeceleration(0)>>4);
+
+ /* Request to go position 200 (full steps) */
+ BSP_MotorControl_GoTo(0, 200);
+
+ /* Wait for the motor ends moving */
+ BSP_MotorControl_WaitWhileActive(0);
+
+ /* Get current position */
+ pos = BSP_MotorControl_GetPosition(0);
+
+ if (pos != 200)
+ {
+ MyErrorHandler(L6208_ERROR_POSITION);
+ }
+
+ /* Wait for 2 seconds */
+ HAL_Delay(2000);
+
+//----- Change step mode to half step mode
+ /* Select half step mode */
+ BSP_MotorControl_SelectStepMode(0, STEP_MODE_HALF);
+
+ /* Request to go position -400 (half steps) */
+ BSP_MotorControl_GoTo(0, -400);
+
+ /* Wait for the motor ends moving */
+ BSP_MotorControl_WaitWhileActive(0);
+
+ /* Get current position */
+ pos = BSP_MotorControl_GetPosition(0);
+
+ if (pos != -400)
+ {
+ MyErrorHandler(L6208_ERROR_POSITION);
+ }
+
+ /* Wait for 2 seconds */
+ HAL_Delay(2000);
+
+//----- Change step mode 1/4 microstepping mode
+ /* Select 1/4 step mode */
+ BSP_MotorControl_SelectStepMode(0, STEP_MODE_1_4);
+
+ /* Set speed, acceleration and deceleration to scale with microstep mode */
+ /* For normal mode and half step mode, these parameters are in steps/s or /s^2 */
+ /* For microstep modes, these parameters are either in (1/16)step/s or /s^2 */
+ BSP_MotorControl_SetMaxSpeed(0, BSP_MotorControl_GetMaxSpeed(0)<<4);
+ BSP_MotorControl_SetMinSpeed(0, L6208_MIN_SPEED);
+ BSP_MotorControl_SetAcceleration(0, BSP_MotorControl_GetAcceleration(0)<<4);
+ BSP_MotorControl_SetDeceleration(0, BSP_MotorControl_GetDeceleration(0)<<4);
+
+ /* Request to go position 800 (quarter steps) */
+ BSP_MotorControl_GoTo(0, 800);
+
+ /* Wait for the motor ends moving */
+ BSP_MotorControl_WaitWhileActive(0);
+
+ /* Get current position */
+ pos = BSP_MotorControl_GetPosition(0);
+
+ if (pos != 800)
+ {
+ MyErrorHandler(L6208_ERROR_POSITION);
+ }
+
+ /* Wait for 2 seconds */
+ HAL_Delay(2000);
+
+//----- Change step mode 1/8 microstepping mode
+ /* Select 1/8 step mode */
+ BSP_MotorControl_SelectStepMode(0, STEP_MODE_1_8);
+
+ /* Request to go position -1600 (1/8th steps) */
+ BSP_MotorControl_GoTo(0, -1600);
+
+ /* Wait for the motor ends moving */
+ BSP_MotorControl_WaitWhileActive(0);
+
+ /* Get current position */
+ pos = BSP_MotorControl_GetPosition(0);
+
+ if (pos != -1600)
+ {
+ MyErrorHandler(L6208_ERROR_POSITION);
+ }
+
+ /* Wait for 2 seconds */
+ HAL_Delay(2000);
+
+//----- Restore 1/16 microstepping mode
+
+ /* Reset device to 1/16 microstepping mode */
+ BSP_MotorControl_SelectStepMode(0, STEP_MODE_1_16);
+
+ /* Set speed and acceleration at lowest values */
+ BSP_MotorControl_SetMaxSpeed(0, L6208_MIN_SPEED);
+ BSP_MotorControl_SetAcceleration(0, L6208_MIN_ACC_DEC_RATE);
+ BSP_MotorControl_SetDeceleration(0, L6208_MIN_ACC_DEC_RATE);
+
+ /* Move device 49 microsteps (1/16th steps) in the FORWARD direction*/
+ BSP_MotorControl_Move(0, FORWARD, 49);
+
+ /* Wait for the motor ends moving */
+ BSP_MotorControl_WaitWhileActive(0);
+
+ /* Get current position */
+ pos = BSP_MotorControl_GetPosition(0);
+
+ if (pos != 49)
+ {
+ MyErrorHandler(L6208_ERROR_POSITION);
+ }
+
+ /* Set speed and acceleration from powerspin6208_target_config.h */
+ BSP_MotorControl_SetMaxSpeed(0, L6208_CONF_PARAM_RUNNING_SPEED);
+ BSP_MotorControl_SetAcceleration(0, L6208_CONF_PARAM_ACC_RATE);
+ BSP_MotorControl_SetDeceleration(0, L6208_CONF_PARAM_DEC_RATE);
+
+ /* Turn off power bridges when motor is stopped */
+ BSP_MotorControl_SetStopMode(0, HIZ_MODE);
+
+ /* Infinite loop */
+ while(1)
+ {
+ /* Request to run */
+ BSP_MotorControl_Run(0, BSP_MotorControl_GetDirection(0));
+ HAL_Delay(5000);
+
+ /* Request soft stop */
+ BSP_MotorControl_SoftStop(0);
+ HAL_Delay(2000);
+ }
+}
+
+/**
+ * @brief This function is the User handler for the flag interrupt
+ * @param None
+ * @retval None
+ */
+void MyFlagInterruptHandler(void)
+{
+ //When EN pin is forced low by a failure, configure the GPIO as an ouput low
+ BSP_MotorControl_CmdDisable(0);
+}
+
+/**
+ * @brief This function is executed in case of error occurrence.
+ * @param error number of the error
+ * @retval None
+ */
+void MyErrorHandler(uint16_t error)
+{
+ /* Backup error number */
+ gLastError = error;
+
+ /* Infinite loop */
+ while(1)
+ {
+ }
+}
+
+/**
+ * @brief This function is executed in case of button press and it changes the
+ * current direction of the motor
+ * @param None
+ * @retval None
+ */
+void ButtonHandler(void)
+{
+ if (BSP_MotorControl_GetDirection(0) != BACKWARD)
+ {
+ BSP_MotorControl_SetDirection(0, BACKWARD);
+ }
+ else
+ {
+ BSP_MotorControl_SetDirection(0, FORWARD);
+ }
+ /* Let 200 ms before clearing the IT for key debouncing */
+ HAL_Delay(200);
+ __HAL_GPIO_EXTI_CLEAR_IT(KEY_BUTTON_PIN);
+ HAL_NVIC_ClearPendingIRQ(KEY_BUTTON_EXTI_IRQn);
+}
+
+#ifdef USE_FULL_ASSERT
+
+/**
+ * @brief Reports the name of the source file and the source line number
+ * where the assert_param error has occurred.
+ * @param file: pointer to the source file name
+ * @param line: assert_param error line source number
+ * @retval None
+ */
+void assert_failed(uint8_t* file, uint32_t line)
+{
+ /* User can add his own implementation to report the file name and line number,
+ ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
+
+ /* Infinite loop */
+ while (1)
+ {
+ }
+}
+#endif
+
+/**
+ * @}
+ */
+
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/stepper/steppermotor_F401RE/Core/Src/stm32f4xx_hal_msp.c b/stepper/steppermotor_F401RE/Core/Src/stm32f4xx_hal_msp.c
new file mode 100644
index 0000000..288baa3
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Core/Src/stm32f4xx_hal_msp.c
@@ -0,0 +1,177 @@
+/**
+ ******************************************************************************
+ * @file Multi/Examples/MotionControl/IHM05A1_ExampleFor1Motor/Src/stm32f4xx_hal_msp.c
+ * @author IPC Rennes
+ * @version V1.5.0
+ * @date June 1st, 2018
+ * @brief HAL MSP module.
+ ******************************************************************************
+ * @attention
+ *
+ * © COPYRIGHT(c) 2016 STMicroelectronics
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * 3. Neither the name of STMicroelectronics nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ ******************************************************************************
+ */
+
+/* Includes ------------------------------------------------------------------*/
+#include "main.h"
+
+/** @defgroup MSP_module
+ * @brief HAL MSP module.
+ * @{
+ */
+
+/* Private typedef -----------------------------------------------------------*/
+/* Private define ------------------------------------------------------------*/
+/* Private macro -------------------------------------------------------------*/
+/* Private variables ---------------------------------------------------------*/
+
+/* Private function prototypes -----------------------------------------------*/
+extern void BSP_MotorControl_StepClockHandler(uint8_t deviceId);
+extern void BSP_MotorControl_FlagInterruptHandler(void);
+///ButtonHandler defined in main.c
+extern void ButtonHandler(void);
+/* Private functions ---------------------------------------------------------*/
+
+/** @defgroup HAL_MSP_Private_Functions
+ * @{
+ */
+
+/**
+ * @brief PWM MSP Initialization
+ * @param[in] htim_pwm PWM handle pointer
+ * @retval None
+ */
+void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef* htim_pwm)
+{
+ GPIO_InitTypeDef GPIO_InitStruct;
+ if(htim_pwm->Instance == BSP_MOTOR_CONTROL_BOARD_TIMER_TICK)
+ {
+ /* Peripheral clock enable */
+ __BSP_MOTOR_CONTROL_BOARD_TIMER_TICK_CLCK_ENABLE();
+
+ /* Set Interrupt Group Priority of Timer Interrupt*/
+ HAL_NVIC_SetPriority(BSP_MOTOR_CONTROL_BOARD_TIMER_TICK_IRQn, BSP_MOTOR_CONTROL_BOARD_TIMER_TICK_PRIORITY, 0);
+
+ /* Enable the timer global Interrupt */
+ HAL_NVIC_EnableIRQ(BSP_MOTOR_CONTROL_BOARD_TIMER_TICK_IRQn);
+ }
+ if(htim_pwm->Instance == BSP_MOTOR_CONTROL_BOARD_TIMER_VREFA_PWM)
+ {
+ /* Peripheral clock enable */
+ __BSP_MOTOR_CONTROL_BOARD_TIMER_VREFA_PWM_CLCK_ENABLE();
+
+ /* Configure L6208 - VREFA pin -------------------------------------*/
+ GPIO_InitStruct.Pin = BSP_MOTOR_CONTROL_BOARD_VREFA_PIN;
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_MEDIUM;
+ GPIO_InitStruct.Alternate = BSP_MOTOR_CONTROL_BOARD_AFx_TIMx_VREFA_PWM;
+ HAL_GPIO_Init(BSP_MOTOR_CONTROL_BOARD_VREFA_PORT, &GPIO_InitStruct);
+ }
+ if(htim_pwm->Instance == BSP_MOTOR_CONTROL_BOARD_TIMER_VREFB_PWM)
+ {
+ /* Peripheral clock enable */
+ __BSP_MOTOR_CONTROL_BOARD_TIMER_VREFB_PWM_CLCK_ENABLE();
+
+ /* Configure L6208 - VREFB pin -------------------------------------*/
+ GPIO_InitStruct.Pin = BSP_MOTOR_CONTROL_BOARD_VREFB_PIN;
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_MEDIUM;
+ GPIO_InitStruct.Alternate = BSP_MOTOR_CONTROL_BOARD_AFx_TIMx_VREFB_PWM;
+ HAL_GPIO_Init(BSP_MOTOR_CONTROL_BOARD_VREFB_PORT, &GPIO_InitStruct);
+ }
+}
+
+/**
+ * @brief PWM MSP De-Initialization
+ * @param[in] htim_pwm PWM handle pointer
+ * @retval None
+ */
+void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef* htim_pwm)
+{
+ if(htim_pwm->Instance == BSP_MOTOR_CONTROL_BOARD_TIMER_TICK)
+ {
+ /* Peripheral clock disable */
+ __BSP_MOTOR_CONTROL_BOARD_TIMER_TICK_CLCK_DISABLE();
+ }
+ if(htim_pwm->Instance == BSP_MOTOR_CONTROL_BOARD_TIMER_VREFA_PWM)
+ {
+ /* Peripheral clock disable */
+ __BSP_MOTOR_CONTROL_BOARD_TIMER_VREFA_PWM_CLCK_DISABLE();
+ /* GPIO Deconfiguration */
+ HAL_GPIO_DeInit(BSP_MOTOR_CONTROL_BOARD_VREFA_PORT, BSP_MOTOR_CONTROL_BOARD_VREFA_PIN);
+ }
+ if(htim_pwm->Instance == BSP_MOTOR_CONTROL_BOARD_TIMER_VREFB_PWM)
+ {
+ /* Peripheral clock enable */
+ __BSP_MOTOR_CONTROL_BOARD_TIMER_VREFB_PWM_CLCK_DISABLE();
+ /* GPIO Deconfiguration */
+ HAL_GPIO_DeInit(BSP_MOTOR_CONTROL_BOARD_VREFB_PORT, BSP_MOTOR_CONTROL_BOARD_VREFB_PIN);
+ }
+}
+
+/**
+ * @brief PWM Callback
+ * @param[in] htim PWM handle pointer
+ * @retval None
+ */
+void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim)
+{
+ if ((htim->Instance == BSP_MOTOR_CONTROL_BOARD_TIMER_TICK)&& (htim->Channel == BSP_MOTOR_CONTROL_BOARD_HAL_ACT_CHAN_TIMER_TICK))
+ {
+ if (BSP_MotorControl_GetDeviceState(0) != INACTIVE)
+ {
+ BSP_MotorControl_StepClockHandler(0);
+ }
+ }
+}
+
+/**
+ * @brief External Line Callback
+ * @param[in] GPIO_Pin pin number
+ * @retval None
+ */
+void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
+{
+ if (GPIO_Pin == BSP_MOTOR_CONTROL_BOARD_EN_AND_FLAG_PIN)
+ {
+ BSP_MotorControl_FlagInterruptHandler();
+ }
+ if (GPIO_Pin == KEY_BUTTON_PIN)
+ {
+ ButtonHandler();
+ }
+ }
+/**
+ * @}
+ */
+
+/**
+ * @}
+ */
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/stepper/steppermotor_F401RE/Core/Src/stm32f4xx_it.c b/stepper/steppermotor_F401RE/Core/Src/stm32f4xx_it.c
new file mode 100644
index 0000000..c3bf1fc
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Core/Src/stm32f4xx_it.c
@@ -0,0 +1,200 @@
+/**
+ ******************************************************************************
+ * @file Multi/Examples/MotionControl/IHM05A1_ExampleFor1Motor/Src/stm32f4xx_it.c
+ * @author IPC Rennes
+ * @version V1.5.0
+ * @date June 1st, 2018
+ * @brief Main Interrupt Service Routines.
+ * This file provides template for all exceptions handler and
+ * peripherals interrupt service routine.
+ ******************************************************************************
+ * @attention
+ *
+ * © COPYRIGHT(c) 2016 STMicroelectronics
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * 3. Neither the name of STMicroelectronics nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ ******************************************************************************
+ */
+
+/* Includes ------------------------------------------------------------------*/
+#include "stm32f4xx_it.h"
+
+/** @addtogroup Interrupt_Handlers
+ * @{
+ */
+
+/* Private typedef -----------------------------------------------------------*/
+/* Private define ------------------------------------------------------------*/
+/* Private macro -------------------------------------------------------------*/
+/* Private variables ---------------------------------------------------------*/
+
+extern TIM_HandleTypeDef hTimTick;
+
+/* Private function prototypes -----------------------------------------------*/
+/* Private functions ---------------------------------------------------------*/
+
+
+/******************************************************************************/
+/* Cortex-M4 Processor Exceptions Handlers */
+/******************************************************************************/
+
+/**
+ * @brief This function handles NMI exception.
+ * @param None
+ * @retval None
+ */
+void NMI_Handler(void)
+{
+}
+
+/**
+ * @brief This function handles Hard Fault exception.
+ * @param None
+ * @retval None
+ */
+void HardFault_Handler(void)
+{
+ /* Go to infinite loop when Hard Fault exception occurs */
+ while (1)
+ {
+ }
+}
+
+/**
+ * @brief This function handles Memory Manage exception.
+ * @param None
+ * @retval None
+ */
+void MemManage_Handler(void)
+{
+ /* Go to infinite loop when Memory Manage exception occurs */
+ while (1)
+ {
+ }
+}
+
+/**
+ * @brief This function handles Bus Fault exception.
+ * @param None
+ * @retval None
+ */
+void BusFault_Handler(void)
+{
+ /* Go to infinite loop when Bus Fault exception occurs */
+ while (1)
+ {
+ }
+}
+
+/**
+ * @brief This function handles Usage Fault exception.
+ * @param None
+ * @retval None
+ */
+void UsageFault_Handler(void)
+{
+ /* Go to infinite loop when Usage Fault exception occurs */
+ while (1)
+ {
+ }
+}
+
+/**
+ * @brief This function handles SVCall exception.
+ * @param None
+ * @retval None
+ */
+void SVC_Handler(void)
+{
+}
+
+/**
+ * @brief This function handles Debug Monitor exception.
+ * @param None
+ * @retval None
+ */
+void DebugMon_Handler(void)
+{
+}
+
+/**
+ * @brief This function handles PendSVC exception.
+ * @param None
+ * @retval None
+ */
+void PendSV_Handler(void)
+{
+}
+
+/**
+ * @brief This function handles SysTick Handler.
+ * @param None
+ * @retval None
+ */
+void SysTick_Handler(void)
+{
+ HAL_IncTick();
+}
+
+/******************************************************************************/
+/* STM32F4xx Peripherals Interrupt Handlers */
+/* Add here the Interrupt Handler for the used peripheral(s) (PPP), for the */
+/* available peripheral interrupt handler's name please refer to the startup */
+/* file (startup_stm32f4xx.s). */
+/******************************************************************************/
+
+/**
+ * @brief This function handles interrupt for External lines 10 to 15
+ * @param None
+ * @retval None
+ */
+void EXTI15_10_IRQHandler(void)
+{
+ HAL_GPIO_EXTI_IRQHandler(BSP_MOTOR_CONTROL_BOARD_EN_AND_FLAG_PIN);
+ HAL_GPIO_EXTI_IRQHandler(KEY_BUTTON_PIN);
+}
+
+/**
+ * @brief This function handles TIM4 interrupt request.
+ * @param None
+ * @retval None
+ */
+void TIM4_IRQHandler(void)
+{
+ HAL_TIM_IRQHandler(&hTimTick);
+}
+/**
+ * @brief This function handles PPP interrupt request.
+ * @param None
+ * @retval None
+ */
+/*void PPP_IRQHandler(void)
+{
+}*/
+
+/**
+ * @}
+ */
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/stepper/steppermotor_F401RE/Core/Src/stm32f4xx_nucleo.c b/stepper/steppermotor_F401RE/Core/Src/stm32f4xx_nucleo.c
new file mode 100644
index 0000000..2fda2ae
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Core/Src/stm32f4xx_nucleo.c
@@ -0,0 +1,863 @@
+/**
+ ******************************************************************************
+ * @file stm32f4xx_nucleo.c
+ * @author MCD Application Team
+ * @brief This file provides set of firmware functions to manage:
+ * - LEDs and push-button available on STM32F4XX-Nucleo Kit
+ * from STMicroelectronics
+ * - LCD, joystick and microSD available on Adafruit 1.8" TFT LCD
+ * shield (reference ID 802)
+ ******************************************************************************
+ * @attention
+ *
+ * © COPYRIGHT(c) 2017 STMicroelectronics
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * 3. Neither the name of STMicroelectronics nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ ******************************************************************************
+ */
+
+/* Includes ------------------------------------------------------------------*/
+#include "stm32f4xx_nucleo.h"
+
+/** @defgroup BSP BSP
+ * @{
+ */
+
+/** @defgroup STM32F4XX_NUCLEO STM32F4XX NUCLEO
+ * @{
+ */
+
+/** @defgroup STM32F4XX_NUCLEO_LOW_LEVEL STM32F4XX NUCLEO LOW LEVEL
+ * @brief This file provides set of firmware functions to manage Leds and push-button
+ * available on STM32F4xx-Nucleo Kit from STMicroelectronics.
+ * @{
+ */
+
+/** @defgroup STM32F4XX_NUCLEO_LOW_LEVEL_Private_TypesDefinitions STM32F4XX NUCLEO LOW LEVEL Private TypesDefinitions
+ * @{
+ */
+/**
+ * @}
+ */
+
+
+/** @defgroup STM32F4XX_NUCLEO_LOW_LEVEL_Private_Defines STM32F4XX NUCLEO LOW LEVEL Private Defines
+ * @{
+ */
+
+/**
+ * @brief STM32F4xx NUCLEO BSP Driver version number V1.2.7
+ */
+#define __STM32F4xx_NUCLEO_BSP_VERSION_MAIN (0x01) /*!< [31:24] main version */
+#define __STM32F4xx_NUCLEO_BSP_VERSION_SUB1 (0x02) /*!< [23:16] sub1 version */
+#define __STM32F4xx_NUCLEO_BSP_VERSION_SUB2 (0x07) /*!< [15:8] sub2 version */
+#define __STM32F4xx_NUCLEO_BSP_VERSION_RC (0x00) /*!< [7:0] release candidate */
+#define __STM32F4xx_NUCLEO_BSP_VERSION ((__STM32F4xx_NUCLEO_BSP_VERSION_MAIN << 24)\
+ |(__STM32F4xx_NUCLEO_BSP_VERSION_SUB1 << 16)\
+ |(__STM32F4xx_NUCLEO_BSP_VERSION_SUB2 << 8 )\
+ |(__STM32F4xx_NUCLEO_BSP_VERSION_RC))
+
+/**
+ * @brief LINK SD Card
+ */
+#define SD_DUMMY_BYTE 0xFF
+#define SD_NO_RESPONSE_EXPECTED 0x80
+
+/**
+ * @}
+ */
+
+/** @defgroup STM32F4XX_NUCLEO_LOW_LEVEL_Private_Macros STM32F4XX NUCLEO LOW LEVEL Private Macros
+ * @{
+ */
+/**
+ * @}
+ */
+
+/** @defgroup STM32F4XX_NUCLEO_LOW_LEVEL_Private_Variables STM32F4XX NUCLEO LOW LEVEL Private Variables
+ * @{
+ */
+GPIO_TypeDef* GPIO_PORT[LEDn] = {LED2_GPIO_PORT};
+
+const uint16_t GPIO_PIN[LEDn] = {LED2_PIN};
+
+GPIO_TypeDef* BUTTON_PORT[BUTTONn] = {KEY_BUTTON_GPIO_PORT};
+const uint16_t BUTTON_PIN[BUTTONn] = {KEY_BUTTON_PIN};
+const uint8_t BUTTON_IRQn[BUTTONn] = {KEY_BUTTON_EXTI_IRQn};
+
+/**
+ * @brief BUS variables
+ */
+
+#ifdef ADAFRUIT_TFT_JOY_SD_ID802
+#ifdef HAL_SPI_MODULE_ENABLED
+uint32_t SpixTimeout = NUCLEO_SPIx_TIMEOUT_MAX; /*SR) & SPI_FLAG_TXE) != SPI_FLAG_TXE)
+ {
+ }
+ /* Need to invert bytes for LCD*/
+ *((__IO uint8_t*)&hnucleo_Spi.Instance->DR) = *(pData+1);
+
+ while(((hnucleo_Spi.Instance->SR) & SPI_FLAG_TXE) != SPI_FLAG_TXE)
+ {
+ }
+ *((__IO uint8_t*)&hnucleo_Spi.Instance->DR) = *pData;
+ counter--;
+ pData += 2;
+ }
+
+ /* Wait until the bus is ready before releasing Chip select */
+ while(((hnucleo_Spi.Instance->SR) & SPI_FLAG_BSY) != RESET)
+ {
+ }
+ }
+
+ /* Empty the Rx fifo */
+ data = *(&hnucleo_Spi.Instance->DR);
+ UNUSED(data);
+
+ /* Deselect : Chip Select high */
+ LCD_CS_HIGH();
+}
+
+/**
+ * @brief Wait for loop in ms.
+ * @param Delay in ms.
+ */
+void LCD_Delay(uint32_t Delay)
+{
+ HAL_Delay(Delay);
+}
+#endif /* HAL_SPI_MODULE_ENABLED */
+
+/******************************* ADC driver ********************************/
+#ifdef HAL_ADC_MODULE_ENABLED
+
+/**
+ * @brief Initializes ADC MSP.
+ */
+static void ADCx_MspInit(ADC_HandleTypeDef *hadc)
+{
+ GPIO_InitTypeDef GPIO_InitStruct;
+
+ /*** Configure the GPIOs ***/
+ /* Enable GPIO clock */
+ NUCLEO_ADCx_GPIO_CLK_ENABLE();
+
+ /* Configure the selected ADC Channel as analog input */
+ GPIO_InitStruct.Pin = NUCLEO_ADCx_GPIO_PIN ;
+ GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ HAL_GPIO_Init(NUCLEO_ADCx_GPIO_PORT, &GPIO_InitStruct);
+
+ /*** Configure the ADC peripheral ***/
+ /* Enable ADC clock */
+ NUCLEO_ADCx_CLK_ENABLE();
+}
+
+/**
+ * @brief DeInitializes ADC MSP.
+ * @note ADC DeInit does not disable the GPIO clock
+ */
+static void ADCx_MspDeInit(ADC_HandleTypeDef *hadc)
+{
+ GPIO_InitTypeDef GPIO_InitStruct;
+
+ /*** DeInit the ADC peripheral ***/
+ /* Disable ADC clock */
+ NUCLEO_ADCx_CLK_DISABLE();
+
+ /* Configure the selected ADC Channel as analog input */
+ GPIO_InitStruct.Pin = NUCLEO_ADCx_GPIO_PIN ;
+ HAL_GPIO_DeInit(NUCLEO_ADCx_GPIO_PORT, GPIO_InitStruct.Pin);
+
+ /* Disable GPIO clock has to be done by the application*/
+ /* NUCLEO_ADCx_GPIO_CLK_DISABLE(); */
+}
+
+/**
+ * @brief Initializes ADC HAL.
+ */
+static void ADCx_Init(void)
+{
+ if(HAL_ADC_GetState(&hnucleo_Adc) == HAL_ADC_STATE_RESET)
+ {
+ /* ADC Config */
+ hnucleo_Adc.Instance = NUCLEO_ADCx;
+ hnucleo_Adc.Init.ClockPrescaler = ADC_CLOCKPRESCALER_PCLK_DIV4; /* (must not exceed 36MHz) */
+ hnucleo_Adc.Init.Resolution = ADC_RESOLUTION12b;
+ hnucleo_Adc.Init.DataAlign = ADC_DATAALIGN_RIGHT;
+ hnucleo_Adc.Init.ContinuousConvMode = DISABLE;
+ hnucleo_Adc.Init.DiscontinuousConvMode = DISABLE;
+ hnucleo_Adc.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE;
+ hnucleo_Adc.Init.EOCSelection = EOC_SINGLE_CONV;
+ hnucleo_Adc.Init.NbrOfConversion = 1;
+ hnucleo_Adc.Init.DMAContinuousRequests = DISABLE;
+
+ ADCx_MspInit(&hnucleo_Adc);
+ HAL_ADC_Init(&hnucleo_Adc);
+ }
+}
+
+/**
+ * @brief Initializes ADC HAL.
+ */
+static void ADCx_DeInit(void)
+{
+ hnucleo_Adc.Instance = NUCLEO_ADCx;
+
+ HAL_ADC_DeInit(&hnucleo_Adc);
+ ADCx_MspDeInit(&hnucleo_Adc);
+}
+
+/******************************* LINK JOYSTICK ********************************/
+
+/**
+ * @brief Configures joystick available on adafruit 1.8" TFT shield
+ * managed through ADC to detect motion.
+ * @retval Joystickstatus (0=> success, 1=> fail)
+ */
+uint8_t BSP_JOY_Init(void)
+{
+ uint8_t status = HAL_ERROR;
+
+ ADCx_Init();
+
+ /* Select the ADC Channel to be converted */
+ sConfig.Channel = NUCLEO_ADCx_CHANNEL;
+ sConfig.SamplingTime = ADC_SAMPLETIME_3CYCLES;
+ sConfig.Rank = 1;
+ status = HAL_ADC_ConfigChannel(&hnucleo_Adc, &sConfig);
+
+ /* Return Joystick initialization status */
+ return status;
+}
+
+/**
+ * @brief DeInit joystick GPIOs.
+ * @note JOY DeInit does not disable the Mfx, just set the Mfx pins in Off modee.
+ */
+void BSP_JOY_DeInit(void)
+{
+ ADCx_DeInit();
+}
+
+/**
+ * @brief Returns the Joystick key pressed.
+ * @note To know which Joystick key is pressed we need to detect the voltage
+ * level on each key output
+ * - None : 3.3 V / 4095
+ * - SEL : 1.055 V / 1308
+ * - DOWN : 0.71 V / 88
+ * - LEFT : 3.0 V / 3720
+ * - RIGHT : 0.595 V / 737
+ * - UP : 1.65 V / 2046
+ * @retval JOYState_TypeDef: Code of the Joystick key pressed.
+ */
+JOYState_TypeDef BSP_JOY_GetState(void)
+{
+ JOYState_TypeDef state;
+ uint16_t keyconvertedvalue = 0;
+
+ /* Start the conversion process */
+ HAL_ADC_Start(&hnucleo_Adc);
+
+ /* Wait for the end of conversion */
+ HAL_ADC_PollForConversion(&hnucleo_Adc, 10);
+
+ /* Check if the continuous conversion of regular channel is finished */
+ if(((HAL_ADC_GetState(&hnucleo_Adc) & HAL_ADC_STATE_EOC_REG) == HAL_ADC_STATE_EOC_REG))
+ {
+ /* Get the converted value of regular channel */
+ keyconvertedvalue = HAL_ADC_GetValue(&hnucleo_Adc);
+ }
+
+ if((keyconvertedvalue > 2010) && (keyconvertedvalue < 2090))
+ {
+ state = JOY_UP;
+ }
+ else if((keyconvertedvalue > 680) && (keyconvertedvalue < 780))
+ {
+ state = JOY_RIGHT;
+ }
+ else if((keyconvertedvalue > 1270) && (keyconvertedvalue < 1350))
+ {
+ state = JOY_SEL;
+ }
+ else if((keyconvertedvalue > 50) && (keyconvertedvalue < 130))
+ {
+ state = JOY_DOWN;
+ }
+ else if((keyconvertedvalue > 3680) && (keyconvertedvalue < 3760))
+ {
+ state = JOY_LEFT;
+ }
+ else
+ {
+ state = JOY_NONE;
+ }
+
+ /* Loop while a key is pressed */
+ if(state != JOY_NONE)
+ {
+ keyconvertedvalue = HAL_ADC_GetValue(&hnucleo_Adc);
+ }
+ /* Return the code of the Joystick key pressed */
+ return state;
+}
+#endif /* HAL_ADC_MODULE_ENABLED */
+
+#endif /* ADAFRUIT_TFT_JOY_SD_ID802 */
+
+
+/**
+ * @}
+ */
+
+/**
+ * @}
+ */
+
+/**
+ * @}
+ */
+
+/**
+ * @}
+ */
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/stepper/steppermotor_F401RE/Core/Src/syscalls.c b/stepper/steppermotor_F401RE/Core/Src/syscalls.c
new file mode 100644
index 0000000..4ec9584
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Core/Src/syscalls.c
@@ -0,0 +1,159 @@
+/**
+ ******************************************************************************
+ * @file syscalls.c
+ * @author Auto-generated by STM32CubeIDE
+ * @brief STM32CubeIDE Minimal System calls file
+ *
+ * For more information about which c-functions
+ * need which of these lowlevel functions
+ * please consult the Newlib libc-manual
+ ******************************************************************************
+ * @attention
+ *
+ * © Copyright (c) 2020 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software component is licensed by ST under BSD 3-Clause license,
+ * the "License"; You may not use this file except in compliance with the
+ * License. You may obtain a copy of the License at:
+ * opensource.org/licenses/BSD-3-Clause
+ *
+ ******************************************************************************
+ */
+
+/* Includes */
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+
+/* Variables */
+//#undef errno
+extern int errno;
+extern int __io_putchar(int ch) __attribute__((weak));
+extern int __io_getchar(void) __attribute__((weak));
+
+register char * stack_ptr asm("sp");
+
+char *__env[1] = { 0 };
+char **environ = __env;
+
+
+/* Functions */
+void initialise_monitor_handles()
+{
+}
+
+int _getpid(void)
+{
+ return 1;
+}
+
+int _kill(int pid, int sig)
+{
+ errno = EINVAL;
+ return -1;
+}
+
+void _exit (int status)
+{
+ _kill(status, -1);
+ while (1) {} /* Make sure we hang here */
+}
+
+__attribute__((weak)) int _read(int file, char *ptr, int len)
+{
+ int DataIdx;
+
+ for (DataIdx = 0; DataIdx < len; DataIdx++)
+ {
+ *ptr++ = __io_getchar();
+ }
+
+return len;
+}
+
+__attribute__((weak)) int _write(int file, char *ptr, int len)
+{
+ int DataIdx;
+
+ for (DataIdx = 0; DataIdx < len; DataIdx++)
+ {
+ __io_putchar(*ptr++);
+ }
+ return len;
+}
+
+int _close(int file)
+{
+ return -1;
+}
+
+
+int _fstat(int file, struct stat *st)
+{
+ st->st_mode = S_IFCHR;
+ return 0;
+}
+
+int _isatty(int file)
+{
+ return 1;
+}
+
+int _lseek(int file, int ptr, int dir)
+{
+ return 0;
+}
+
+int _open(char *path, int flags, ...)
+{
+ /* Pretend like we always fail */
+ return -1;
+}
+
+int _wait(int *status)
+{
+ errno = ECHILD;
+ return -1;
+}
+
+int _unlink(char *name)
+{
+ errno = ENOENT;
+ return -1;
+}
+
+int _times(struct tms *buf)
+{
+ return -1;
+}
+
+int _stat(char *file, struct stat *st)
+{
+ st->st_mode = S_IFCHR;
+ return 0;
+}
+
+int _link(char *old, char *new)
+{
+ errno = EMLINK;
+ return -1;
+}
+
+int _fork(void)
+{
+ errno = EAGAIN;
+ return -1;
+}
+
+int _execve(char *name, char **argv, char **env)
+{
+ errno = ENOMEM;
+ return -1;
+}
diff --git a/stepper/steppermotor_F401RE/Core/Src/sysmem.c b/stepper/steppermotor_F401RE/Core/Src/sysmem.c
new file mode 100644
index 0000000..d7cc52c
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Core/Src/sysmem.c
@@ -0,0 +1,80 @@
+/**
+ ******************************************************************************
+ * @file sysmem.c
+ * @author Generated by STM32CubeIDE
+ * @brief STM32CubeIDE System Memory calls file
+ *
+ * For more information about which C functions
+ * need which of these lowlevel functions
+ * please consult the newlib libc manual
+ ******************************************************************************
+ * @attention
+ *
+ * © Copyright (c) 2020 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software component is licensed by ST under BSD 3-Clause license,
+ * the "License"; You may not use this file except in compliance with the
+ * License. You may obtain a copy of the License at:
+ * opensource.org/licenses/BSD-3-Clause
+ *
+ ******************************************************************************
+ */
+
+/* Includes */
+#include
+#include
+
+/**
+ * Pointer to the current high watermark of the heap usage
+ */
+static uint8_t *__sbrk_heap_end = NULL;
+
+/**
+ * @brief _sbrk() allocates memory to the newlib heap and is used by malloc
+ * and others from the C library
+ *
+ * @verbatim
+ * ############################################################################
+ * # .data # .bss # newlib heap # MSP stack #
+ * # # # # Reserved by _Min_Stack_Size #
+ * ############################################################################
+ * ^-- RAM start ^-- _end _estack, RAM end --^
+ * @endverbatim
+ *
+ * This implementation starts allocating at the '_end' linker symbol
+ * The '_Min_Stack_Size' linker symbol reserves a memory for the MSP stack
+ * The implementation considers '_estack' linker symbol to be RAM end
+ * NOTE: If the MSP stack, at any point during execution, grows larger than the
+ * reserved size, please increase the '_Min_Stack_Size'.
+ *
+ * @param incr Memory size
+ * @return Pointer to allocated memory
+ */
+void *_sbrk(ptrdiff_t incr)
+{
+ extern uint8_t _end; /* Symbol defined in the linker script */
+ extern uint8_t _estack; /* Symbol defined in the linker script */
+ extern uint32_t _Min_Stack_Size; /* Symbol defined in the linker script */
+ const uint32_t stack_limit = (uint32_t)&_estack - (uint32_t)&_Min_Stack_Size;
+ const uint8_t *max_heap = (uint8_t *)stack_limit;
+ uint8_t *prev_heap_end;
+
+ /* Initialize heap end at first call */
+ if (NULL == __sbrk_heap_end)
+ {
+ __sbrk_heap_end = &_end;
+ }
+
+ /* Protect heap from growing into the reserved MSP stack */
+ if (__sbrk_heap_end + incr > max_heap)
+ {
+ errno = ENOMEM;
+ return (void *)-1;
+ }
+
+ prev_heap_end = __sbrk_heap_end;
+ __sbrk_heap_end += incr;
+
+ return (void *)prev_heap_end;
+}
diff --git a/stepper/steppermotor_F401RE/Core/Src/system_stm32f4xx.c b/stepper/steppermotor_F401RE/Core/Src/system_stm32f4xx.c
new file mode 100644
index 0000000..409e50c
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Core/Src/system_stm32f4xx.c
@@ -0,0 +1,278 @@
+/**
+ ******************************************************************************
+ * @file Multi/Examples/MotionControl/IHM05A1_ExampleFor1Motor/Src/system_stm32f4xx.c
+ * @author IPC Rennes
+ * @version V1.5.0
+ * @date June 1st, 2018
+ * @brief CMSIS Cortex-M4 Device Peripheral Access Layer System Source File.
+ *
+ * This file provides two functions and one global variable to be called from
+ * user application:
+ * - SystemInit(): This function is called at startup just after reset and
+ * before branch to main program. This call is made inside
+ * the "startup_stm32f4xx.s" file.
+ *
+ * - SystemCoreClock variable: Contains the core clock (HCLK), it can be used
+ * by the user application to setup the SysTick
+ * timer or configure other parameters.
+ *
+ * - SystemCoreClockUpdate(): Updates the variable SystemCoreClock and must
+ * be called whenever the core clock is changed
+ * during program execution.
+ *
+ *
+ ******************************************************************************
+ * @attention
+ *
+ * © COPYRIGHT 2017 STMicroelectronics
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * 3. Neither the name of STMicroelectronics nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ ******************************************************************************
+ */
+
+/** @addtogroup CMSIS
+ * @{
+ */
+
+/** @addtogroup stm32f4xx_system
+ * @{
+ */
+
+/** @addtogroup STM32F4xx_System_Private_Includes
+ * @{
+ */
+
+#include "stm32f4xx.h"
+
+#if !defined (HSE_VALUE)
+ #define HSE_VALUE ((uint32_t)8000000) /*!< Default value of the External oscillator in Hz */
+#endif /* HSE_VALUE */
+
+#if !defined (HSI_VALUE)
+ #define HSI_VALUE ((uint32_t)16000000) /*!< Value of the Internal oscillator in Hz*/
+#endif /* HSI_VALUE */
+
+/**
+ * @}
+ */
+
+/** @addtogroup STM32F4xx_System_Private_TypesDefinitions
+ * @{
+ */
+
+/**
+ * @}
+ */
+
+/** @addtogroup STM32F4xx_System_Private_Defines
+ * @{
+ */
+
+/************************* Miscellaneous Configuration ************************/
+
+/*!< Uncomment the following line if you need to relocate your vector Table in
+ Internal SRAM. */
+/* #define VECT_TAB_SRAM */
+#define VECT_TAB_OFFSET 0x00 /*!< Vector Table base offset field.
+ This value must be a multiple of 0x200. */
+/******************************************************************************/
+
+/**
+ * @}
+ */
+
+/** @addtogroup STM32F4xx_System_Private_Macros
+ * @{
+ */
+
+/**
+ * @}
+ */
+
+/** @addtogroup STM32F4xx_System_Private_Variables
+ * @{
+ */
+ /* This variable is updated in three ways:
+ 1) by calling CMSIS function SystemCoreClockUpdate()
+ 2) by calling HAL API function HAL_RCC_GetHCLKFreq()
+ 3) each time HAL_RCC_ClockConfig() is called to configure the system clock frequency
+ Note: If you use this function to configure the system clock; then there
+ is no need to call the 2 first functions listed above, since SystemCoreClock
+ variable is updated automatically.
+ */
+uint32_t SystemCoreClock = 16000000;
+const uint8_t AHBPrescTable[16] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 6, 7, 8, 9};
+const uint8_t APBPrescTable[8] = {0, 0, 0, 0, 1, 2, 3, 4};
+/**
+ * @}
+ */
+
+/** @addtogroup STM32F4xx_System_Private_FunctionPrototypes
+ * @{
+ */
+
+/**
+ * @}
+ */
+
+/** @addtogroup STM32F4xx_System_Private_Functions
+ * @{
+ */
+
+/**
+ * @brief Setup the microcontroller system
+ * Initialize the FPU setting, vector table location and External memory
+ * configuration.
+ * @param None
+ * @retval None
+ */
+void SystemInit(void)
+{
+ /* FPU settings ------------------------------------------------------------*/
+ #if (__FPU_PRESENT == 1) && (__FPU_USED == 1)
+ SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2)); /* set CP10 and CP11 Full Access */
+ #endif
+ /* Reset the RCC clock configuration to the default reset state ------------*/
+ /* Set HSION bit */
+ RCC->CR |= (uint32_t)0x00000001;
+
+ /* Reset CFGR register */
+ RCC->CFGR = 0x00000000;
+
+ /* Reset HSEON, CSSON and PLLON bits */
+ RCC->CR &= (uint32_t)0xFEF6FFFF;
+
+ /* Reset PLLCFGR register */
+ RCC->PLLCFGR = 0x24003010;
+
+ /* Reset HSEBYP bit */
+ RCC->CR &= (uint32_t)0xFFFBFFFF;
+
+ /* Disable all interrupts */
+ RCC->CIR = 0x00000000;
+
+ /* Configure the Vector Table location add offset address ------------------*/
+#ifdef VECT_TAB_SRAM
+ SCB->VTOR = SRAM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM */
+#else
+ SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH */
+#endif
+}
+
+/**
+ * @brief Update SystemCoreClock variable according to Clock Register Values.
+ * The SystemCoreClock variable contains the core clock (HCLK), it can
+ * be used by the user application to setup the SysTick timer or configure
+ * other parameters.
+ *
+ * @note Each time the core clock (HCLK) changes, this function must be called
+ * to update SystemCoreClock variable value. Otherwise, any configuration
+ * based on this variable will be incorrect.
+ *
+ * @note - The system frequency computed by this function is not the real
+ * frequency in the chip. It is calculated based on the predefined
+ * constant and the selected clock source:
+ *
+ * - If SYSCLK source is HSI, SystemCoreClock will contain the HSI_VALUE(*)
+ *
+ * - If SYSCLK source is HSE, SystemCoreClock will contain the HSE_VALUE(**)
+ *
+ * - If SYSCLK source is PLL, SystemCoreClock will contain the HSE_VALUE(**)
+ * or HSI_VALUE(*) multiplied/divided by the PLL factors.
+ *
+ * (*) HSI_VALUE is a constant defined in stm32f4xx_hal_conf.h file (default value
+ * 16 MHz) but the real value may vary depending on the variations
+ * in voltage and temperature.
+ *
+ * (**) HSE_VALUE is a constant defined in stm32f4xx_hal_conf.h file (its value
+ * depends on the application requirements), user has to ensure that HSE_VALUE
+ * is same as the real frequency of the crystal used. Otherwise, this function
+ * may have wrong result.
+ *
+ * - The result of this function could be not correct when using fractional
+ * value for HSE crystal.
+ *
+ * @param None
+ * @retval None
+ */
+void SystemCoreClockUpdate(void)
+{
+ uint32_t tmp = 0, pllvco = 0, pllp = 2, pllsource = 0, pllm = 2;
+
+ /* Get SYSCLK source -------------------------------------------------------*/
+ tmp = RCC->CFGR & RCC_CFGR_SWS;
+
+ switch (tmp)
+ {
+ case 0x00: /* HSI used as system clock source */
+ SystemCoreClock = HSI_VALUE;
+ break;
+ case 0x04: /* HSE used as system clock source */
+ SystemCoreClock = HSE_VALUE;
+ break;
+ case 0x08: /* PLL used as system clock source */
+
+ /* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N
+ SYSCLK = PLL_VCO / PLL_P
+ */
+ pllsource = (RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC) >> 22;
+ pllm = RCC->PLLCFGR & RCC_PLLCFGR_PLLM;
+
+ if (pllsource != 0)
+ {
+ /* HSE used as PLL clock source */
+ pllvco = (HSE_VALUE / pllm) * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> 6);
+ }
+ else
+ {
+ /* HSI used as PLL clock source */
+ pllvco = (HSI_VALUE / pllm) * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> 6);
+ }
+
+ pllp = (((RCC->PLLCFGR & RCC_PLLCFGR_PLLP) >>16) + 1 ) *2;
+ SystemCoreClock = pllvco/pllp;
+ break;
+ default:
+ SystemCoreClock = HSI_VALUE;
+ break;
+ }
+ /* Compute HCLK frequency --------------------------------------------------*/
+ /* Get HCLK prescaler */
+ tmp = AHBPrescTable[((RCC->CFGR & RCC_CFGR_HPRE) >> 4)];
+ /* HCLK frequency */
+ SystemCoreClock >>= tmp;
+}
+
+/**
+ * @}
+ */
+
+/**
+ * @}
+ */
+
+/**
+ * @}
+ */
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/stepper/steppermotor_F401RE/Core/Src/x_nucleo_ihm05a1_stm32f4xx.c b/stepper/steppermotor_F401RE/Core/Src/x_nucleo_ihm05a1_stm32f4xx.c
new file mode 100644
index 0000000..178cade
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Core/Src/x_nucleo_ihm05a1_stm32f4xx.c
@@ -0,0 +1,631 @@
+/**
+ ******************************************************************************
+ * @file x_nucleo_ihm05a1_stm32f4xx.c
+ * @author IPC Rennes
+ * @version V1.5.0
+ * @date June 1st, 2018
+ * @brief BSP driver for x-nucleo-ihm05a1 Nucleo extension board
+ * (based on L6208)
+ ******************************************************************************
+* @attention
+ *
+ * © COPYRIGHT(c) 2018 STMicroelectronics
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * 3. Neither the name of STMicroelectronics nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ ******************************************************************************
+ */
+
+/* Includes ------------------------------------------------------------------*/
+#include "x_nucleo_ihm05a1_stm32f4xx.h"
+#include "motor.h"
+
+/** @addtogroup BSP
+ * @{
+ */
+
+/** @defgroup X_NUCLEO_IHM05A1_STM32F4XX NUCLEO IHM05A1 STM32F4XX
+ * @{
+ */
+
+/* Private constants ---------------------------------------------------------*/
+
+/** @defgroup IHM05A1_Private_Constants IHM05A1 Private Constants
+ * @{
+ */
+/// Tick frequency (Hz)
+#define TIMER_TICK_FREQUENCY (10000)
+
+/// Tick Timer Prescaler
+#define TIMER_TICK_PRESCALER (64)
+
+/// MCU wait time after power bridges are enabled
+#define BRIDGE_TURN_ON_DELAY (10)
+
+/**
+ * @}
+ */
+
+/* Private variables ---------------------------------------------------------*/
+
+/** @defgroup IHM05A1_Board_Private_Variables IHM05A1 Board Private Variables
+ * @{
+ */
+/// L6208 timer handler for VREFA PWM
+TIM_HandleTypeDef hTimVrefaPwm;
+
+/// L6208 timer handler for VREFB PWM
+TIM_HandleTypeDef hTimVrefbPwm;
+
+/// L6208 timer handler for the tick
+TIM_HandleTypeDef hTimTick;
+
+/**
+ * @}
+ */
+
+/** @defgroup IHM05A1_Board_Private_Function_Prototypes IHM05A1 Board Private Function Prototypes
+ * @{
+ */
+void L6208_Board_CLOCK_PIN_Reset(void); //Reset the clock pin
+void L6208_Board_CLOCK_PIN_Set(void); //Set the clock pin
+void L6208_Board_CONTROL_PIN_Reset(void); //Reset the control pin
+void L6208_Board_CONTROL_PIN_Set(void); //Set the control pin
+void L6208_Board_Delay(uint32_t delay); //Delay of the requested number of milliseconds
+void L6208_Board_DIR_PIN_Reset(void); //Reset the dir pin
+void L6208_Board_DIR_PIN_Set(void); //Set the dir pin
+void L6208_Board_Disable(void); //Disable the power bridges (leave the output bridges HiZ)
+void L6208_Board_DisableIrq(void); //Disable Irq
+void L6208_Board_Enable(void); //Enable the power bridges (leave the output bridges HiZ)
+void L6208_Board_EnableIrq(void); //Disable Irq
+uint32_t L6208_Board_FLAG_PIN_GetState(void); //Returns the EN pin state
+void L6208_Board_GpioInit(void); //Initialise GPIOs used for L6208
+void L6208_Board_HALF_FULL_PIN_Reset(void); //Reset the half full pin
+void L6208_Board_HALF_FULL_PIN_Set(void); //Set the half full pin
+bool L6208_Board_VrefPwmInit(uint8_t bridgeId, uint32_t pwmFreq); //Initialize the VREFA or VREFB PWM
+void L6208_Board_ReleaseReset(void); //Release the reset pin
+void L6208_Board_Reset(void); //Reset the reset pin
+uint32_t L6208_Board_TickGetFreq(void); //Get the tick frequency in Hz
+void L6208_Board_TickInit(void); //Initialize the tick
+void L6208_Board_TickStart(void); //Start the timer for the tick by using the set tick frequency
+void L6208_Board_TickStop(void); //Stop the timer for the tick
+bool L6208_Board_VrefPwmFreqCheck(uint32_t newFreq); //Check that the new VREFA and VREFB PWM frequency is nor too low nor too high
+uint32_t L6208_Board_VrefPwmGetPeriod(void); //Get current VREF PWM period duration
+bool L6208_Board_VrefPwmSetDutyCycle(uint8_t bridgeId,\
+ uint16_t value,\
+ bool valueIsPwmDutyCycle); //Set duty cycle of VREFA or VREFB PWM
+bool L6208_Board_VrefPwmStart(uint8_t bridgeId,\
+ uint32_t pwmFreq); //Start the timer for the VREFA or VREFB PWM
+bool L6208_Board_VrefPwmStop(uint8_t bridgeId); //Stop the timer for the VREFA or VREFB PWM
+
+/**
+ * @}
+ */
+
+/** @defgroup IHM05A1_Board_Private_Functions IHM05A1 Board Private Functions
+ * @{
+ */
+
+/******************************************************//**
+ * @brief This function provides an accurate delay in milliseconds
+ * @param[in] delay time length in milliseconds
+ * @retval None
+ **********************************************************/
+void L6208_Board_Delay(uint32_t delay)
+{
+ HAL_Delay(delay);
+}
+
+/******************************************************//**
+ * @brief This function disable the interruptions
+ * @retval None
+ **********************************************************/
+void L6208_Board_DisableIrq(void)
+{
+ //__disable_irq();
+}
+
+/******************************************************//**
+ * @brief This function enable the interruptions
+ * @retval None
+ **********************************************************/
+void L6208_Board_EnableIrq(void)
+{
+ //__enable_irq();
+}
+
+/******************************************************//**
+ * @brief Start the L6208 library
+ * @retval None
+ **********************************************************/
+void L6208_Board_GpioInit(void)
+{
+ GPIO_InitTypeDef GPIO_InitStruct;
+
+ /* GPIO Ports Clock Enable */
+ __GPIOC_CLK_ENABLE();
+ __GPIOA_CLK_ENABLE();
+ __GPIOB_CLK_ENABLE();
+
+ /* Configure L6208 - EN pin -------------------------------*/
+ /* When this pin is set low, it is configured just before as */
+ /* GPIO_MODE_OUTPUT_PP with GPIO_NOPULL */
+ /* When this pin is set high, it is just after configured for OCD and OVT */
+ /* as GPIO_MODE_IT_FALLING with GPIO_PULLUP */
+ L6208_Board_Disable();
+
+ /* Set Priority of External Line Interrupt used for the OCD OVT interrupt*/
+ HAL_NVIC_SetPriority(FLAG_EXTI_LINE_IRQn, BSP_MOTOR_CONTROL_BOARD_EN_AND_FLAG_PRIORITY, 0);
+
+ /* Enable the External Line Interrupt used for the OCD OVT interrupt*/
+ HAL_NVIC_EnableIRQ(FLAG_EXTI_LINE_IRQn);
+
+ /* Configure L6208 - CW/CCW pin ----------------------------*/
+ GPIO_InitStruct.Pin = BSP_MOTOR_CONTROL_BOARD_DIR_PIN;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_MEDIUM;
+ HAL_GPIO_Init(BSP_MOTOR_CONTROL_BOARD_DIR_PORT, &GPIO_InitStruct);
+ HAL_GPIO_WritePin(BSP_MOTOR_CONTROL_BOARD_DIR_PORT, BSP_MOTOR_CONTROL_BOARD_DIR_PIN, GPIO_PIN_RESET);
+
+ /* Configure L6208 - HALF/FULL pin -------------------------------------------*/
+ GPIO_InitStruct.Pin = BSP_MOTOR_CONTROL_BOARD_HALF_FULL_PIN;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_MEDIUM;
+ HAL_GPIO_Init(BSP_MOTOR_CONTROL_BOARD_HALF_FULL_PORT, &GPIO_InitStruct);
+ HAL_GPIO_WritePin(BSP_MOTOR_CONTROL_BOARD_HALF_FULL_PORT, BSP_MOTOR_CONTROL_BOARD_HALF_FULL_PIN, GPIO_PIN_RESET);
+
+ /* Configure L6208 - CONTROL pin -------------------------------------------*/
+ GPIO_InitStruct.Pin = BSP_MOTOR_CONTROL_BOARD_CONTROL_PIN;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_MEDIUM;
+ HAL_GPIO_Init(BSP_MOTOR_CONTROL_BOARD_CONTROL_PORT, &GPIO_InitStruct);
+ HAL_GPIO_WritePin(BSP_MOTOR_CONTROL_BOARD_CONTROL_PORT, BSP_MOTOR_CONTROL_BOARD_CONTROL_PIN, GPIO_PIN_RESET);
+
+ /* Configure L6208 - CLOCK pin -------------------------------------------*/
+ GPIO_InitStruct.Pin = BSP_MOTOR_CONTROL_BOARD_CLOCK_PIN;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_MEDIUM;
+ HAL_GPIO_Init(BSP_MOTOR_CONTROL_BOARD_CLOCK_PORT, &GPIO_InitStruct);
+ HAL_GPIO_WritePin(BSP_MOTOR_CONTROL_BOARD_CLOCK_PORT, BSP_MOTOR_CONTROL_BOARD_CLOCK_PIN, GPIO_PIN_RESET);
+
+ /* Configure L6208 - STBY/RESET pin -------------------------------------*/
+ GPIO_InitStruct.Pin = BSP_MOTOR_CONTROL_BOARD_RESET_PIN;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_MEDIUM;
+ HAL_GPIO_Init(BSP_MOTOR_CONTROL_BOARD_RESET_PORT, &GPIO_InitStruct);
+ L6208_Board_ReleaseReset();
+}
+
+/******************************************************//**
+ * @brief Initialize the tick
+ * @retval None
+ **********************************************************/
+void L6208_Board_TickInit(void)
+{
+ static TIM_OC_InitTypeDef sConfigOC;
+ static TIM_MasterConfigTypeDef sMasterConfig;
+ static TIM_ClockConfigTypeDef sClockSourceConfig;
+
+ hTimTick.Instance = BSP_MOTOR_CONTROL_BOARD_TIMER_TICK;
+ hTimTick.Init.Period = (HAL_RCC_GetSysClockFreq() / (TIMER_TICK_PRESCALER * TIMER_TICK_FREQUENCY)) - 1;
+ hTimTick.Init.Prescaler = TIMER_TICK_PRESCALER -1;
+ hTimTick.Init.ClockDivision = 0;
+ hTimTick.Init.CounterMode = TIM_COUNTERMODE_UP;
+ HAL_TIM_PWM_Init(&hTimTick);
+
+ sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
+ HAL_TIM_ConfigClockSource(&hTimTick, &sClockSourceConfig);
+
+ sConfigOC.OCMode = TIM_OCMODE_PWM1;
+ sConfigOC.Pulse = 0;
+ sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
+ sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
+ HAL_TIM_PWM_ConfigChannel(&hTimTick, &sConfigOC, BSP_MOTOR_CONTROL_BOARD_CHAN_TIMER_TICK);
+
+ sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
+ sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
+ HAL_TIMEx_MasterConfigSynchronization(&hTimTick, &sMasterConfig);
+}
+
+/******************************************************//**
+ * @brief Start the timer for the tick by using the set tick frequency
+ * @retval None
+ **********************************************************/
+void L6208_Board_TickStart(void)
+{
+ uint32_t period = (HAL_RCC_GetSysClockFreq() / (TIMER_TICK_PRESCALER * TIMER_TICK_FREQUENCY)) - 1;
+
+ __HAL_TIM_SetAutoreload(&hTimTick, period);
+ __HAL_TIM_SetCompare(&hTimTick, BSP_MOTOR_CONTROL_BOARD_CHAN_TIMER_TICK, period >> 1);
+ HAL_TIM_PWM_Start_IT(&hTimTick, BSP_MOTOR_CONTROL_BOARD_CHAN_TIMER_TICK);
+}
+
+/******************************************************//**
+ * @brief Stop the timer for the tick
+ * @retval None
+ **********************************************************/
+void L6208_Board_TickStop(void)
+{
+ HAL_TIM_PWM_Stop_IT(&hTimTick, BSP_MOTOR_CONTROL_BOARD_CHAN_TIMER_TICK);
+}
+
+/******************************************************//**
+ * @brief Get the tick timer frequency in Hz
+ * @retval The tick timer frequency in Hz
+ **********************************************************/
+uint32_t L6208_Board_TickGetFreq(void)
+{
+ return TIMER_TICK_FREQUENCY;
+}
+
+/******************************************************//**
+ * @brief Check that the frequency for the VREFA and VREFB PWM
+ * is high enough
+ * @param[in] newFreq frequency in Hz of the PWM used to generate
+ * the reference voltage for the bridge
+ * @retval FALSE if frequency is too low, else TRUE
+ **********************************************************/
+bool L6208_Board_VrefPwmFreqCheck(uint32_t newFreq)
+{
+ if (newFreq<=(HAL_RCC_GetSysClockFreq()>>16))
+ {
+ return FALSE;
+ }
+ else
+ {
+ return TRUE;
+ }
+}
+/******************************************************//**
+ * @brief Initialize the VREFA or VREFB PWM
+ * @param[in] bridgeId
+ * 0 for BRIDGE_A
+ * 1 for BRIDGE_B
+ * @param[in] pwmFreq frequency in Hz of the PWM used to generate the reference
+ * voltage for the bridge
+ * @retval FALSE if wrong timer handle is used, else TRUE
+ * @note None
+ **********************************************************/
+bool L6208_Board_VrefPwmInit(uint8_t bridgeId, uint32_t pwmFreq)
+{
+ static TIM_OC_InitTypeDef sConfigOC;
+ static TIM_MasterConfigTypeDef sMasterConfig;
+ static TIM_ClockConfigTypeDef sClockSourceConfig;
+ TIM_HandleTypeDef *pHTim = NULL;
+ uint32_t channel;
+
+ if (bridgeId == 0)
+ {
+ pHTim = &hTimVrefaPwm;
+ pHTim->Instance = BSP_MOTOR_CONTROL_BOARD_TIMER_VREFA_PWM;
+ pHTim->Init.Prescaler = 0;
+ pHTim->Init.Period = (HAL_RCC_GetSysClockFreq() / pwmFreq) - 1;
+ channel = BSP_MOTOR_CONTROL_BOARD_CHAN_TIMER_VREFA_PWM;
+ }
+ else if (bridgeId == 1)
+ {
+ pHTim = &hTimVrefbPwm;
+ pHTim->Instance = BSP_MOTOR_CONTROL_BOARD_TIMER_VREFB_PWM;
+ pHTim->Init.Prescaler = 0;
+ pHTim->Init.Period = (HAL_RCC_GetSysClockFreq() / pwmFreq) - 1;
+ channel = BSP_MOTOR_CONTROL_BOARD_CHAN_TIMER_VREFB_PWM;
+ }
+ else
+ {
+ return FALSE;
+ }
+
+ pHTim->Init.CounterMode = TIM_COUNTERMODE_UP;
+ pHTim->Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
+ HAL_TIM_PWM_Init(pHTim);
+
+ sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
+ HAL_TIM_ConfigClockSource(pHTim, &sClockSourceConfig);
+
+ sConfigOC.OCMode = TIM_OCMODE_PWM1;
+ sConfigOC.Pulse = 0;
+ sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
+ sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
+ HAL_TIM_PWM_ConfigChannel(pHTim, &sConfigOC, channel);
+
+ sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
+ sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
+ HAL_TIMEx_MasterConfigSynchronization(pHTim, &sMasterConfig);
+
+ return TRUE;
+}
+
+/******************************************************//**
+ * @brief Set duty cycle of VREFA or VREFB PWM
+ * @param[in] bridgeId
+ * 0 for BRIDGE_A
+ * 1 for BRIDGE_B
+ * @param[in] value pulse length or PWM duty cycle: 0 - 100 %
+ * @param[in] valueIsPwmDutyCycle must be TRUE if value is a PWM duty cycle
+ * @retval FALSE if wrong timer handle is used, else TRUE
+ **********************************************************/
+bool L6208_Board_VrefPwmSetDutyCycle(uint8_t bridgeId, uint16_t value, bool valueIsPwmDutyCycle)
+{
+ TIM_HandleTypeDef *pHTim = NULL;
+ uint32_t channel;
+
+ if (bridgeId == 0)
+ {
+ pHTim = &hTimVrefaPwm;
+ channel = BSP_MOTOR_CONTROL_BOARD_CHAN_TIMER_VREFA_PWM;
+ }
+ else if (bridgeId == 1)
+ {
+ pHTim = &hTimVrefbPwm;
+ channel = BSP_MOTOR_CONTROL_BOARD_CHAN_TIMER_VREFB_PWM;
+ }
+ else
+ {
+ return 0;
+ }
+ // PWM or OC Channel pulse length
+ if(valueIsPwmDutyCycle)
+ {
+ if (value > 100) value = 100;
+ value = (uint16_t)(((uint32_t)pHTim->Init.Period * (uint32_t)value) / 100);
+ }
+ __HAL_TIM_SetCompare(pHTim, channel, value);
+
+ return 1;
+}
+
+/******************************************************//**
+ * @brief Start the timer for the VREFA or VREFB PWM
+ * @param[in] bridgeId
+ * 0 for BRIDGE_A
+ * 1 for BRIDGE_B
+ * @param[in] pwmFreq frequency in Hz of the PWM used to generate the reference
+ * voltage for the bridge
+ * @retval FALSE if wrong timer handle is used, else TRUE
+ **********************************************************/
+bool L6208_Board_VrefPwmStart(uint8_t bridgeId, uint32_t pwmFreq)
+{
+ TIM_HandleTypeDef *pHTim = NULL;
+ uint32_t period;
+ uint32_t channel;
+
+ if (bridgeId == 0)
+ {
+ pHTim = &hTimVrefaPwm;
+ period = (HAL_RCC_GetSysClockFreq() / pwmFreq) - 1;
+ channel = BSP_MOTOR_CONTROL_BOARD_CHAN_TIMER_VREFA_PWM;
+ }
+ else if (bridgeId == 1)
+ {
+ pHTim = &hTimVrefbPwm;
+ period = (HAL_RCC_GetSysClockFreq() / pwmFreq) - 1;
+ channel = BSP_MOTOR_CONTROL_BOARD_CHAN_TIMER_VREFB_PWM;
+ }
+ else
+ {
+ return FALSE;
+ }
+ __HAL_TIM_SetAutoreload(pHTim, period);
+ HAL_TIM_PWM_Start(pHTim, channel);
+
+ return TRUE;
+}
+
+/******************************************************//**
+ * @brief Stop the VREFA or VREFB PWM
+ * @param[in] bridgeId
+ * 0 for BRIDGE_A
+ * 1 for BRIDGE_B
+ * @retval None
+ **********************************************************/
+bool L6208_Board_VrefPwmStop(uint8_t bridgeId)
+{
+ TIM_HandleTypeDef *pHTim = NULL;
+ uint32_t channel;
+ if (bridgeId == 0)
+ {
+ pHTim = &hTimVrefaPwm;
+ channel = BSP_MOTOR_CONTROL_BOARD_CHAN_TIMER_VREFA_PWM;
+ }
+ else if (bridgeId == 1)
+ {
+ pHTim = &hTimVrefbPwm;
+ channel = BSP_MOTOR_CONTROL_BOARD_CHAN_TIMER_VREFB_PWM;
+ }
+ else
+ {
+ return FALSE;
+ }
+ HAL_TIM_PWM_Stop(pHTim, channel);
+
+ return TRUE;
+}
+
+/******************************************************//**
+ * @brief Get current VREF PWM period duration
+ * @retval the current VREF PWM period duration
+ * @note hTimVrefbPwm.Init.Period is the same as hTimVrefaPwm.Init.Period
+ **********************************************************/
+uint32_t L6208_Board_VrefPwmGetPeriod(void)
+{
+ return ((uint32_t)hTimVrefaPwm.Init.Period);
+}
+
+/******************************************************//**
+ * @brief Releases the L6208 reset (pin set to High) of all devices
+ * @retval None
+ **********************************************************/
+void L6208_Board_ReleaseReset(void)
+{
+ HAL_GPIO_WritePin(BSP_MOTOR_CONTROL_BOARD_RESET_PORT, BSP_MOTOR_CONTROL_BOARD_RESET_PIN, GPIO_PIN_SET);
+}
+
+/******************************************************//**
+ * @brief Resets the L6208 (reset pin set to low) of all devices
+ * @retval None
+ **********************************************************/
+void L6208_Board_Reset(void)
+{
+ HAL_GPIO_WritePin(BSP_MOTOR_CONTROL_BOARD_RESET_PORT, BSP_MOTOR_CONTROL_BOARD_RESET_PIN, GPIO_PIN_RESET);
+}
+
+/******************************************************//**
+ * @brief Set the L6208 CONTROL pin
+ * @retval None
+ **********************************************************/
+void L6208_Board_CONTROL_PIN_Set(void)
+{
+ HAL_GPIO_WritePin(BSP_MOTOR_CONTROL_BOARD_CONTROL_PORT, BSP_MOTOR_CONTROL_BOARD_CONTROL_PIN, GPIO_PIN_SET);
+}
+
+/******************************************************//**
+ * @brief Reset the L6208 CONTROL pin
+ * @retval None
+ **********************************************************/
+void L6208_Board_CONTROL_PIN_Reset(void)
+{
+ HAL_GPIO_WritePin(BSP_MOTOR_CONTROL_BOARD_CONTROL_PORT, BSP_MOTOR_CONTROL_BOARD_CONTROL_PIN, GPIO_PIN_RESET);
+}
+
+/******************************************************//**
+ * @brief Set the L6208 CLOCK pin
+ * @retval None
+ **********************************************************/
+void L6208_Board_CLOCK_PIN_Set(void)
+{
+ HAL_GPIO_WritePin(BSP_MOTOR_CONTROL_BOARD_CLOCK_PORT, BSP_MOTOR_CONTROL_BOARD_CLOCK_PIN, GPIO_PIN_SET);
+}
+
+/******************************************************//**
+ * @brief Reset the L6208 CLOCK pin
+ * @retval None
+ **********************************************************/
+void L6208_Board_CLOCK_PIN_Reset(void)
+{
+ HAL_GPIO_WritePin(BSP_MOTOR_CONTROL_BOARD_CLOCK_PORT, BSP_MOTOR_CONTROL_BOARD_CLOCK_PIN, GPIO_PIN_RESET);
+}
+
+/******************************************************//**
+ * @brief Set the L6208 HALF_FULL pin
+ * @retval None
+ **********************************************************/
+void L6208_Board_HALF_FULL_PIN_Set(void)
+{
+ HAL_GPIO_WritePin(BSP_MOTOR_CONTROL_BOARD_HALF_FULL_PORT, BSP_MOTOR_CONTROL_BOARD_HALF_FULL_PIN, GPIO_PIN_SET);
+}
+
+/******************************************************//**
+ * @brief Reset the L6208 HALF_FULL pin
+ * @retval None
+ **********************************************************/
+void L6208_Board_HALF_FULL_PIN_Reset(void)
+{
+ HAL_GPIO_WritePin(BSP_MOTOR_CONTROL_BOARD_HALF_FULL_PORT, BSP_MOTOR_CONTROL_BOARD_HALF_FULL_PIN, GPIO_PIN_RESET);
+}
+
+/******************************************************//**
+ * @brief Set the L6208 DIR pin
+ * @retval None
+ **********************************************************/
+void L6208_Board_DIR_PIN_Set(void)
+{
+ HAL_GPIO_WritePin(BSP_MOTOR_CONTROL_BOARD_DIR_PORT, BSP_MOTOR_CONTROL_BOARD_DIR_PIN, GPIO_PIN_SET);
+}
+
+/******************************************************//**
+ * @brief Reset the L6208 DIR pin
+ * @retval None
+ **********************************************************/
+void L6208_Board_DIR_PIN_Reset(void)
+{
+ HAL_GPIO_WritePin(BSP_MOTOR_CONTROL_BOARD_DIR_PORT, BSP_MOTOR_CONTROL_BOARD_DIR_PIN, GPIO_PIN_RESET);
+}
+
+/******************************************************//**
+ * @brief Returns the FLAG pin state.
+ * @retval The FLAG pin value.
+ **********************************************************/
+uint32_t L6208_Board_FLAG_PIN_GetState(void)
+{
+ return HAL_GPIO_ReadPin(BSP_MOTOR_CONTROL_BOARD_EN_AND_FLAG_PORT, BSP_MOTOR_CONTROL_BOARD_EN_AND_FLAG_PIN);
+}
+
+/******************************************************//**
+ * @brief Disable the power bridges (leave the output bridges HiZ)
+ * @retval None
+ **********************************************************/
+void L6208_Board_Disable(void)
+{
+ GPIO_InitTypeDef GPIO_InitStruct;
+
+ /* Configure the GPIO connected to EN pin as an output */
+ GPIO_InitStruct.Pin = BSP_MOTOR_CONTROL_BOARD_EN_AND_FLAG_PIN;
+ GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_MEDIUM;
+ HAL_GPIO_Init(BSP_MOTOR_CONTROL_BOARD_EN_AND_FLAG_PORT, &GPIO_InitStruct);
+ __disable_irq();
+ HAL_GPIO_WritePin(BSP_MOTOR_CONTROL_BOARD_EN_AND_FLAG_PORT, BSP_MOTOR_CONTROL_BOARD_EN_AND_FLAG_PIN, GPIO_PIN_RESET);
+ __HAL_GPIO_EXTI_CLEAR_IT(BSP_MOTOR_CONTROL_BOARD_EN_AND_FLAG_PIN);
+ __enable_irq();
+}
+
+/******************************************************//**
+ * @brief Enable the power bridges (leave the output bridges HiZ)
+ * @retval None
+ **********************************************************/
+void L6208_Board_Enable(void)
+{
+ GPIO_InitTypeDef GPIO_InitStruct;
+
+ HAL_GPIO_WritePin(BSP_MOTOR_CONTROL_BOARD_EN_AND_FLAG_PORT, BSP_MOTOR_CONTROL_BOARD_EN_AND_FLAG_PIN, GPIO_PIN_SET);
+ HAL_Delay(BRIDGE_TURN_ON_DELAY);
+ /* Configure the GPIO connected to EN pin to take interrupt */
+ GPIO_InitStruct.Pin = BSP_MOTOR_CONTROL_BOARD_EN_AND_FLAG_PIN;
+ GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING;
+ GPIO_InitStruct.Pull = GPIO_PULLUP;
+ GPIO_InitStruct.Speed = GPIO_SPEED_MEDIUM;
+ HAL_GPIO_Init(BSP_MOTOR_CONTROL_BOARD_EN_AND_FLAG_PORT, &GPIO_InitStruct);
+ __HAL_GPIO_EXTI_CLEAR_IT(BSP_MOTOR_CONTROL_BOARD_EN_AND_FLAG_PIN);
+ HAL_NVIC_ClearPendingIRQ(FLAG_EXTI_LINE_IRQn);
+ HAL_NVIC_EnableIRQ(FLAG_EXTI_LINE_IRQn);
+}
+
+/**
+ * @}
+ */
+
+/**
+ * @}
+ */
+
+/**
+ * @}
+ */
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/stepper/steppermotor_F401RE/Core/Src/x_nucleo_ihmxx.c b/stepper/steppermotor_F401RE/Core/Src/x_nucleo_ihmxx.c
new file mode 100644
index 0000000..e59439e
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Core/Src/x_nucleo_ihmxx.c
@@ -0,0 +1,1943 @@
+ /**
+ ******************************************************************************
+ * @file x_nucleo_ihmxx.c
+ * @author IPC Rennes
+ * @version V1.7.0
+ * @date March 16th, 2018
+ * @brief This file provides common functions for motor control
+ ******************************************************************************
+ * @attention
+ *
+ * © COPYRIGHT(c) 2018 STMicroelectronics
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * 3. Neither the name of STMicroelectronics nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ ******************************************************************************
+ */
+/* Includes ------------------------------------------------------------------*/
+#include "x_nucleo_ihmxx.h"
+
+/** @addtogroup BSP
+ * @{
+ */
+
+/** @defgroup MOTOR_CONTROL MOTOR CONTROL
+ * @{
+ */
+
+/** @defgroup MOTOR_CONTROL_Private_Types_Definitions MOTOR CONTROL Private Types Definitions
+ * @{
+ */
+
+/**
+ * @}
+ */
+
+
+/** @defgroup MOTOR_CONTROL_Private_Defines MOTOR CONTROL Private Defines
+ * @{
+ */
+
+/**
+ * @}
+ */
+
+/** @defgroup MOTOR_CONTROL_Private_Constants MOTOR CONTROL Private Constants
+ * @{
+ */
+
+/**
+ * @}
+ */
+
+/** @defgroup MOTOR_CONTROL_Private_Macros MOTOR CONTROL Private Macros
+ * @{
+ */
+/// Error when trying to call undefined functions via motorDrvHandle
+#define MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(errorNb) (BSP_MotorControl_ErrorHandler(MOTOR_CONTROL_ERROR_TAG|(errorNb)))
+
+/**
+ * @}
+ */
+
+/** @defgroup MOTOR_CONTROL_Private_Variables MOTOR CONTROL Private Variables
+ * @{
+ */
+
+static motorDrv_t *motorDrvHandle = 0;
+static uint16_t MotorControlBoardId;
+
+/**
+ * @}
+ */
+
+/** @defgroup MOTOR_CONTROL_Weak_Private_Functions MOTOR CONTROL Weak Private Functions
+ * @{
+ */
+/// Get motor handle for L6474
+__weak motorDrv_t* L6474_GetMotorHandle(void){return ((motorDrv_t* )0);}
+/// Get motor handle for L647x
+__weak motorDrv_t* l647x_GetMotorHandle(void){return ((motorDrv_t* )0);}
+/// Get motor handle for L648x
+__weak motorDrv_t* l648x_GetMotorHandle(void){return ((motorDrv_t* )0);}
+/// Get motor handle for Powerstep
+__weak motorDrv_t* Powerstep01_GetMotorHandle(void){return ((motorDrv_t* )0);}
+/// Get motor handle for L6206
+__weak motorDrv_t* L6206_GetMotorHandle(void){return ((motorDrv_t* )0);}
+/// Get motor handle for L6208
+__weak motorDrv_t* L6208_GetMotorHandle(void){return ((motorDrv_t* )0);}
+/// Get motor handle for STSPIN220
+__weak motorDrv_t* Stspin220_GetMotorHandle(void){return ((motorDrv_t* )0);}
+/// Get motor handle for STSPIN240
+__weak motorDrv_t* Stspin240_250_GetMotorHandle(void){return ((motorDrv_t* )0);}
+/**
+ * @}
+ */
+
+/** @defgroup MOTOR_CONTROL_Private_Functions MOTOR CONTROL Private Functions
+ * @{
+ */
+
+/******************************************************//**
+ * @brief Attaches a user callback to the error Handler.
+ * The call back will be then called each time the library
+ * detects an error
+ * @param[in] callback Name of the callback to attach
+ * to the error Hanlder
+ * @retval None
+ **********************************************************/
+void BSP_MotorControl_AttachErrorHandler(void (*callback)(uint16_t))
+{
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->AttachErrorHandler != 0))
+ {
+ motorDrvHandle->AttachErrorHandler(callback);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(2);
+ }
+}
+
+/******************************************************//**
+ * @brief Attaches a user callback to the Flag interrupt Handler.
+ * The call back will be then called each time the library
+ * detects a FLAG signal falling edge.
+ * @param[in] callback Name of the callback to attach
+ * to the Flag interrupt Hanlder
+ * @retval None
+ **********************************************************/
+void BSP_MotorControl_AttachFlagInterrupt(void (*callback)(void))
+{
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->AttachFlagInterrupt != 0))
+ {
+ motorDrvHandle->AttachFlagInterrupt(callback);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(3);
+ }
+}
+
+/******************************************************//**
+ * @brief Attaches a user callback to the Busy interrupt Handler.
+ * The call back will be then called each time the library
+ * detects a BUSY signal falling edge.
+ * @param[in] callback Name of the callback to attach
+ * to the Busy interrupt Hanlder
+ * @retval None
+ **********************************************************/
+void BSP_MotorControl_AttachBusyInterrupt(void (*callback)(void))
+{
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->AttachBusyInterrupt != 0))
+ {
+ motorDrvHandle->AttachBusyInterrupt(callback);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(4);
+ }
+}
+
+/******************************************************//**
+ * @brief Motor control error handler
+ * @param[in] error number of the error
+ * @retval None
+ **********************************************************/
+void BSP_MotorControl_ErrorHandler(uint16_t error)
+{
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->ErrorHandler != 0))
+ {
+ motorDrvHandle->ErrorHandler(error);
+ }
+ else
+ {
+ while(1)
+ {
+ /* Infinite loop as Error handler must be defined*/
+ }
+ }
+}
+/******************************************************//**
+ * @brief Initialises the motor driver. This function has to be called one time
+ * for each device. The number of devices is incremented in the driver up to
+ * the maximum allowed. Calling this function a number of times greater than the
+ * maximum number triggers an error in the driver.
+ * @param[in] id Component Id (L6474, Powerstep01,...)
+ * @param[in] initDeviceParameters Initialization structure for one device
+ * @retval None
+ **********************************************************/
+void BSP_MotorControl_Init(uint16_t id, void* initDeviceParameters)
+{
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->Init != 0))
+ {
+ motorDrvHandle->Init(initDeviceParameters);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(0);
+ }
+}
+
+/******************************************************//**
+ * @brief Handlers of the flag interrupt which calls the user callback (if defined)
+ * @retval None
+ **********************************************************/
+void BSP_MotorControl_FlagInterruptHandler(void)
+{
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->FlagInterruptHandler != 0))
+ {
+ motorDrvHandle->FlagInterruptHandler();
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(5);
+ }
+}
+/******************************************************//**
+ * @brief Returns the acceleration of the specified device
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES - 1)
+ * For L6208: dummy parameter for compatibility with motor.h
+ * @retval Acceleration in pps^2
+ **********************************************************/
+uint16_t BSP_MotorControl_GetAcceleration(uint8_t deviceId)
+{
+ uint16_t acceleration = 0;
+
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->GetAcceleration != 0))
+ {
+ acceleration = motorDrvHandle->GetAcceleration(deviceId);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(6);
+ }
+ return(acceleration);
+}
+
+/******************************************************//**
+ * @brief Get board Id the motor driver
+ * @retval Motor control board Id
+ **********************************************************/
+uint16_t BSP_MotorControl_GetBoardId(void)
+{
+ return (MotorControlBoardId);
+}
+/******************************************************//**
+ * @brief Returns the current speed of the specified device
+ * @param[in] deviceId from 0 to (MAX_NUMBER_OF_DEVICES - 1) for stepper motor
+ * For L6208: dummy parameter for compatibility with motor.h
+ * motorId from 0 to MAX_NUMBER_OF_BRUSH_DC_MOTORS for Brush DC motor
+ * @retval Speed in pps for stepper motor
+ * in % for Brush DC motor (0-100)
+ **********************************************************/
+uint16_t BSP_MotorControl_GetCurrentSpeed(uint8_t deviceId)
+{
+ uint16_t currentSpeed = 0;
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->GetCurrentSpeed != 0))
+ {
+ currentSpeed = motorDrvHandle->GetCurrentSpeed(deviceId);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(7);
+ }
+ return(currentSpeed);
+}
+
+/******************************************************//**
+ * @brief Returns the deceleration of the specified device
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES - 1)
+ * For L6208: dummy parameter for compatibility with motor.h
+ * @retval Deceleration in pps^2
+ **********************************************************/
+uint16_t BSP_MotorControl_GetDeceleration(uint8_t deviceId)
+{
+ uint16_t deceleration = 0;
+
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->GetDeceleration != 0))
+ {
+ deceleration = motorDrvHandle->GetDeceleration(deviceId);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(8);
+ }
+ return(deceleration);
+}
+
+/******************************************************//**
+ * @brief Returns the device state
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES - 1) for stepper motor
+ * For L6208: dummy parameter for compatibility with motor.h
+ * motorId from 0 to MAX_NUMBER_OF_BRUSH_DC_MOTORS for Brush DC motor
+ * @retval State ACCELERATING, DECELERATING, STEADY or INACTIVE for stepper motor,
+ STEADY or INACTIVE for Brush DC motor
+ **********************************************************/
+motorState_t BSP_MotorControl_GetDeviceState(uint8_t deviceId)
+{
+ motorState_t state = INACTIVE;
+
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->GetDeviceState != 0))
+ {
+ state = motorDrvHandle->GetDeviceState(deviceId);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(9);
+ }
+ return(state);
+}
+
+/******************************************************//**
+ * @brief Returns the FW version of the library
+ * @retval BSP_MotorControl_FW_VERSION
+ * @note the format is (MAJOR_VERSION<<16)|(MINOR_VERSION<<8)|(PATCH_VERSION)
+ * with major, minor and patch versions coded on 8 bits.
+ **********************************************************/
+uint32_t BSP_MotorControl_GetFwVersion(void)
+{
+ uint32_t version = 0;
+
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->GetFwVersion != 0))
+ {
+ version = motorDrvHandle->GetFwVersion();
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(10);
+ }
+ return(version);
+}
+
+/******************************************************//**
+ * @brief Returns the mark position of the specified device
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES - 1)
+ * For L6208: dummy parameter for compatibility with motor.h
+ * @retval Mark register value converted in a 32b signed integer
+ **********************************************************/
+int32_t BSP_MotorControl_GetMark(uint8_t deviceId)
+{
+ int32_t mark = 0;
+
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->GetMark != 0))
+ {
+ mark = motorDrvHandle->GetMark(deviceId);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(11);
+ }
+ return(mark);
+}
+
+/******************************************************//**
+ * @brief Returns the max speed of the specified device
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES - 1) for stepper motor
+ * For L6208: dummy parameter for compatibility with motor.h
+ * motorId from 0 to MAX_NUMBER_OF_BRUSH_DC_MOTORS for Brush DC motor
+ * @retval maxSpeed in pps for stepper motor
+ * in % for Brush DC motor (0-100)
+ **********************************************************/
+uint16_t BSP_MotorControl_GetMaxSpeed(uint8_t deviceId)
+{
+ uint16_t maxSpeed = 0;
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->GetMaxSpeed != 0))
+ {
+ maxSpeed = motorDrvHandle->GetMaxSpeed(deviceId);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(12);
+ }
+ return(maxSpeed);
+}
+
+/******************************************************//**
+ * @brief Returns the min speed of the specified device
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES - 1)
+ * For L6208: dummy parameter for compatibility with motor.h
+ * @retval minSpeed in pps
+ **********************************************************/
+uint16_t BSP_MotorControl_GetMinSpeed(uint8_t deviceId)
+{
+ uint16_t minSpeed = 0;
+
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->GetMinSpeed != 0))
+ {
+ minSpeed = motorDrvHandle->GetMinSpeed(deviceId);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(13);
+ }
+ return(minSpeed);
+}
+
+/******************************************************//**
+ * @brief Returns the ABS_POSITION of the specified device
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES - 1)
+ * For L6208: dummy parameter for compatibility with motor.h
+ * @retval ABS_POSITION register value converted in a 32b signed integer
+ **********************************************************/
+int32_t BSP_MotorControl_GetPosition(uint8_t deviceId)
+{
+ int32_t pos = 0;
+
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->GetPosition != 0))
+ {
+ pos = motorDrvHandle->GetPosition(deviceId);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(14);
+ }
+ return(pos);
+}
+
+/******************************************************//**
+ * @brief Requests the motor to move to the home position (ABS_POSITION = 0)
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES - 1)
+ * For L6208: dummy parameter for compatibility with motor.h
+ * @retval None
+ **********************************************************/
+void BSP_MotorControl_GoHome(uint8_t deviceId)
+{
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->GoHome != 0))
+ {
+ motorDrvHandle->GoHome(deviceId);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(15);
+ }
+}
+
+/******************************************************//**
+ * @brief Requests the motor to move to the mark position
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES - 1)
+ * For L6208: dummy parameter for compatibility with motor.h
+ * @retval None
+ **********************************************************/
+void BSP_MotorControl_GoMark(uint8_t deviceId)
+{
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->GoMark != 0))
+ {
+ motorDrvHandle->GoMark(deviceId);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(16);
+ }
+}
+
+/******************************************************//**
+ * @brief Requests the motor to move to the specified position
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES - 1)
+ * For L6208: dummy parameter for compatibility with motor.h
+ * @param[in] targetPosition absolute position in steps
+ * @retval None
+ **********************************************************/
+void BSP_MotorControl_GoTo(uint8_t deviceId, int32_t targetPosition)
+{
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->GoTo != 0))
+ {
+ motorDrvHandle->GoTo(deviceId, targetPosition);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(17);
+ }
+}
+
+/******************************************************//**
+ * @brief Immediatly stops the motor.
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES - 1) for stepper motor
+ * For L6208: dummy parameter for compatibility with motor.h
+ * motorId from 0 to MAX_NUMBER_OF_BRUSH_DC_MOTORS for Brush DC motor
+ * @retval None
+ **********************************************************/
+void BSP_MotorControl_HardStop(uint8_t deviceId)
+{
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->HardStop != 0))
+ {
+ motorDrvHandle->HardStop(deviceId);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(18);
+ }
+}
+
+/******************************************************//**
+ * @brief Moves the motor of the specified number of steps
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES - 1)
+ * For L6208: dummy parameter for compatibility with motor.h
+ * @param[in] direction FORWARD or BACKWARD
+ * @param[in] stepCount Number of steps to perform
+ * @retval None
+ **********************************************************/
+void BSP_MotorControl_Move(uint8_t deviceId, motorDir_t direction, uint32_t stepCount)
+{
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->Move != 0))
+ {
+ motorDrvHandle->Move(deviceId, direction, stepCount);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(19);
+ }
+}
+
+/******************************************************//**
+ * @brief Resets all motor driver devices
+ * @retval None
+ **********************************************************/
+void BSP_MotorControl_ResetAllDevices(void)
+{
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->ResetAllDevices != 0))
+ {
+ motorDrvHandle->ResetAllDevices();
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(20);
+ }
+}
+
+/******************************************************//**
+ * @brief Runs the motor. It will accelerate from the min
+ * speed up to the max speed by using the device acceleration.
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES - 1) for stepper motor
+ * For L6208: dummy parameter for compatibility with motor.h
+ * motorId from 0 to MAX_NUMBER_OF_BRUSH_DC_MOTORS for Brush DC motor
+ * @param[in] direction FORWARD or BACKWARD
+ * @retval None
+ * @note For unidirectionnal brush DC motor, direction parameter
+ * has no effect
+ **********************************************************/
+void BSP_MotorControl_Run(uint8_t deviceId, motorDir_t direction)
+{
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->Run != 0))
+ {
+ motorDrvHandle->Run(deviceId, direction);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(21);
+ }
+}
+/******************************************************//**
+ * @brief Changes the acceleration of the specified device
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES - 1)
+ * For L6208: dummy parameter for compatibility with motor.h
+ * @param[in] newAcc New acceleration to apply in pps^2
+ * @retval true if the command is successfully executed, else false
+ * @note The command is not performed is the device is executing
+ * a MOVE or GOTO command (but it can be used during a RUN command)
+ **********************************************************/
+bool BSP_MotorControl_SetAcceleration(uint8_t deviceId,uint16_t newAcc)
+{
+ bool status = FALSE;
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->SetAcceleration != 0))
+ {
+ status = motorDrvHandle->SetAcceleration(deviceId, newAcc);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(22);
+ }
+ return (status);
+}
+
+/******************************************************//**
+ * @brief Changes the deceleration of the specified device
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES - 1)
+ * For L6208: dummy parameter for compatibility with motor.h
+ * @param[in] newDec New deceleration to apply in pps^2
+ * @retval true if the command is successfully executed, else false
+ * @note The command is not performed is the device is executing
+ * a MOVE or GOTO command (but it can be used during a RUN command)
+ **********************************************************/
+bool BSP_MotorControl_SetDeceleration(uint8_t deviceId, uint16_t newDec)
+{
+ bool status = FALSE;
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->SetDeceleration != 0))
+ {
+ status = motorDrvHandle->SetDeceleration(deviceId, newDec);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(23);
+ }
+ return (status);
+}
+
+/******************************************************//**
+ * @brief Set current position to be the Home position (ABS pos set to 0)
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES - 1)
+ * @param[in] homePosition new absolute home position
+ * For L6208: dummy parameter for compatibility with motor.h
+ * @retval None
+ **********************************************************/
+void BSP_MotorControl_SetHome(uint8_t deviceId, int32_t homePosition)
+{
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->SetHome != 0))
+ {
+ motorDrvHandle->SetHome(deviceId, homePosition);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(24);
+ }
+}
+
+/******************************************************//**
+ * @brief Sets current position to be the Mark position
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES - 1)
+ * @param[in] markPosition new absolute mark position
+ * For L6208: dummy parameter for compatibility with motor.h
+ * @retval None
+ **********************************************************/
+void BSP_MotorControl_SetMark(uint8_t deviceId, int32_t markPosition)
+{
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->SetMark != 0))
+ {
+ motorDrvHandle->SetMark(deviceId, markPosition);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(25);
+ }
+}
+
+/******************************************************//**
+ * @brief Changes the max speed of the specified device
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES - 1) for stepper motor
+ * For L6208: dummy parameter for compatibility with motor.h
+ * motorId from 0 to MAX_NUMBER_OF_BRUSH_DC_MOTORS for Brush DC motor
+ * @param[in] newMaxSpeed New max speed to apply in pps for stepper motor,
+ in % for Brush DC motor (0-100)
+ * @retval true if the command is successfully executed, else false
+ * @note For a stepper motor, the command is not performed if the device
+ * is executing a MOVE or GOTO command (but it can be used during a RUN command).
+ **********************************************************/
+bool BSP_MotorControl_SetMaxSpeed(uint8_t deviceId, uint16_t newMaxSpeed)
+{
+ bool status = FALSE;
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->SetMaxSpeed != 0))
+ {
+ status = motorDrvHandle->SetMaxSpeed(deviceId, newMaxSpeed);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(26);
+ }
+ return (status);
+}
+
+/******************************************************//**
+ * @brief Changes the min speed of the specified device
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES - 1)
+ * For L6208: dummy parameter for compatibility with motor.h
+ * @param[in] newMinSpeed New min speed to apply in pps
+ * @retval true if the command is successfully executed, else false
+ * @note The command is not performed is the device is executing
+ * a MOVE or GOTO command (but it can be used during a RUN command).
+ **********************************************************/
+bool BSP_MotorControl_SetMinSpeed(uint8_t deviceId, uint16_t newMinSpeed)
+{
+ bool status = FALSE;
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->SetMinSpeed != 0))
+ {
+ status = motorDrvHandle->SetMinSpeed(deviceId, newMinSpeed);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(27);
+ }
+
+ return (status);
+}
+
+/******************************************************//**
+ * @brief Stops the motor by using the device deceleration
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES - 1) for stepper motor
+ * For L6208: dummy parameter for compatibility with motor.h
+ * motorId from 0 to MAX_NUMBER_OF_BRUSH_DC_MOTORS for Brush DC motor
+ * @retval true if the command is successfully executed, else false
+ * @note The command is not performed is the device is in INACTIVE state.
+ **********************************************************/
+bool BSP_MotorControl_SoftStop(uint8_t deviceId)
+{
+ bool status = FALSE;
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->SoftStop != 0))
+ {
+ status = motorDrvHandle->SoftStop(deviceId);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(28);
+ }
+ return (status);
+}
+
+/******************************************************//**
+ * @brief Handles the device state machine at each step
+ * or at each tick
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES - 1)
+ * For L6208: dummy parameter for compatibility with motor.h
+ * @retval None
+ * @note Must only be called by the timer ISR
+ **********************************************************/
+void BSP_MotorControl_StepClockHandler(uint8_t deviceId)
+{
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->StepClockHandler != 0))
+ {
+ motorDrvHandle->StepClockHandler(deviceId);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(29);
+ }
+}
+/******************************************************//**
+ * @brief Locks until the device state becomes Inactive
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES - 1)
+ * For L6208: dummy parameter for compatibility with motor.h
+ * @retval None
+ **********************************************************/
+void BSP_MotorControl_WaitWhileActive(uint8_t deviceId)
+{
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->WaitWhileActive != 0))
+ {
+ motorDrvHandle->WaitWhileActive(deviceId);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(30);
+ }
+}
+
+/**
+ * @}
+ */
+
+/** @defgroup BSP_MotorControl_Control_Functions BSP MotorControl Control Functions
+ * @{
+ */
+
+/******************************************************//**
+ * @brief Issue the Disable command to the motor driver of the specified device
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES - 1) for stepper motor
+ * For L6208: dummy parameter for compatibility with motor.h
+ * motorId from 0 to MAX_NUMBER_OF_BRUSH_DC_MOTORS for Brush DC motor
+ * @retval None
+ * @note For brush DC motor, when input of different brigdes are parallelized
+ * together, the disabling of one bridge leads to the disabling
+ * of the second one
+ **********************************************************/
+void BSP_MotorControl_CmdDisable(uint8_t deviceId)
+{
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->CmdDisable != 0))
+ {
+ motorDrvHandle->CmdDisable(deviceId);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(31);
+ }
+}
+
+/******************************************************//**
+ * @brief Issues the Enable command to the motor driver of the specified device
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES - 1) for stepper motor
+ * For L6208: dummy parameter for compatibility with motor.h
+ * motorId from 0 to MAX_NUMBER_OF_BRUSH_DC_MOTORS for Brush DC motor
+ * @retval None
+ * @note For brush DC motor, when input of different brigdes are parallelized
+ * together, the enabling of one bridge leads to the enabling
+ * of the second one
+ **********************************************************/
+void BSP_MotorControl_CmdEnable(uint8_t deviceId)
+{
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->CmdEnable != 0))
+ {
+ motorDrvHandle->CmdEnable(deviceId);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(32);
+ }
+}
+
+/******************************************************//**
+ * @brief Issues the GetParam command to the motor driver of the specified device
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES - 1)
+ * @param[in] param Register adress (BSP_MotorControl_ABS_POS, BSP_MotorControl_MARK,...)
+ * @retval Register value
+ **********************************************************/
+uint32_t BSP_MotorControl_CmdGetParam(uint8_t deviceId,
+ uint32_t param)
+{
+ uint32_t value = 0;
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->CmdGetParam != 0))
+ {
+ value = motorDrvHandle->CmdGetParam(deviceId, param);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(33);
+ }
+ return (value);
+}
+
+/******************************************************//**
+ * @brief Issues the GetStatus command to the motor driver of the specified
+ * device for stepper motor,
+ * Get bridge status for Brush DC motor
+ * @param[in] deviceId from 0 to MAX_NUMBER_OF_DEVICES - 1 for stepper motor,
+ bridgeId from 0 for bridge A, 1 for bridge B for brush DC motor
+ * @retval Status Register value for stepper motor,
+ * Bridge state for brush DC motor
+ * @note For stepper motor, once the GetStatus command is performed,
+ * the flags of the status register are reset.
+ * This is not the case when the status register is read with the
+ * GetParam command (via the functions ReadStatusRegister or CmdGetParam).
+ **********************************************************/
+uint16_t BSP_MotorControl_CmdGetStatus(uint8_t deviceId)
+{
+ uint16_t status = 0;
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->CmdGetStatus != 0))
+ {
+ status = motorDrvHandle->CmdGetStatus(deviceId);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(34);
+ }
+ return (status);
+}
+
+/******************************************************//**
+ * @brief Issues the Nop command to the motor driver of the specified device
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES - 1)
+ * @retval None
+ **********************************************************/
+void BSP_MotorControl_CmdNop(uint8_t deviceId)
+{
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->CmdNop != 0))
+ {
+ motorDrvHandle->CmdNop(deviceId);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(35);
+ }
+}
+
+/******************************************************//**
+ * @brief Issues the SetParam command to the motor driver of the specified device
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES - 1)
+ * @param[in] param Register adress (BSP_MotorControl_ABS_POS, BSP_MotorControl_MARK,...)
+ * @param[in] value Value to set in the register
+ * @retval None
+ **********************************************************/
+void BSP_MotorControl_CmdSetParam(uint8_t deviceId,
+ uint32_t param,
+ uint32_t value)
+{
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->CmdSetParam != 0))
+ {
+ motorDrvHandle->CmdSetParam(deviceId, param, value);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(36);
+ }
+}
+
+/******************************************************//**
+ * @brief Reads the Status Register value
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES - 1)
+ * @retval Status register valued
+ * @note The status register flags are not cleared
+ * at the difference with CmdGetStatus()
+ **********************************************************/
+uint16_t BSP_MotorControl_ReadStatusRegister(uint8_t deviceId)
+{
+ uint16_t status = 0;
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->ReadStatusRegister != 0))
+ {
+ status = motorDrvHandle->ReadStatusRegister(deviceId);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(37);
+ }
+ return (status);
+}
+
+/******************************************************//**
+ * @brief Releases the motor driver (pin set to High) of all devices
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES - 1)
+ * @retval None
+ **********************************************************/
+void BSP_MotorControl_ReleaseReset(uint8_t deviceId)
+{
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->ReleaseReset != 0))
+ {
+ motorDrvHandle->ReleaseReset(deviceId);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(38);
+ }
+}
+
+/******************************************************//**
+ * @brief Resets the motor driver (reset pin set to low) of all devices
+ * @retval None
+ **********************************************************/
+void BSP_MotorControl_Reset(uint8_t deviceId)
+{
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->Reset != 0))
+ {
+ motorDrvHandle->Reset(deviceId);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(39);
+ }
+}
+
+/******************************************************//**
+ * @brief Set the stepping mode
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES - 1)
+ * For L6208: dummy parameter for compatibility with motor.h
+ * @param[in] stepMode from full step to 1/16 microstep as specified in
+ * enum BSP_MotorControl_STEP_SEL_t
+ * @retval true if the command is successfully executed, else false
+ **********************************************************/
+bool BSP_MotorControl_SelectStepMode(uint8_t deviceId, motorStepMode_t stepMode)
+{
+ bool value = 0;
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->SelectStepMode != 0))
+ {
+ value = motorDrvHandle->SelectStepMode(deviceId, stepMode);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(40);
+ }
+ return (value);
+}
+
+/******************************************************//**
+ * @brief Specifies the direction
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES - 1)
+ * For L6208: dummy parameter for compatibility with motor.h
+ * @param[in] dir FORWARD or BACKWARD
+ * @note The direction change is only applied if the device
+ * is in INACTIVE state
+ * For L6208: In velocity mode a direction change forces the device to stop and
+ * then run in the new direction. In position mode, if the device is
+ * running, a direction change will generate an error.
+ * @retval None
+ **********************************************************/
+void BSP_MotorControl_SetDirection(uint8_t deviceId, motorDir_t dir)
+{
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->SetDirection != 0))
+ {
+ motorDrvHandle->SetDirection(deviceId, dir);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(41);
+ }
+}
+
+/******************************************************//**
+ * @brief Issues Go To Dir command
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES-1 )
+ * For L6208: dummy parameter for compatibility with motor.h
+ * @param[in] dir movement direction
+ * @param[in] abs_pos absolute position where requested to move
+ * @retval None
+ **********************************************************/
+void BSP_MotorControl_CmdGoToDir(uint8_t deviceId, motorDir_t dir, int32_t abs_pos)
+{
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->CmdGoToDir != 0))
+ {
+ motorDrvHandle->CmdGoToDir(deviceId, dir, abs_pos);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(42);
+ }
+}
+
+/******************************************************//**
+ * @brief Checks if at least one device is busy by checking
+ * busy pin position.
+ * The busy pin is shared between all devices.
+ * @retval One if at least one device is busy, otherwise zero
+ **********************************************************/
+uint8_t BSP_MotorControl_CheckBusyHw(void)
+{
+ uint8_t value = 0;
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->CheckBusyHw != 0))
+ {
+ value = motorDrvHandle->CheckBusyHw();
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(43);
+ }
+ return (value);
+}
+
+/******************************************************//**
+ * @brief Checks if at least one device has an alarm flag set
+ * by reading flag pin position.
+ * The flag pin is shared between all devices.
+ * @retval One if at least one device has an alarm flag set ,
+ * otherwise zero
+ **********************************************************/
+uint8_t BSP_MotorControl_CheckStatusHw(void)
+{
+ uint8_t value = 0;
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->CheckStatusHw != 0))
+ {
+ value = motorDrvHandle->CheckStatusHw();
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(44);
+ }
+ return (value);
+}
+
+/******************************************************//**
+ * @brief Issues Go Until command
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES-1 )
+ * @param[in] action ACTION_RESET or ACTION_COPY
+ * @param[in] dir movement direction
+ * @param[in] speed in 2^-28 step/tick
+ * @retval None
+ **********************************************************/
+void BSP_MotorControl_CmdGoUntil(uint8_t deviceId, motorAction_t action, motorDir_t dir, uint32_t speed)
+{
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->CmdGoUntil != 0))
+ {
+ motorDrvHandle->CmdGoUntil(deviceId, action, dir, speed);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(45);
+ }
+}
+
+/******************************************************//**
+ * @brief Immediately stops the motor and disable the power bridge.
+ * @param[in] deviceId from 0 to MAX_NUMBER_OF_DEVICES-1 for stepper motor
+ * motorId from 0 to MAX_NUMBER_OF_BRUSH_DC_MOTORS for Brush DC motor
+ * @retval None
+ * @note if two Brush DC motors use the same power bridge, the
+ * power bridge will be disable only if the two motors are
+ * stopped
+ **********************************************************/
+void BSP_MotorControl_CmdHardHiZ(uint8_t deviceId)
+{
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->CmdHardHiZ != 0))
+ {
+ motorDrvHandle->CmdHardHiZ(deviceId);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(46);
+ }
+}
+
+/******************************************************//**
+ * @brief Issues Release SW command
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES-1 )
+ * @param[in] action
+ * @param[in] dir movement direction
+ * @retval None
+ **********************************************************/
+void BSP_MotorControl_CmdReleaseSw(uint8_t deviceId, motorAction_t action, motorDir_t dir)
+{
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->CmdReleaseSw != 0))
+ {
+ motorDrvHandle->CmdReleaseSw(deviceId, action, dir);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(47);
+ }
+}
+
+/******************************************************//**
+ * @brief Issues Reset Device command
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES-1 )
+ * @retval None
+ **********************************************************/
+void BSP_MotorControl_CmdResetDevice(uint8_t deviceId)
+{
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->CmdResetDevice != 0))
+ {
+ motorDrvHandle->CmdResetDevice(deviceId);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(48);
+ }
+}
+
+/******************************************************//**
+ * @brief Issues Reset Pos command
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES-1 )
+ * @retval None
+ **********************************************************/
+void BSP_MotorControl_CmdResetPos(uint8_t deviceId)
+{
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->CmdResetPos != 0))
+ {
+ motorDrvHandle->CmdResetPos(deviceId);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(49);
+ }
+}
+
+/******************************************************//**
+ * @brief Issues Run command
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES-1 )
+ * @param[in] dir Movement direction (FORWARD, BACKWARD)
+ * @param[in] speed in 2^-28 step/tick
+ * @retval None
+ **********************************************************/
+void BSP_MotorControl_CmdRun(uint8_t deviceId, motorDir_t dir, uint32_t speed)
+{
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->CmdRun != 0))
+ {
+ motorDrvHandle->CmdRun(deviceId, dir, speed);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(50);
+ }
+}
+
+/******************************************************//**
+ * @brief Issues Soft HiZ command
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES-1 )
+ * @retval None
+ **********************************************************/
+void BSP_MotorControl_CmdSoftHiZ(uint8_t deviceId)
+{
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->CmdSoftHiZ != 0))
+ {
+ motorDrvHandle->CmdSoftHiZ(deviceId);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(51);
+ }
+}
+
+/******************************************************//**
+ * @brief Issues Step Clock command
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES-1 )
+ * @param[in] dir Movement direction (FORWARD, BACKWARD)
+ * @retval None
+ **********************************************************/
+void BSP_MotorControl_CmdStepClock(uint8_t deviceId, motorDir_t dir)
+{
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->CmdStepClock != 0))
+ {
+ motorDrvHandle->CmdStepClock(deviceId, dir);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(52);
+ }
+}
+
+/******************************************************//**
+ * @brief Fetch and clear status flags of all devices
+ * by issuing a GET_STATUS command simultaneously
+ * to all devices.
+ * Then, the fetched status of each device can be retrieved
+ * by using the BSP_MotorControl_GetFetchedStatus function
+ * provided there is no other calls to functions which
+ * use the SPI in between.
+ * @retval None
+ **********************************************************/
+void BSP_MotorControl_FetchAndClearAllStatus(void)
+{
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->FetchAndClearAllStatus != 0))
+ {
+ motorDrvHandle->FetchAndClearAllStatus();
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(53);
+ }
+}
+
+/******************************************************//**
+ * @brief Get the value of the STATUS register which was
+ * fetched by using BSP_MotorControl_FetchAndClearAllStatus.
+ * The fetched values are available as long as there is
+ * no other calls to functions which use the SPI.
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES-1 )
+ * @retval Last fetched value of the STATUS register
+ **********************************************************/
+uint16_t BSP_MotorControl_GetFetchedStatus(uint8_t deviceId)
+{
+ uint16_t value = 0;
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->GetFetchedStatus != 0))
+ {
+ value = motorDrvHandle->GetFetchedStatus(deviceId);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(54);
+ }
+ return (value);
+}
+
+/******************************************************//**
+ * @brief Return the number of devices in the daisy chain
+ * @retval number of devices from 1 to MAX_NUMBER_OF_DEVICES
+ **********************************************************/
+uint8_t BSP_MotorControl_GetNbDevices(void)
+{
+ uint8_t value = 0;
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->GetNbDevices != 0))
+ {
+ value = motorDrvHandle->GetNbDevices();
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(55);
+ }
+ return (value);
+}
+
+/******************************************************//**
+ * @brief Checks if the specified device is busy
+ * by reading the Busy bit of its status Register
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES-1 )
+ * @retval true if device is busy, else false
+ **********************************************************/
+bool BSP_MotorControl_IsDeviceBusy(uint8_t deviceId)
+{
+ bool value = 0;
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->IsDeviceBusy != 0))
+ {
+ value = motorDrvHandle->IsDeviceBusy(deviceId);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(56);
+ }
+ return (value);
+}
+
+/******************************************************//**
+ * @brief Sends commands stored in the queue by previously
+ * BSP_MotorControl_QueueCommands
+ * @retval None
+ *********************************************************/
+void BSP_MotorControl_SendQueuedCommands(void)
+{
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->SendQueuedCommands != 0))
+ {
+ motorDrvHandle->SendQueuedCommands();
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(57);
+ }
+}
+
+/******************************************************//**
+ * @brief Put commands in queue before synchronous sending
+ * done by calling BSP_MotorControl_SendQueuedCommands.
+ * Any call to functions that use the SPI between the calls of
+ * BSP_MotorControl_QueueCommands and BSP_MotorControl_SendQueuedCommands
+ * will corrupt the queue.
+ * A command for each device of the daisy chain must be
+ * specified before calling BSP_MotorControl_SendQueuedCommands.
+ * @param[in] deviceId deviceId (from 0 to MAX_NUMBER_OF_DEVICES-1 )
+ * @param[in] command Command to queue (all BSP_MotorControl commmands
+ * except SET_PARAM, GET_PARAM, GET_STATUS)
+ * @param[in] value argument of the command to queue
+ * @retval None
+ *********************************************************/
+void BSP_MotorControl_QueueCommands(uint8_t deviceId, uint8_t command, int32_t value)
+{
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->QueueCommands != 0))
+ {
+ motorDrvHandle->QueueCommands(deviceId, command, value);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(58);
+ }
+}
+
+/******************************************************//**
+ * @brief Locks until all devices become not busy
+ * @retval None
+ **********************************************************/
+void BSP_MotorControl_WaitForAllDevicesNotBusy(void)
+{
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->WaitForAllDevicesNotBusy != 0))
+ {
+ motorDrvHandle->WaitForAllDevicesNotBusy();
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(59);
+ }
+}
+
+/******************************************************//**
+ * @brief Handler of the busy interrupt which calls the user callback (if defined)
+ * @retval None
+ **********************************************************/
+void BSP_MotorControl_BusyInterruptHandler(void)
+{
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->BusyInterruptHandler != 0))
+ {
+ motorDrvHandle->BusyInterruptHandler();
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(61);
+ }
+}
+
+/******************************************************//**
+ * @brief Issues Soft Stop command
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES-1 )
+ * @retval None
+ **********************************************************/
+void BSP_MotorControl_CmdSoftStop(uint8_t deviceId)
+{
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->CmdSoftStop != 0))
+ {
+ motorDrvHandle->CmdSoftStop(deviceId);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(62);
+ }
+}
+
+/******************************************************//**
+ * @brief Start the step clock by using the given frequency
+ * @param[in] newFreq in Hz of the step clock
+ * @retval None
+ * @note The frequency is directly the current speed of the device
+ **********************************************************/
+void BSP_MotorControl_StartStepClock(uint16_t newFreq)
+{
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->StartStepClock != 0))
+ {
+ motorDrvHandle->StartStepClock(newFreq);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(63);
+ }
+}
+
+/******************************************************//**
+ * @brief Stops the PWM uses for the step clock
+ * @retval None
+ **********************************************************/
+void BSP_MotorControl_StopStepClock(void)
+{
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->StopStepClock != 0))
+ {
+ motorDrvHandle->StopStepClock();
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(64);
+ }
+}
+
+/******************************************************//**
+ * @brief Set the dual full bridge configuration
+ * @param[in] config bridge configuration to apply
+ * for L6206, see dualFullBridgeConfig_t enum
+ * for Stspin240, 0 for a mono brush DC configuration, 1 for a dual brush DC configuration
+ * for Stspin250, 0 only as no dual brush DC configuration is supported
+ * @retval None
+ **********************************************************/
+void BSP_MotorControl_SetDualFullBridgeConfig(uint8_t config)
+{
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->SetDualFullBridgeConfig != 0))
+ {
+ motorDrvHandle->SetDualFullBridgeConfig(config);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(65);
+ }
+}
+
+/******************************************************//**
+ * @brief Get the PWM frequency of the bridge input
+ * @param[in] bridgeId from 0 for bridge A to 1 for bridge B for brush DC motor
+ * bridgeId must be 0 for L6208 (both bridges are set with the same frequency)
+ * @retval Freq in Hz
+ **********************************************************/
+uint32_t BSP_MotorControl_GetBridgeInputPwmFreq(uint8_t bridgeId)
+{
+ uint32_t pwmFreq = 0;
+
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->GetBridgeInputPwmFreq != 0))
+ {
+ pwmFreq = motorDrvHandle->GetBridgeInputPwmFreq(bridgeId);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(66);
+ }
+ return (pwmFreq);
+}
+
+/******************************************************//**
+ * @brief Changes the PWM frequency of the bridge input
+ * @param[in] bridgeId from 0 for bridge A to 1 for bridge B for brush DC motor
+ * bridgeId must be 0 for L6208 (both bridges are set with the same frequency)
+ * @param[in] newFreq in Hz up to 100000Hz
+ * @retval None
+ **********************************************************/
+void BSP_MotorControl_SetBridgeInputPwmFreq(uint8_t bridgeId, uint32_t newFreq)
+{
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->SetBridgeInputPwmFreq != 0))
+ {
+ motorDrvHandle->SetBridgeInputPwmFreq(bridgeId, newFreq);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(67);
+ }
+}
+
+/******************************************************//**
+ * @brief Select the mode to stop the motor. When the motor
+ * is stopped, if autoHiZ is TRUE, the power bridges are disabled
+ * if autoHiZ is FALSE, the power bridges are kept enabled.
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES - 1)
+ * deviceId dummy parameter for compatibility with motor.h
+ * @param[in] stopMode selected stop mode
+ * @retval None
+ **********************************************************/
+void BSP_MotorControl_SetStopMode(uint8_t deviceId, motorStopMode_t stopMode)
+{
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->SetStopMode != 0))
+ {
+ motorDrvHandle->SetStopMode(deviceId, stopMode);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(68);
+ }
+}
+
+/******************************************************//**
+ * @brief Get the selected stop mode
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES - 1)
+ * For L6208: dummy parameter for compatibility with motor.h
+ * @retval the selected stop mode
+ **********************************************************/
+motorStopMode_t BSP_MotorControl_GetStopMode(uint8_t deviceId)
+{
+ motorStopMode_t stopMode = UNKNOW_STOP_MODE;
+
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->GetStopMode != 0))
+ {
+ stopMode = motorDrvHandle->GetStopMode(deviceId);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(69);
+ }
+ return (stopMode);
+}
+
+/******************************************************//**
+ * @brief Select the motor decay mode
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES - 1)
+ * For L6208: dummy parameter for compatibility with motor.h
+ * @param[in] decayMode (SLOW_DECAY or FAST_DECAY)
+ * @retval None
+ **********************************************************/
+void BSP_MotorControl_SetDecayMode(uint8_t deviceId, motorDecayMode_t decayMode)
+{
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->SetDecayMode != 0))
+ {
+ motorDrvHandle->SetDecayMode(deviceId, decayMode);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(70);
+ }
+}
+
+/******************************************************//**
+ * @brief Get the motor decay mode
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES - 1)
+ * For L6208: dummy parameter for compatibility with motor.h
+ * @retval decay mode
+ **********************************************************/
+motorDecayMode_t BSP_MotorControl_GetDecayMode(uint8_t deviceId)
+{
+ motorDecayMode_t decayMode = UNKNOW_DECAY;
+
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->GetDecayMode != 0))
+ {
+ decayMode = motorDrvHandle->GetDecayMode(deviceId);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(71);
+ }
+ return (decayMode);
+}
+
+/******************************************************//**
+ * @brief Get the motor step mode
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES - 1)
+ * For L6208: dummy parameter for compatibility with motor.h
+ * @retval step mode
+ **********************************************************/
+motorStepMode_t BSP_MotorControl_GetStepMode(uint8_t deviceId)
+{
+ motorStepMode_t stepMode = STEP_MODE_UNKNOW;
+
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->GetStepMode != 0))
+ {
+ stepMode = motorDrvHandle->GetStepMode(deviceId);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(72);
+ }
+ return (stepMode);
+}
+
+/******************************************************//**
+ * @brief Get the motor direction
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES - 1)
+ * For L6208: dummy parameter for compatibility with motor.h
+ * @retval direction
+ **********************************************************/
+motorDir_t BSP_MotorControl_GetDirection(uint8_t deviceId)
+{
+ motorDir_t dir = UNKNOW_DIR;
+
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->GetDirection != 0))
+ {
+ dir = motorDrvHandle->GetDirection(deviceId);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(73);
+ }
+ return (dir);
+}
+
+/******************************************************//**
+ * @brief Exit specified device from reset
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES-1 )
+ * @retval None
+ **********************************************************/
+void BSP_MotorControl_ExitDeviceFromReset(uint8_t deviceId)
+{
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->ExitDeviceFromReset != 0))
+ {
+ motorDrvHandle->ExitDeviceFromReset(deviceId);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(74);
+ }
+}
+
+/******************************************************//**
+ * @brief Get the motor torque
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES - 1)
+ * @param[in] torqueMode Torque mode as specified in enum motorTorqueMode_t
+ * @retval torque value in % (from 0 to 100)
+ **********************************************************/
+uint8_t BSP_MotorControl_GetTorque(uint8_t deviceId, motorTorqueMode_t torqueMode)
+{
+ uint8_t torqueValue = 0;
+
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->GetTorque != 0))
+ {
+ torqueValue = motorDrvHandle->GetTorque(deviceId, torqueMode);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(76);
+ }
+ return (torqueValue);
+}
+
+/******************************************************//**
+ * @brief Set the motor torque
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES - 1)
+ * @param[in] torqueMode Torque mode as specified in enum motorTorqueMode_t
+ * @param[in] torqueValue in % (from 0 to 100)
+ * @retval None
+ **********************************************************/
+void BSP_MotorControl_SetTorque(uint8_t deviceId, motorTorqueMode_t torqueMode, uint8_t torqueValue)
+{
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->SetTorque != 0))
+ {
+ motorDrvHandle->SetTorque(deviceId, torqueMode, torqueValue);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(75);
+ }
+}
+
+/******************************************************//**
+ * @brief Set the PWM frequency of Ref
+ * @param[in] refId Id of the targeted Ref
+ * @param[in] newFreq frequency in Hz
+ * @retval None
+ **********************************************************/
+void BSP_MotorControl_SetRefFreq(uint8_t refId, uint32_t newFreq)
+{
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->SetRefFreq != 0))
+ {
+ motorDrvHandle->SetRefFreq(refId, newFreq);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(77);
+ }
+}
+
+/******************************************************//**
+ * @brief Return the PWM frequency of Ref
+ * @param[in] refId Id of the targeted Ref
+ * @retval frequency in Hz
+ **********************************************************/
+uint32_t BSP_MotorControl_GetRefFreq(uint8_t refId)
+{
+ uint32_t value = 0;
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->GetRefFreq != 0))
+ {
+ value = motorDrvHandle->GetRefFreq(refId);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(78);
+ }
+ return (value);
+}
+
+/******************************************************//**
+ * @brief Set the PWM duty cycle of Ref
+ * @param[in] refId Id of the targeted Ref
+ * @param[in] newDc duty cycle in % (from 0 to 100)
+ * @retval None
+ **********************************************************/
+void BSP_MotorControl_SetRefDc(uint8_t refId, uint8_t newDc)
+{
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->SetRefDc != 0))
+ {
+ motorDrvHandle->SetRefDc(refId, newDc);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(79);
+ }
+}
+
+/******************************************************//**
+ * @brief Return the PWM duty cycle of Ref
+ * @param[in] refId Id of the targeted Ref
+ * @retval duty cycle in % (from 0 to 100)
+ **********************************************************/
+uint8_t BSP_MotorControl_GetRefDc(uint8_t refId)
+{
+ uint8_t value = 0;
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->GetRefDc != 0))
+ {
+ value = motorDrvHandle->GetRefDc(refId);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(80);
+ }
+ return (value);
+}
+
+/******************************************************//**
+ * @brief Set the number of devices in the daisy chain
+ * @param[in] id Component Id (L6474, Powerstep01,...)
+ * @param[in] nbDevices the number of devices to be used
+ * from 1 to MAX_NUMBER_OF_DEVICES
+ * @retval TRUE if successfull, FALSE if failure, attempt
+ * to set a number of devices greater than MAX_NUMBER_OF_DEVICES
+ **********************************************************/
+bool BSP_MotorControl_SetNbDevices(uint16_t id, uint8_t nbDevices)
+{
+ MotorControlBoardId = id;
+ bool status = FALSE;
+ if (id == BSP_MOTOR_CONTROL_BOARD_ID_L6474)
+ {
+ motorDrvHandle = L6474_GetMotorHandle();
+ }
+ else if (id == BSP_MOTOR_CONTROL_BOARD_ID_POWERSTEP01)
+ {
+ motorDrvHandle = Powerstep01_GetMotorHandle();
+ }
+ else if (id == BSP_MOTOR_CONTROL_BOARD_ID_L6206)
+ {
+ motorDrvHandle = L6206_GetMotorHandle();
+ }
+ else if (id == BSP_MOTOR_CONTROL_BOARD_ID_L6208)
+ {
+ motorDrvHandle = L6208_GetMotorHandle();
+ }
+ else if (id == BSP_MOTOR_CONTROL_BOARD_ID_STSPIN220)
+ {
+ motorDrvHandle = Stspin220_GetMotorHandle();
+ }
+ else if ( (id == BSP_MOTOR_CONTROL_BOARD_ID_L6470) ||
+ (id == BSP_MOTOR_CONTROL_BOARD_ID_L6472) )
+ {
+ motorDrvHandle = l647x_GetMotorHandle();
+ }
+ else if ( (id == BSP_MOTOR_CONTROL_BOARD_ID_L6480) ||
+ (id == BSP_MOTOR_CONTROL_BOARD_ID_L6482) )
+ {
+ motorDrvHandle = l648x_GetMotorHandle();
+ }
+ else if ((id == BSP_MOTOR_CONTROL_BOARD_ID_STSPIN240)||
+ (id == BSP_MOTOR_CONTROL_BOARD_ID_STSPIN250))
+ {
+ motorDrvHandle = Stspin240_250_GetMotorHandle();
+ }
+ else
+ {
+ motorDrvHandle = 0;
+ }
+ if ((motorDrvHandle != 0)&&
+ (motorDrvHandle->SetNbDevices != 0)&&
+ (nbDevices !=0))
+ {
+ status = motorDrvHandle->SetNbDevices(nbDevices);
+ }
+ return (status);
+}
+
+/******************************************************//**
+ * @brief Set the parameter param in the motor driver of the specified device
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES - 1)
+ * @param[in] param Register adress (BSP_MotorControl_ABS_POS, BSP_MotorControl_MARK,...)
+ * @param[in] value Floating point value to convert and set into the register
+ * @retval None
+ **********************************************************/
+bool BSP_MotorControl_SetAnalogValue(uint8_t deviceId, uint32_t param, float value)
+{
+ bool status = FALSE;
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->CmdSetParam != 0))
+ {
+ status = motorDrvHandle->SetAnalogValue(deviceId, param, value);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(82);
+ }
+ return (status);
+}
+
+/******************************************************//**
+ * @brief Get the parameter param in the motor driver of the specified device
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES - 1)
+ * @param[in] param Register adress (BSP_MotorControl_ABS_POS, BSP_MotorControl_MARK,...)
+ * @retval Floating point value corresponding to the register value
+ **********************************************************/
+float BSP_MotorControl_GetAnalogValue(uint8_t deviceId, uint32_t param)
+{
+ float value = 0;
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->GetAnalogValue != 0))
+ {
+ value = motorDrvHandle->GetAnalogValue(deviceId, param);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(83);
+ }
+ return (value);
+}
+
+/******************************************************//**
+ * @brief Enable or disable the torque boost
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES - 1)
+ * @param[in] enable true to enable torque boost, false to disable
+ * @retval None
+ **********************************************************/
+void BSP_MotorControl_SetTorqueBoostEnable(uint8_t deviceId, bool enable)
+{
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->SetTorqueBoostEnable != 0))
+ {
+ motorDrvHandle->SetTorqueBoostEnable(deviceId, enable);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(84);
+ }
+}
+
+/******************************************************//**
+ * @brief Get the torque boost feature status
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES - 1)
+ * @retval TRUE if enabled, FALSE if disabled
+ **********************************************************/
+bool BSP_MotorControl_GetTorqueBoostEnable(uint8_t deviceId)
+{
+ bool status = FALSE;
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->GetTorqueBoostEnable != 0))
+ {
+ status = motorDrvHandle->GetTorqueBoostEnable(deviceId);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(85);
+ }
+ return status;
+}
+
+/******************************************************//**
+ * @brief Set the torque boost threshold
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES - 1)
+ * @param[in] speedThreshold speed threshold above which the step mode is
+ * changed to full step
+ * @retval None
+ **********************************************************/
+void BSP_MotorControl_SetTorqueBoostThreshold(uint8_t deviceId, uint16_t speedThreshold)
+{
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->SetTorqueBoostThreshold != 0))
+ {
+ motorDrvHandle->SetTorqueBoostThreshold(deviceId, speedThreshold);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(86);
+ }
+}
+
+/******************************************************//**
+ * @brief Get the torque boost threshold
+ * @param[in] deviceId (from 0 to MAX_NUMBER_OF_DEVICES - 1)
+ * @retval the torque boost threshold above which the step mode is
+ * changed to full step
+ **********************************************************/
+uint16_t BSP_MotorControl_GetTorqueBoostThreshold(uint8_t deviceId)
+{
+ uint16_t value = 0;
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->GetTorqueBoostThreshold != 0))
+ {
+ value = motorDrvHandle->GetTorqueBoostThreshold(deviceId);
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(87);
+ }
+ return value;
+}
+
+/******************************************************//**
+ * @brief Get the dual full bridge configuration
+ * return config bridge configuration to apply
+ * for L6206, see dualFullBridgeConfig_t enum
+ * for Stspin240, 0 for a mono brush DC configuration, 1 for a dual brush DC configuration
+ * for Stspin250, 0 only as no dual brush DC configuration is supported
+ **********************************************************/
+uint8_t BSP_MotorControl_GetDualFullBridgeConfig(void)
+{
+ uint8_t value = 0;
+
+ if ((motorDrvHandle != 0)&&(motorDrvHandle->GetDualFullBridgeConfig != 0))
+ {
+ value = motorDrvHandle->GetDualFullBridgeConfig();
+ }
+ else
+ {
+ MOTOR_CONTROL_ERROR_UNDEFINED_FUNCTION(88);
+ }
+
+ return value;
+}
+
+/**
+ * @}
+ */
+
+/**
+ * @}
+ */
+
+/**
+ * @}
+ */
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/stepper/steppermotor_F401RE/Core/Startup/startup_stm32f401retx.s b/stepper/steppermotor_F401RE/Core/Startup/startup_stm32f401retx.s
new file mode 100644
index 0000000..cc9a847
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Core/Startup/startup_stm32f401retx.s
@@ -0,0 +1,432 @@
+/**
+ ******************************************************************************
+ * @file startup_stm32f401xe.s
+ * @author MCD Application Team
+ * @brief STM32F401xExx Devices vector table for GCC based toolchains.
+ * This module performs:
+ * - Set the initial SP
+ * - Set the initial PC == Reset_Handler,
+ * - Set the vector table entries with the exceptions ISR address
+ * - Branches to main in the C library (which eventually
+ * calls main()).
+ * After Reset the Cortex-M4 processor is in Thread mode,
+ * priority is Privileged, and the Stack is set to Main.
+ ******************************************************************************
+ * @attention
+ *
+ * © Copyright (c) 2017 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software component is licensed by ST under BSD 3-Clause license,
+ * the "License"; You may not use this file except in compliance with the
+ * License. You may obtain a copy of the License at:
+ * opensource.org/licenses/BSD-3-Clause
+ *
+ ******************************************************************************
+ */
+
+ .syntax unified
+ .cpu cortex-m4
+ .fpu softvfp
+ .thumb
+
+.global g_pfnVectors
+.global Default_Handler
+
+/* start address for the initialization values of the .data section.
+defined in linker script */
+.word _sidata
+/* start address for the .data section. defined in linker script */
+.word _sdata
+/* end address for the .data section. defined in linker script */
+.word _edata
+/* start address for the .bss section. defined in linker script */
+.word _sbss
+/* end address for the .bss section. defined in linker script */
+.word _ebss
+/* stack used for SystemInit_ExtMemCtl; always internal RAM used */
+
+/**
+ * @brief This is the code that gets called when the processor first
+ * starts execution following a reset event. Only the absolutely
+ * necessary set is performed, after which the application
+ * supplied main() routine is called.
+ * @param None
+ * @retval : None
+*/
+
+ .section .text.Reset_Handler
+ .weak Reset_Handler
+ .type Reset_Handler, %function
+Reset_Handler:
+ ldr sp, =_estack /* set stack pointer */
+
+/* Copy the data segment initializers from flash to SRAM */
+ movs r1, #0
+ b LoopCopyDataInit
+
+CopyDataInit:
+ ldr r3, =_sidata
+ ldr r3, [r3, r1]
+ str r3, [r0, r1]
+ adds r1, r1, #4
+
+LoopCopyDataInit:
+ ldr r0, =_sdata
+ ldr r3, =_edata
+ adds r2, r0, r1
+ cmp r2, r3
+ bcc CopyDataInit
+ ldr r2, =_sbss
+ b LoopFillZerobss
+/* Zero fill the bss segment. */
+FillZerobss:
+ movs r3, #0
+ str r3, [r2], #4
+
+LoopFillZerobss:
+ ldr r3, = _ebss
+ cmp r2, r3
+ bcc FillZerobss
+
+/* Call the clock system intitialization function.*/
+ bl SystemInit
+/* Call static constructors */
+ bl __libc_init_array
+/* Call the application's entry point.*/
+ bl main
+ bx lr
+.size Reset_Handler, .-Reset_Handler
+
+/**
+ * @brief This is the code that gets called when the processor receives an
+ * unexpected interrupt. This simply enters an infinite loop, preserving
+ * the system state for examination by a debugger.
+ * @param None
+ * @retval None
+*/
+ .section .text.Default_Handler,"ax",%progbits
+Default_Handler:
+Infinite_Loop:
+ b Infinite_Loop
+ .size Default_Handler, .-Default_Handler
+/******************************************************************************
+*
+* The minimal vector table for a Cortex M3. Note that the proper constructs
+* must be placed on this to ensure that it ends up at physical address
+* 0x0000.0000.
+*
+*******************************************************************************/
+ .section .isr_vector,"a",%progbits
+ .type g_pfnVectors, %object
+ .size g_pfnVectors, .-g_pfnVectors
+
+g_pfnVectors:
+ .word _estack
+ .word Reset_Handler
+ .word NMI_Handler
+ .word HardFault_Handler
+ .word MemManage_Handler
+ .word BusFault_Handler
+ .word UsageFault_Handler
+ .word 0
+ .word 0
+ .word 0
+ .word 0
+ .word SVC_Handler
+ .word DebugMon_Handler
+ .word 0
+ .word PendSV_Handler
+ .word SysTick_Handler
+
+ /* External Interrupts */
+ .word WWDG_IRQHandler /* Window WatchDog */
+ .word PVD_IRQHandler /* PVD through EXTI Line detection */
+ .word TAMP_STAMP_IRQHandler /* Tamper and TimeStamps through the EXTI line */
+ .word RTC_WKUP_IRQHandler /* RTC Wakeup through the EXTI line */
+ .word FLASH_IRQHandler /* FLASH */
+ .word RCC_IRQHandler /* RCC */
+ .word EXTI0_IRQHandler /* EXTI Line0 */
+ .word EXTI1_IRQHandler /* EXTI Line1 */
+ .word EXTI2_IRQHandler /* EXTI Line2 */
+ .word EXTI3_IRQHandler /* EXTI Line3 */
+ .word EXTI4_IRQHandler /* EXTI Line4 */
+ .word DMA1_Stream0_IRQHandler /* DMA1 Stream 0 */
+ .word DMA1_Stream1_IRQHandler /* DMA1 Stream 1 */
+ .word DMA1_Stream2_IRQHandler /* DMA1 Stream 2 */
+ .word DMA1_Stream3_IRQHandler /* DMA1 Stream 3 */
+ .word DMA1_Stream4_IRQHandler /* DMA1 Stream 4 */
+ .word DMA1_Stream5_IRQHandler /* DMA1 Stream 5 */
+ .word DMA1_Stream6_IRQHandler /* DMA1 Stream 6 */
+ .word ADC_IRQHandler /* ADC1, ADC2 and ADC3s */
+ .word 0 /* Reserved */
+ .word 0 /* Reserved */
+ .word 0 /* Reserved */
+ .word 0 /* Reserved */
+ .word EXTI9_5_IRQHandler /* External Line[9:5]s */
+ .word TIM1_BRK_TIM9_IRQHandler /* TIM1 Break and TIM9 */
+ .word TIM1_UP_TIM10_IRQHandler /* TIM1 Update and TIM10 */
+ .word TIM1_TRG_COM_TIM11_IRQHandler /* TIM1 Trigger and Commutation and TIM11 */
+ .word TIM1_CC_IRQHandler /* TIM1 Capture Compare */
+ .word TIM2_IRQHandler /* TIM2 */
+ .word TIM3_IRQHandler /* TIM3 */
+ .word TIM4_IRQHandler /* TIM4 */
+ .word I2C1_EV_IRQHandler /* I2C1 Event */
+ .word I2C1_ER_IRQHandler /* I2C1 Error */
+ .word I2C2_EV_IRQHandler /* I2C2 Event */
+ .word I2C2_ER_IRQHandler /* I2C2 Error */
+ .word SPI1_IRQHandler /* SPI1 */
+ .word SPI2_IRQHandler /* SPI2 */
+ .word USART1_IRQHandler /* USART1 */
+ .word USART2_IRQHandler /* USART2 */
+ .word 0 /* Reserved */
+ .word EXTI15_10_IRQHandler /* External Line[15:10]s */
+ .word RTC_Alarm_IRQHandler /* RTC Alarm (A and B) through EXTI Line */
+ .word OTG_FS_WKUP_IRQHandler /* USB OTG FS Wakeup through EXTI line */
+ .word 0 /* Reserved */
+ .word 0 /* Reserved */
+ .word 0 /* Reserved */
+ .word 0 /* Reserved */
+ .word DMA1_Stream7_IRQHandler /* DMA1 Stream7 */
+ .word 0 /* Reserved */
+ .word SDIO_IRQHandler /* SDIO */
+ .word TIM5_IRQHandler /* TIM5 */
+ .word SPI3_IRQHandler /* SPI3 */
+ .word 0 /* Reserved */
+ .word 0 /* Reserved */
+ .word 0 /* Reserved */
+ .word 0 /* Reserved */
+ .word DMA2_Stream0_IRQHandler /* DMA2 Stream 0 */
+ .word DMA2_Stream1_IRQHandler /* DMA2 Stream 1 */
+ .word DMA2_Stream2_IRQHandler /* DMA2 Stream 2 */
+ .word DMA2_Stream3_IRQHandler /* DMA2 Stream 3 */
+ .word DMA2_Stream4_IRQHandler /* DMA2 Stream 4 */
+ .word 0 /* Reserved */
+ .word 0 /* Reserved */
+ .word 0 /* Reserved */
+ .word 0 /* Reserved */
+ .word 0 /* Reserved */
+ .word 0 /* Reserved */
+ .word OTG_FS_IRQHandler /* USB OTG FS */
+ .word DMA2_Stream5_IRQHandler /* DMA2 Stream 5 */
+ .word DMA2_Stream6_IRQHandler /* DMA2 Stream 6 */
+ .word DMA2_Stream7_IRQHandler /* DMA2 Stream 7 */
+ .word USART6_IRQHandler /* USART6 */
+ .word I2C3_EV_IRQHandler /* I2C3 event */
+ .word I2C3_ER_IRQHandler /* I2C3 error */
+ .word 0 /* Reserved */
+ .word 0 /* Reserved */
+ .word 0 /* Reserved */
+ .word 0 /* Reserved */
+ .word 0 /* Reserved */
+ .word 0 /* Reserved */
+ .word 0 /* Reserved */
+ .word FPU_IRQHandler /* FPU */
+ .word 0 /* Reserved */
+ .word 0 /* Reserved */
+ .word SPI4_IRQHandler /* SPI4 */
+
+/*******************************************************************************
+*
+* Provide weak aliases for each Exception handler to the Default_Handler.
+* As they are weak aliases, any function with the same name will override
+* this definition.
+*
+*******************************************************************************/
+ .weak NMI_Handler
+ .thumb_set NMI_Handler,Default_Handler
+
+ .weak HardFault_Handler
+ .thumb_set HardFault_Handler,Default_Handler
+
+ .weak MemManage_Handler
+ .thumb_set MemManage_Handler,Default_Handler
+
+ .weak BusFault_Handler
+ .thumb_set BusFault_Handler,Default_Handler
+
+ .weak UsageFault_Handler
+ .thumb_set UsageFault_Handler,Default_Handler
+
+ .weak SVC_Handler
+ .thumb_set SVC_Handler,Default_Handler
+
+ .weak DebugMon_Handler
+ .thumb_set DebugMon_Handler,Default_Handler
+
+ .weak PendSV_Handler
+ .thumb_set PendSV_Handler,Default_Handler
+
+ .weak SysTick_Handler
+ .thumb_set SysTick_Handler,Default_Handler
+
+ .weak WWDG_IRQHandler
+ .thumb_set WWDG_IRQHandler,Default_Handler
+
+ .weak PVD_IRQHandler
+ .thumb_set PVD_IRQHandler,Default_Handler
+
+ .weak TAMP_STAMP_IRQHandler
+ .thumb_set TAMP_STAMP_IRQHandler,Default_Handler
+
+ .weak RTC_WKUP_IRQHandler
+ .thumb_set RTC_WKUP_IRQHandler,Default_Handler
+
+ .weak FLASH_IRQHandler
+ .thumb_set FLASH_IRQHandler,Default_Handler
+
+ .weak RCC_IRQHandler
+ .thumb_set RCC_IRQHandler,Default_Handler
+
+ .weak EXTI0_IRQHandler
+ .thumb_set EXTI0_IRQHandler,Default_Handler
+
+ .weak EXTI1_IRQHandler
+ .thumb_set EXTI1_IRQHandler,Default_Handler
+
+ .weak EXTI2_IRQHandler
+ .thumb_set EXTI2_IRQHandler,Default_Handler
+
+ .weak EXTI3_IRQHandler
+ .thumb_set EXTI3_IRQHandler,Default_Handler
+
+ .weak EXTI4_IRQHandler
+ .thumb_set EXTI4_IRQHandler,Default_Handler
+
+ .weak DMA1_Stream0_IRQHandler
+ .thumb_set DMA1_Stream0_IRQHandler,Default_Handler
+
+ .weak DMA1_Stream1_IRQHandler
+ .thumb_set DMA1_Stream1_IRQHandler,Default_Handler
+
+ .weak DMA1_Stream2_IRQHandler
+ .thumb_set DMA1_Stream2_IRQHandler,Default_Handler
+
+ .weak DMA1_Stream3_IRQHandler
+ .thumb_set DMA1_Stream3_IRQHandler,Default_Handler
+
+ .weak DMA1_Stream4_IRQHandler
+ .thumb_set DMA1_Stream4_IRQHandler,Default_Handler
+
+ .weak DMA1_Stream5_IRQHandler
+ .thumb_set DMA1_Stream5_IRQHandler,Default_Handler
+
+ .weak DMA1_Stream6_IRQHandler
+ .thumb_set DMA1_Stream6_IRQHandler,Default_Handler
+
+ .weak ADC_IRQHandler
+ .thumb_set ADC_IRQHandler,Default_Handler
+
+ .weak EXTI9_5_IRQHandler
+ .thumb_set EXTI9_5_IRQHandler,Default_Handler
+
+ .weak TIM1_BRK_TIM9_IRQHandler
+ .thumb_set TIM1_BRK_TIM9_IRQHandler,Default_Handler
+
+ .weak TIM1_UP_TIM10_IRQHandler
+ .thumb_set TIM1_UP_TIM10_IRQHandler,Default_Handler
+
+ .weak TIM1_TRG_COM_TIM11_IRQHandler
+ .thumb_set TIM1_TRG_COM_TIM11_IRQHandler,Default_Handler
+
+ .weak TIM1_CC_IRQHandler
+ .thumb_set TIM1_CC_IRQHandler,Default_Handler
+
+ .weak TIM2_IRQHandler
+ .thumb_set TIM2_IRQHandler,Default_Handler
+
+ .weak TIM3_IRQHandler
+ .thumb_set TIM3_IRQHandler,Default_Handler
+
+ .weak TIM4_IRQHandler
+ .thumb_set TIM4_IRQHandler,Default_Handler
+
+ .weak I2C1_EV_IRQHandler
+ .thumb_set I2C1_EV_IRQHandler,Default_Handler
+
+ .weak I2C1_ER_IRQHandler
+ .thumb_set I2C1_ER_IRQHandler,Default_Handler
+
+ .weak I2C2_EV_IRQHandler
+ .thumb_set I2C2_EV_IRQHandler,Default_Handler
+
+ .weak I2C2_ER_IRQHandler
+ .thumb_set I2C2_ER_IRQHandler,Default_Handler
+
+ .weak SPI1_IRQHandler
+ .thumb_set SPI1_IRQHandler,Default_Handler
+
+ .weak SPI2_IRQHandler
+ .thumb_set SPI2_IRQHandler,Default_Handler
+
+ .weak USART1_IRQHandler
+ .thumb_set USART1_IRQHandler,Default_Handler
+
+ .weak USART2_IRQHandler
+ .thumb_set USART2_IRQHandler,Default_Handler
+
+ .weak EXTI15_10_IRQHandler
+ .thumb_set EXTI15_10_IRQHandler,Default_Handler
+
+ .weak RTC_Alarm_IRQHandler
+ .thumb_set RTC_Alarm_IRQHandler,Default_Handler
+
+ .weak OTG_FS_WKUP_IRQHandler
+ .thumb_set OTG_FS_WKUP_IRQHandler,Default_Handler
+
+ .weak DMA1_Stream7_IRQHandler
+ .thumb_set DMA1_Stream7_IRQHandler,Default_Handler
+
+ .weak SDIO_IRQHandler
+ .thumb_set SDIO_IRQHandler,Default_Handler
+
+ .weak TIM5_IRQHandler
+ .thumb_set TIM5_IRQHandler,Default_Handler
+
+ .weak SPI3_IRQHandler
+ .thumb_set SPI3_IRQHandler,Default_Handler
+
+ .weak DMA2_Stream0_IRQHandler
+ .thumb_set DMA2_Stream0_IRQHandler,Default_Handler
+
+ .weak DMA2_Stream1_IRQHandler
+ .thumb_set DMA2_Stream1_IRQHandler,Default_Handler
+
+ .weak DMA2_Stream2_IRQHandler
+ .thumb_set DMA2_Stream2_IRQHandler,Default_Handler
+
+ .weak DMA2_Stream3_IRQHandler
+ .thumb_set DMA2_Stream3_IRQHandler,Default_Handler
+
+ .weak DMA2_Stream4_IRQHandler
+ .thumb_set DMA2_Stream4_IRQHandler,Default_Handler
+
+ .weak OTG_FS_IRQHandler
+ .thumb_set OTG_FS_IRQHandler,Default_Handler
+
+ .weak DMA2_Stream5_IRQHandler
+ .thumb_set DMA2_Stream5_IRQHandler,Default_Handler
+
+ .weak DMA2_Stream6_IRQHandler
+ .thumb_set DMA2_Stream6_IRQHandler,Default_Handler
+
+ .weak DMA2_Stream7_IRQHandler
+ .thumb_set DMA2_Stream7_IRQHandler,Default_Handler
+
+ .weak USART6_IRQHandler
+ .thumb_set USART6_IRQHandler,Default_Handler
+
+ .weak I2C3_EV_IRQHandler
+ .thumb_set I2C3_EV_IRQHandler,Default_Handler
+
+ .weak I2C3_ER_IRQHandler
+ .thumb_set I2C3_ER_IRQHandler,Default_Handler
+
+ .weak FPU_IRQHandler
+ .thumb_set FPU_IRQHandler,Default_Handler
+
+ .weak SPI4_IRQHandler
+ .thumb_set SPI4_IRQHandler,Default_Handler
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
+
diff --git a/stepper/steppermotor_F401RE/Debug/Core/Src/clock_f4.d b/stepper/steppermotor_F401RE/Debug/Core/Src/clock_f4.d
new file mode 100644
index 0000000..8ceb393
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Core/Src/clock_f4.d
@@ -0,0 +1,105 @@
+Core/Src/clock_f4.o: ../Core/Src/clock_f4.c ../Core/Inc/main.h \
+ ../Core/Inc/x_nucleo_ihmxx.h ../Core/Inc/motor.h ../Core/Inc/l6208.h \
+ ../Core/Inc/l6208_target_config.h \
+ ../Core/Inc/x_nucleo_ihm05a1_stm32f4xx.h ../Core/Inc/stm32f4xx_nucleo.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Core/Inc/main.h:
+
+../Core/Inc/x_nucleo_ihmxx.h:
+
+../Core/Inc/motor.h:
+
+../Core/Inc/l6208.h:
+
+../Core/Inc/l6208_target_config.h:
+
+../Core/Inc/x_nucleo_ihm05a1_stm32f4xx.h:
+
+../Core/Inc/stm32f4xx_nucleo.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Core/Src/clock_f4.o b/stepper/steppermotor_F401RE/Debug/Core/Src/clock_f4.o
new file mode 100644
index 0000000..34de2bd
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Core/Src/clock_f4.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Core/Src/clock_f4.su b/stepper/steppermotor_F401RE/Debug/Core/Src/clock_f4.su
new file mode 100644
index 0000000..24bfce1
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Core/Src/clock_f4.su
@@ -0,0 +1 @@
+clock_f4.c:65:6:SystemClock_Config 88 static
diff --git a/stepper/steppermotor_F401RE/Debug/Core/Src/l6208.d b/stepper/steppermotor_F401RE/Debug/Core/Src/l6208.d
new file mode 100644
index 0000000..47af1e6
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Core/Src/l6208.d
@@ -0,0 +1,8 @@
+Core/Src/l6208.o: ../Core/Src/l6208.c ../Core/Inc/l6208.h \
+ ../Core/Inc/l6208_target_config.h ../Core/Inc/motor.h
+
+../Core/Inc/l6208.h:
+
+../Core/Inc/l6208_target_config.h:
+
+../Core/Inc/motor.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Core/Src/l6208.o b/stepper/steppermotor_F401RE/Debug/Core/Src/l6208.o
new file mode 100644
index 0000000..e9f80ba
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Core/Src/l6208.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Core/Src/l6208.su b/stepper/steppermotor_F401RE/Debug/Core/Src/l6208.su
new file mode 100644
index 0000000..9b79400
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Core/Src/l6208.su
@@ -0,0 +1,75 @@
+l6208.c:259:13:L6208_GetMotorHandle 4 static
+l6208.c:269:6:L6208_Init 16 static
+l6208.c:308:10:L6208_ReadId 4 static
+l6208.c:321:6:L6208_AttachErrorHandler 16 static
+l6208.c:335:6:L6208_AttachFlagInterrupt 16 static
+l6208.c:344:9:L6208_CheckStatusHw 8 static
+l6208.c:361:6:L6208_Disable 16 static
+l6208.c:372:6:L6208_ErrorHandler 16 static
+l6208.c:392:6:L6208_Enable 16 static
+l6208.c:402:6:L6208_FlagInterruptHandler 8 static
+l6208.c:424:10:L6208_GetAcceleration 16 static
+l6208.c:437:10:L6208_GetCurrentSpeed 40 static
+l6208.c:458:18:L6208_GetDecayMode 16 static
+l6208.c:472:10:L6208_GetDeceleration 16 static
+l6208.c:482:12:L6208_GetDirection 16 static
+l6208.c:498:10:L6208_GetFwVersion 4 static
+l6208.c:508:9:L6208_GetMark 16 static
+l6208.c:521:10:L6208_GetMaxSpeed 16 static
+l6208.c:534:10:L6208_GetMinSpeed 16 static
+l6208.c:544:14:L6208_GetMotionState 16 static
+l6208.c:555:9:L6208_GetPosition 16 static
+l6208.c:565:17:L6208_GetStepMode 16 static
+l6208.c:575:17:L6208_GetStopMode 16 static
+l6208.c:594:9:L6208_GetTorque 24 static
+l6208.c:625:6:L6208_GoHome 16 static
+l6208.c:635:6:L6208_GoMark 16 static
+l6208.c:653:6:L6208_GoTo 24 static
+l6208.c:702:6:L6208_GoToDir 24 static
+l6208.c:741:6:L6208_HardHiZ 16 static
+l6208.c:765:6:L6208_HardStop 16 static
+l6208.c:793:6:L6208_Move 16 static
+l6208.c:821:6:L6208_ReleaseReset 16 static
+l6208.c:831:6:L6208_Reset 16 static
+l6208.c:841:6:L6208_ResetDevice 8 static
+l6208.c:856:6:L6208_Run 16 static
+l6208.c:880:6:L6208_SetAcceleration 24 static
+l6208.c:901:6:L6208_SetDecayMode 16 static
+l6208.c:924:6:L6208_SetDeceleration 24 static
+l6208.c:948:6:L6208_SetDirection 16 static
+l6208.c:1012:6:L6208_SetHome 16 static
+l6208.c:1030:6:L6208_SetMark 16 static
+l6208.c:1044:6:L6208_SetMaxSpeed 16 static
+l6208.c:1066:6:L6208_SetMinSpeed 16 static
+l6208.c:1085:6:L6208_SetNbDevices 16 static
+l6208.c:1104:6:L6208_SetStepMode 16 static
+l6208.c:1180:6:L6208_SetStopMode 16 static
+l6208.c:1200:6:L6208_SetTorque 16 static
+l6208.c:1236:6:L6208_SoftStop 16 static
+l6208.c:1248:6:L6208_TickHandler 24 static
+l6208.c:1544:10:L6208_VrefPwmGetFreq 16 static
+l6208.c:1556:6:L6208_VrefPwmSetFreq 16 static
+l6208.c:1579:6:L6208_WaitWhileActive 16 static
+l6208.c:1597:13:L6208_ClearSysFlag 16 static
+l6208.c:1616:10:L6208_ComputeNbAccOrDecSteps 24 static
+l6208.c:1666:10:L6208_ConvertAcceDecelRateValue 40 static
+l6208.c:1696:6:L6208_DoAccel 16 static
+l6208.c:1717:6:L6208_DoDecel 16 static
+l6208.c:1739:6:L6208_DoRun 4 static
+l6208.c:1748:9:L6208_GetMicrostepSample2Scale 4 static
+l6208.c:1778:6:L6208_Indexmodeinit 24 static
+l6208.c:1822:13:L6208_IsSysFlag 16 static
+l6208.c:1831:6:L6208_ResetSteps 4 static
+l6208.c:1849:10:L6208_ScaleWaveformSample 24 static
+l6208.c:1868:6:L6208_ScaleWaveformTable 16 static
+l6208.c:1885:6:L6208_SetDeviceParamsToGivenValues 16 static
+l6208.c:1915:6:L6208_SetDeviceParamsToPredefinedValues 8 static
+l6208.c:1944:6:L6208_SetMicrostepSample2Scale 16 static
+l6208.c:1959:6:L6208_SetMicrostepSample2Update 16 static
+l6208.c:1974:6:L6208_SetMotionState 16 static
+l6208.c:1987:6:L6208_SetSpeed 40 static
+l6208.c:2017:13:L6208_SetSysFlag 16 static
+l6208.c:2026:6:L6208_StartMovement 16 static
+l6208.c:2095:6:L6208_UpdateScanWaveformTable 16 static
+l6208.c:2113:6:L6208_UstepWaveformHandling 8 static
+l6208.c:2134:6:L6208_VectorCalc 16 static
diff --git a/stepper/steppermotor_F401RE/Debug/Core/Src/main.d b/stepper/steppermotor_F401RE/Debug/Core/Src/main.d
new file mode 100644
index 0000000..d3a927e
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Core/Src/main.d
@@ -0,0 +1,105 @@
+Core/Src/main.o: ../Core/Src/main.c ../Core/Inc/main.h \
+ ../Core/Inc/x_nucleo_ihmxx.h ../Core/Inc/motor.h ../Core/Inc/l6208.h \
+ ../Core/Inc/l6208_target_config.h \
+ ../Core/Inc/x_nucleo_ihm05a1_stm32f4xx.h ../Core/Inc/stm32f4xx_nucleo.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Core/Inc/main.h:
+
+../Core/Inc/x_nucleo_ihmxx.h:
+
+../Core/Inc/motor.h:
+
+../Core/Inc/l6208.h:
+
+../Core/Inc/l6208_target_config.h:
+
+../Core/Inc/x_nucleo_ihm05a1_stm32f4xx.h:
+
+../Core/Inc/stm32f4xx_nucleo.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Core/Src/main.o b/stepper/steppermotor_F401RE/Debug/Core/Src/main.o
new file mode 100644
index 0000000..4a22da0
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Core/Src/main.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Core/Src/main.su b/stepper/steppermotor_F401RE/Debug/Core/Src/main.su
new file mode 100644
index 0000000..176c5cc
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Core/Src/main.su
@@ -0,0 +1,4 @@
+main.c:79:5:main 24 static
+main.c:469:6:MyFlagInterruptHandler 8 static
+main.c:480:6:MyErrorHandler 16 static
+main.c:497:6:ButtonHandler 8 static
diff --git a/stepper/steppermotor_F401RE/Debug/Core/Src/stm32f4xx_hal_msp.d b/stepper/steppermotor_F401RE/Debug/Core/Src/stm32f4xx_hal_msp.d
new file mode 100644
index 0000000..4288f33
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Core/Src/stm32f4xx_hal_msp.d
@@ -0,0 +1,105 @@
+Core/Src/stm32f4xx_hal_msp.o: ../Core/Src/stm32f4xx_hal_msp.c \
+ ../Core/Inc/main.h ../Core/Inc/x_nucleo_ihmxx.h ../Core/Inc/motor.h \
+ ../Core/Inc/l6208.h ../Core/Inc/l6208_target_config.h \
+ ../Core/Inc/x_nucleo_ihm05a1_stm32f4xx.h ../Core/Inc/stm32f4xx_nucleo.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Core/Inc/main.h:
+
+../Core/Inc/x_nucleo_ihmxx.h:
+
+../Core/Inc/motor.h:
+
+../Core/Inc/l6208.h:
+
+../Core/Inc/l6208_target_config.h:
+
+../Core/Inc/x_nucleo_ihm05a1_stm32f4xx.h:
+
+../Core/Inc/stm32f4xx_nucleo.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Core/Src/stm32f4xx_hal_msp.o b/stepper/steppermotor_F401RE/Debug/Core/Src/stm32f4xx_hal_msp.o
new file mode 100644
index 0000000..e06465d
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Core/Src/stm32f4xx_hal_msp.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Core/Src/stm32f4xx_hal_msp.su b/stepper/steppermotor_F401RE/Debug/Core/Src/stm32f4xx_hal_msp.su
new file mode 100644
index 0000000..687fe56
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Core/Src/stm32f4xx_hal_msp.su
@@ -0,0 +1,4 @@
+stm32f4xx_hal_msp.c:67:6:HAL_TIM_PWM_MspInit 48 static
+stm32f4xx_hal_msp.c:114:6:HAL_TIM_PWM_MspDeInit 16 static
+stm32f4xx_hal_msp.c:142:6:HAL_TIM_PWM_PulseFinishedCallback 16 static
+stm32f4xx_hal_msp.c:158:6:HAL_GPIO_EXTI_Callback 16 static
diff --git a/stepper/steppermotor_F401RE/Debug/Core/Src/stm32f4xx_it.d b/stepper/steppermotor_F401RE/Debug/Core/Src/stm32f4xx_it.d
new file mode 100644
index 0000000..8049250
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Core/Src/stm32f4xx_it.d
@@ -0,0 +1,108 @@
+Core/Src/stm32f4xx_it.o: ../Core/Src/stm32f4xx_it.c \
+ ../Core/Inc/stm32f4xx_it.h ../Core/Inc/main.h \
+ ../Core/Inc/x_nucleo_ihmxx.h ../Core/Inc/motor.h ../Core/Inc/l6208.h \
+ ../Core/Inc/l6208_target_config.h \
+ ../Core/Inc/x_nucleo_ihm05a1_stm32f4xx.h ../Core/Inc/stm32f4xx_nucleo.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Core/Inc/stm32f4xx_it.h:
+
+../Core/Inc/main.h:
+
+../Core/Inc/x_nucleo_ihmxx.h:
+
+../Core/Inc/motor.h:
+
+../Core/Inc/l6208.h:
+
+../Core/Inc/l6208_target_config.h:
+
+../Core/Inc/x_nucleo_ihm05a1_stm32f4xx.h:
+
+../Core/Inc/stm32f4xx_nucleo.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Core/Src/stm32f4xx_it.o b/stepper/steppermotor_F401RE/Debug/Core/Src/stm32f4xx_it.o
new file mode 100644
index 0000000..d75017d
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Core/Src/stm32f4xx_it.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Core/Src/stm32f4xx_it.su b/stepper/steppermotor_F401RE/Debug/Core/Src/stm32f4xx_it.su
new file mode 100644
index 0000000..11daa4f
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Core/Src/stm32f4xx_it.su
@@ -0,0 +1,11 @@
+stm32f4xx_it.c:67:6:NMI_Handler 4 static
+stm32f4xx_it.c:76:6:HardFault_Handler 4 static
+stm32f4xx_it.c:89:6:MemManage_Handler 4 static
+stm32f4xx_it.c:102:6:BusFault_Handler 4 static
+stm32f4xx_it.c:115:6:UsageFault_Handler 4 static
+stm32f4xx_it.c:128:6:SVC_Handler 4 static
+stm32f4xx_it.c:137:6:DebugMon_Handler 4 static
+stm32f4xx_it.c:146:6:PendSV_Handler 4 static
+stm32f4xx_it.c:155:6:SysTick_Handler 8 static
+stm32f4xx_it.c:172:6:EXTI15_10_IRQHandler 8 static
+stm32f4xx_it.c:183:6:TIM4_IRQHandler 8 static
diff --git a/stepper/steppermotor_F401RE/Debug/Core/Src/stm32f4xx_nucleo.d b/stepper/steppermotor_F401RE/Debug/Core/Src/stm32f4xx_nucleo.d
new file mode 100644
index 0000000..d674990
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Core/Src/stm32f4xx_nucleo.d
@@ -0,0 +1,91 @@
+Core/Src/stm32f4xx_nucleo.o: ../Core/Src/stm32f4xx_nucleo.c \
+ ../Core/Inc/stm32f4xx_nucleo.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Core/Inc/stm32f4xx_nucleo.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Core/Src/stm32f4xx_nucleo.o b/stepper/steppermotor_F401RE/Debug/Core/Src/stm32f4xx_nucleo.o
new file mode 100644
index 0000000..1105a23
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Core/Src/stm32f4xx_nucleo.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Core/Src/stm32f4xx_nucleo.su b/stepper/steppermotor_F401RE/Debug/Core/Src/stm32f4xx_nucleo.su
new file mode 100644
index 0000000..159a653
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Core/Src/stm32f4xx_nucleo.su
@@ -0,0 +1,30 @@
+stm32f4xx_nucleo.c:177:10:BSP_GetVersion 4 static
+stm32f4xx_nucleo.c:188:6:BSP_LED_Init 40 static
+stm32f4xx_nucleo.c:213:6:BSP_LED_DeInit 40 static
+stm32f4xx_nucleo.c:230:6:BSP_LED_On 16 static
+stm32f4xx_nucleo.c:241:6:BSP_LED_Off 16 static
+stm32f4xx_nucleo.c:252:6:BSP_LED_Toggle 16 static
+stm32f4xx_nucleo.c:267:6:BSP_PB_Init 40 static
+stm32f4xx_nucleo.c:304:6:BSP_PB_DeInit 40 static
+stm32f4xx_nucleo.c:319:10:BSP_PB_GetState 16 static
+stm32f4xx_nucleo.c:335:13:SPIx_MspInit 48 static
+stm32f4xx_nucleo.c:370:13:SPIx_Init 8 static
+stm32f4xx_nucleo.c:407:13:SPIx_WriteReadData 40 static
+stm32f4xx_nucleo.c:425:13:SPIx_Write 32 static
+stm32f4xx_nucleo.c:443:13:SPIx_Error 8 static
+stm32f4xx_nucleo.c:461:6:SD_IO_Init 40 static
+stm32f4xx_nucleo.c:496:6:SD_IO_CSState 16 static
+stm32f4xx_nucleo.c:514:6:SD_IO_WriteReadData 24 static
+stm32f4xx_nucleo.c:524:9:SD_IO_WriteByte 24 static
+stm32f4xx_nucleo.c:536:6:LCD_IO_Init 40 static
+stm32f4xx_nucleo.c:566:6:LCD_IO_WriteReg 16 static
+stm32f4xx_nucleo.c:586:6:LCD_IO_WriteData 16 static
+stm32f4xx_nucleo.c:606:6:LCD_IO_WriteMultipleData 24 static
+stm32f4xx_nucleo.c:661:6:LCD_Delay 16 static
+stm32f4xx_nucleo.c:673:13:ADCx_MspInit 48 static
+stm32f4xx_nucleo.c:696:13:ADCx_MspDeInit 40 static
+stm32f4xx_nucleo.c:715:13:ADCx_Init 8 static
+stm32f4xx_nucleo.c:739:13:ADCx_DeInit 8 static
+stm32f4xx_nucleo.c:754:9:BSP_JOY_Init 16 static
+stm32f4xx_nucleo.c:774:6:BSP_JOY_DeInit 8 static
+stm32f4xx_nucleo.c:791:18:BSP_JOY_GetState 16 static
diff --git a/stepper/steppermotor_F401RE/Debug/Core/Src/subdir.mk b/stepper/steppermotor_F401RE/Debug/Core/Src/subdir.mk
new file mode 100644
index 0000000..2ec098c
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Core/Src/subdir.mk
@@ -0,0 +1,69 @@
+################################################################################
+# Automatically-generated file. Do not edit!
+################################################################################
+
+# Add inputs and outputs from these tool invocations to the build variables
+C_SRCS += \
+../Core/Src/clock_f4.c \
+../Core/Src/l6208.c \
+../Core/Src/main.c \
+../Core/Src/stm32f4xx_hal_msp.c \
+../Core/Src/stm32f4xx_it.c \
+../Core/Src/stm32f4xx_nucleo.c \
+../Core/Src/syscalls.c \
+../Core/Src/sysmem.c \
+../Core/Src/system_stm32f4xx.c \
+../Core/Src/x_nucleo_ihm05a1_stm32f4xx.c \
+../Core/Src/x_nucleo_ihmxx.c
+
+OBJS += \
+./Core/Src/clock_f4.o \
+./Core/Src/l6208.o \
+./Core/Src/main.o \
+./Core/Src/stm32f4xx_hal_msp.o \
+./Core/Src/stm32f4xx_it.o \
+./Core/Src/stm32f4xx_nucleo.o \
+./Core/Src/syscalls.o \
+./Core/Src/sysmem.o \
+./Core/Src/system_stm32f4xx.o \
+./Core/Src/x_nucleo_ihm05a1_stm32f4xx.o \
+./Core/Src/x_nucleo_ihmxx.o
+
+C_DEPS += \
+./Core/Src/clock_f4.d \
+./Core/Src/l6208.d \
+./Core/Src/main.d \
+./Core/Src/stm32f4xx_hal_msp.d \
+./Core/Src/stm32f4xx_it.d \
+./Core/Src/stm32f4xx_nucleo.d \
+./Core/Src/syscalls.d \
+./Core/Src/sysmem.d \
+./Core/Src/system_stm32f4xx.d \
+./Core/Src/x_nucleo_ihm05a1_stm32f4xx.d \
+./Core/Src/x_nucleo_ihmxx.d
+
+
+# Each subdirectory must supply rules for building sources it contributes
+Core/Src/clock_f4.o: ../Core/Src/clock_f4.c
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F401xE -DDEBUG -c -I../Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Core/Src/clock_f4.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+Core/Src/l6208.o: ../Core/Src/l6208.c
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F401xE -DDEBUG -c -I../Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Core/Src/l6208.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+Core/Src/main.o: ../Core/Src/main.c
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F401xE -DDEBUG -c -I../Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Core/Src/main.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+Core/Src/stm32f4xx_hal_msp.o: ../Core/Src/stm32f4xx_hal_msp.c
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F401xE -DDEBUG -c -I../Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Core/Src/stm32f4xx_hal_msp.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+Core/Src/stm32f4xx_it.o: ../Core/Src/stm32f4xx_it.c
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F401xE -DDEBUG -c -I../Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Core/Src/stm32f4xx_it.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+Core/Src/stm32f4xx_nucleo.o: ../Core/Src/stm32f4xx_nucleo.c
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F401xE -DDEBUG -c -I../Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Core/Src/stm32f4xx_nucleo.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+Core/Src/syscalls.o: ../Core/Src/syscalls.c
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F401xE -DDEBUG -c -I../Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Core/Src/syscalls.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+Core/Src/sysmem.o: ../Core/Src/sysmem.c
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F401xE -DDEBUG -c -I../Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Core/Src/sysmem.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+Core/Src/system_stm32f4xx.o: ../Core/Src/system_stm32f4xx.c
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F401xE -DDEBUG -c -I../Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Core/Src/system_stm32f4xx.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+Core/Src/x_nucleo_ihm05a1_stm32f4xx.o: ../Core/Src/x_nucleo_ihm05a1_stm32f4xx.c
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F401xE -DDEBUG -c -I../Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Core/Src/x_nucleo_ihm05a1_stm32f4xx.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+Core/Src/x_nucleo_ihmxx.o: ../Core/Src/x_nucleo_ihmxx.c
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F401xE -DDEBUG -c -I../Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Core/Src/x_nucleo_ihmxx.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+
diff --git a/stepper/steppermotor_F401RE/Debug/Core/Src/syscalls.d b/stepper/steppermotor_F401RE/Debug/Core/Src/syscalls.d
new file mode 100644
index 0000000..8667c70
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Core/Src/syscalls.d
@@ -0,0 +1 @@
+Core/Src/syscalls.o: ../Core/Src/syscalls.c
diff --git a/stepper/steppermotor_F401RE/Debug/Core/Src/syscalls.o b/stepper/steppermotor_F401RE/Debug/Core/Src/syscalls.o
new file mode 100644
index 0000000..c81f12e
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Core/Src/syscalls.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Core/Src/syscalls.su b/stepper/steppermotor_F401RE/Debug/Core/Src/syscalls.su
new file mode 100644
index 0000000..492a785
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Core/Src/syscalls.su
@@ -0,0 +1,18 @@
+syscalls.c:48:6:initialise_monitor_handles 4 static
+syscalls.c:52:5:_getpid 4 static
+syscalls.c:57:5:_kill 16 static
+syscalls.c:63:6:_exit 16 static
+syscalls.c:69:27:_read 32 static
+syscalls.c:81:27:_write 32 static
+syscalls.c:92:5:_close 16 static
+syscalls.c:98:5:_fstat 16 static
+syscalls.c:104:5:_isatty 16 static
+syscalls.c:109:5:_lseek 24 static
+syscalls.c:114:5:_open 12 static
+syscalls.c:120:5:_wait 16 static
+syscalls.c:126:5:_unlink 16 static
+syscalls.c:132:5:_times 16 static
+syscalls.c:137:5:_stat 16 static
+syscalls.c:143:5:_link 16 static
+syscalls.c:149:5:_fork 8 static
+syscalls.c:155:5:_execve 24 static
diff --git a/stepper/steppermotor_F401RE/Debug/Core/Src/sysmem.d b/stepper/steppermotor_F401RE/Debug/Core/Src/sysmem.d
new file mode 100644
index 0000000..74fecf9
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Core/Src/sysmem.d
@@ -0,0 +1 @@
+Core/Src/sysmem.o: ../Core/Src/sysmem.c
diff --git a/stepper/steppermotor_F401RE/Debug/Core/Src/sysmem.o b/stepper/steppermotor_F401RE/Debug/Core/Src/sysmem.o
new file mode 100644
index 0000000..8b8d9bf
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Core/Src/sysmem.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Core/Src/sysmem.su b/stepper/steppermotor_F401RE/Debug/Core/Src/sysmem.su
new file mode 100644
index 0000000..4474c68
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Core/Src/sysmem.su
@@ -0,0 +1 @@
+sysmem.c:54:7:_sbrk 32 static
diff --git a/stepper/steppermotor_F401RE/Debug/Core/Src/system_stm32f4xx.d b/stepper/steppermotor_F401RE/Debug/Core/Src/system_stm32f4xx.d
new file mode 100644
index 0000000..0533ad9
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Core/Src/system_stm32f4xx.d
@@ -0,0 +1,88 @@
+Core/Src/system_stm32f4xx.o: ../Core/Src/system_stm32f4xx.c \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Core/Src/system_stm32f4xx.o b/stepper/steppermotor_F401RE/Debug/Core/Src/system_stm32f4xx.o
new file mode 100644
index 0000000..4acaf42
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Core/Src/system_stm32f4xx.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Core/Src/system_stm32f4xx.su b/stepper/steppermotor_F401RE/Debug/Core/Src/system_stm32f4xx.su
new file mode 100644
index 0000000..5413229
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Core/Src/system_stm32f4xx.su
@@ -0,0 +1,2 @@
+system_stm32f4xx.c:150:6:SystemInit 4 static
+system_stm32f4xx.c:219:6:SystemCoreClockUpdate 32 static
diff --git a/stepper/steppermotor_F401RE/Debug/Core/Src/x_nucleo_ihm05a1_stm32f4xx.d b/stepper/steppermotor_F401RE/Debug/Core/Src/x_nucleo_ihm05a1_stm32f4xx.d
new file mode 100644
index 0000000..8521647
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Core/Src/x_nucleo_ihm05a1_stm32f4xx.d
@@ -0,0 +1,97 @@
+Core/Src/x_nucleo_ihm05a1_stm32f4xx.o: \
+ ../Core/Src/x_nucleo_ihm05a1_stm32f4xx.c \
+ ../Core/Inc/x_nucleo_ihm05a1_stm32f4xx.h ../Core/Inc/stm32f4xx_nucleo.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h \
+ ../Core/Inc/motor.h
+
+../Core/Inc/x_nucleo_ihm05a1_stm32f4xx.h:
+
+../Core/Inc/stm32f4xx_nucleo.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
+
+../Core/Inc/motor.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Core/Src/x_nucleo_ihm05a1_stm32f4xx.o b/stepper/steppermotor_F401RE/Debug/Core/Src/x_nucleo_ihm05a1_stm32f4xx.o
new file mode 100644
index 0000000..c7265ea
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Core/Src/x_nucleo_ihm05a1_stm32f4xx.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Core/Src/x_nucleo_ihm05a1_stm32f4xx.su b/stepper/steppermotor_F401RE/Debug/Core/Src/x_nucleo_ihm05a1_stm32f4xx.su
new file mode 100644
index 0000000..8621a2c
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Core/Src/x_nucleo_ihm05a1_stm32f4xx.su
@@ -0,0 +1,27 @@
+x_nucleo_ihm05a1_stm32f4xx.c:134:6:L6208_Board_Delay 16 static
+x_nucleo_ihm05a1_stm32f4xx.c:143:6:L6208_Board_DisableIrq 4 static
+x_nucleo_ihm05a1_stm32f4xx.c:152:6:L6208_Board_EnableIrq 4 static
+x_nucleo_ihm05a1_stm32f4xx.c:161:6:L6208_Board_GpioInit 40 static
+x_nucleo_ihm05a1_stm32f4xx.c:228:6:L6208_Board_TickInit 8 static
+x_nucleo_ihm05a1_stm32f4xx.c:259:6:L6208_Board_TickStart 16 static
+x_nucleo_ihm05a1_stm32f4xx.c:272:6:L6208_Board_TickStop 8 static
+x_nucleo_ihm05a1_stm32f4xx.c:281:10:L6208_Board_TickGetFreq 4 static
+x_nucleo_ihm05a1_stm32f4xx.c:293:6:L6208_Board_VrefPwmFreqCheck 16 static
+x_nucleo_ihm05a1_stm32f4xx.c:314:6:L6208_Board_VrefPwmInit 24 static
+x_nucleo_ihm05a1_stm32f4xx.c:372:6:L6208_Board_VrefPwmSetDutyCycle 24 static
+x_nucleo_ihm05a1_stm32f4xx.c:411:6:L6208_Board_VrefPwmStart 32 static
+x_nucleo_ihm05a1_stm32f4xx.c:446:6:L6208_Board_VrefPwmStop 24 static
+x_nucleo_ihm05a1_stm32f4xx.c:474:10:L6208_Board_VrefPwmGetPeriod 4 static
+x_nucleo_ihm05a1_stm32f4xx.c:483:6:L6208_Board_ReleaseReset 8 static
+x_nucleo_ihm05a1_stm32f4xx.c:492:6:L6208_Board_Reset 8 static
+x_nucleo_ihm05a1_stm32f4xx.c:501:6:L6208_Board_CONTROL_PIN_Set 8 static
+x_nucleo_ihm05a1_stm32f4xx.c:510:6:L6208_Board_CONTROL_PIN_Reset 8 static
+x_nucleo_ihm05a1_stm32f4xx.c:519:6:L6208_Board_CLOCK_PIN_Set 8 static
+x_nucleo_ihm05a1_stm32f4xx.c:528:6:L6208_Board_CLOCK_PIN_Reset 8 static
+x_nucleo_ihm05a1_stm32f4xx.c:537:6:L6208_Board_HALF_FULL_PIN_Set 8 static
+x_nucleo_ihm05a1_stm32f4xx.c:546:6:L6208_Board_HALF_FULL_PIN_Reset 8 static
+x_nucleo_ihm05a1_stm32f4xx.c:555:6:L6208_Board_DIR_PIN_Set 8 static
+x_nucleo_ihm05a1_stm32f4xx.c:564:6:L6208_Board_DIR_PIN_Reset 8 static
+x_nucleo_ihm05a1_stm32f4xx.c:573:10:L6208_Board_FLAG_PIN_GetState 8 static
+x_nucleo_ihm05a1_stm32f4xx.c:582:6:L6208_Board_Disable 32 static,ignoring_inline_asm
+x_nucleo_ihm05a1_stm32f4xx.c:602:6:L6208_Board_Enable 32 static
diff --git a/stepper/steppermotor_F401RE/Debug/Core/Src/x_nucleo_ihmxx.d b/stepper/steppermotor_F401RE/Debug/Core/Src/x_nucleo_ihmxx.d
new file mode 100644
index 0000000..7b5f258
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Core/Src/x_nucleo_ihmxx.d
@@ -0,0 +1,6 @@
+Core/Src/x_nucleo_ihmxx.o: ../Core/Src/x_nucleo_ihmxx.c \
+ ../Core/Inc/x_nucleo_ihmxx.h ../Core/Inc/motor.h
+
+../Core/Inc/x_nucleo_ihmxx.h:
+
+../Core/Inc/motor.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Core/Src/x_nucleo_ihmxx.o b/stepper/steppermotor_F401RE/Debug/Core/Src/x_nucleo_ihmxx.o
new file mode 100644
index 0000000..3d718cb
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Core/Src/x_nucleo_ihmxx.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Core/Src/x_nucleo_ihmxx.su b/stepper/steppermotor_F401RE/Debug/Core/Src/x_nucleo_ihmxx.su
new file mode 100644
index 0000000..37e2dde
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Core/Src/x_nucleo_ihmxx.su
@@ -0,0 +1,97 @@
+x_nucleo_ihmxx.c:98:20:L6474_GetMotorHandle 4 static
+x_nucleo_ihmxx.c:100:20:l647x_GetMotorHandle 4 static
+x_nucleo_ihmxx.c:102:20:l648x_GetMotorHandle 4 static
+x_nucleo_ihmxx.c:104:20:Powerstep01_GetMotorHandle 4 static
+x_nucleo_ihmxx.c:106:20:L6206_GetMotorHandle 4 static
+x_nucleo_ihmxx.c:108:20:L6208_GetMotorHandle 4 static
+x_nucleo_ihmxx.c:110:20:Stspin220_GetMotorHandle 4 static
+x_nucleo_ihmxx.c:112:20:Stspin240_250_GetMotorHandle 4 static
+x_nucleo_ihmxx.c:129:6:BSP_MotorControl_AttachErrorHandler 16 static
+x_nucleo_ihmxx.c:149:6:BSP_MotorControl_AttachFlagInterrupt 16 static
+x_nucleo_ihmxx.c:169:6:BSP_MotorControl_AttachBusyInterrupt 16 static
+x_nucleo_ihmxx.c:186:6:BSP_MotorControl_ErrorHandler 16 static
+x_nucleo_ihmxx.c:209:6:BSP_MotorControl_Init 16 static
+x_nucleo_ihmxx.c:225:6:BSP_MotorControl_FlagInterruptHandler 8 static
+x_nucleo_ihmxx.c:242:10:BSP_MotorControl_GetAcceleration 24 static
+x_nucleo_ihmxx.c:261:10:BSP_MotorControl_GetBoardId 4 static
+x_nucleo_ihmxx.c:273:10:BSP_MotorControl_GetCurrentSpeed 24 static
+x_nucleo_ihmxx.c:293:10:BSP_MotorControl_GetDeceleration 24 static
+x_nucleo_ihmxx.c:316:14:BSP_MotorControl_GetDeviceState 24 static
+x_nucleo_ihmxx.c:337:10:BSP_MotorControl_GetFwVersion 16 static
+x_nucleo_ihmxx.c:358:9:BSP_MotorControl_GetMark 24 static
+x_nucleo_ihmxx.c:381:10:BSP_MotorControl_GetMaxSpeed 24 static
+x_nucleo_ihmxx.c:401:10:BSP_MotorControl_GetMinSpeed 24 static
+x_nucleo_ihmxx.c:422:9:BSP_MotorControl_GetPosition 24 static
+x_nucleo_ihmxx.c:443:6:BSP_MotorControl_GoHome 16 static
+x_nucleo_ihmxx.c:461:6:BSP_MotorControl_GoMark 16 static
+x_nucleo_ihmxx.c:480:6:BSP_MotorControl_GoTo 16 static
+x_nucleo_ihmxx.c:499:6:BSP_MotorControl_HardStop 16 static
+x_nucleo_ihmxx.c:519:6:BSP_MotorControl_Move 16 static
+x_nucleo_ihmxx.c:535:6:BSP_MotorControl_ResetAllDevices 8 static
+x_nucleo_ihmxx.c:558:6:BSP_MotorControl_Run 16 static
+x_nucleo_ihmxx.c:578:6:BSP_MotorControl_SetAcceleration 24 static
+x_nucleo_ihmxx.c:601:6:BSP_MotorControl_SetDeceleration 24 static
+x_nucleo_ihmxx.c:622:6:BSP_MotorControl_SetHome 16 static
+x_nucleo_ihmxx.c:641:6:BSP_MotorControl_SetMark 16 static
+x_nucleo_ihmxx.c:664:6:BSP_MotorControl_SetMaxSpeed 24 static
+x_nucleo_ihmxx.c:687:6:BSP_MotorControl_SetMinSpeed 24 static
+x_nucleo_ihmxx.c:710:6:BSP_MotorControl_SoftStop 24 static
+x_nucleo_ihmxx.c:732:6:BSP_MotorControl_StepClockHandler 16 static
+x_nucleo_ihmxx.c:749:6:BSP_MotorControl_WaitWhileActive 16 static
+x_nucleo_ihmxx.c:779:6:BSP_MotorControl_CmdDisable 16 static
+x_nucleo_ihmxx.c:801:6:BSP_MotorControl_CmdEnable 16 static
+x_nucleo_ihmxx.c:819:10:BSP_MotorControl_CmdGetParam 24 static
+x_nucleo_ihmxx.c:847:10:BSP_MotorControl_CmdGetStatus 24 static
+x_nucleo_ihmxx.c:866:6:BSP_MotorControl_CmdNop 16 static
+x_nucleo_ihmxx.c:885:6:BSP_MotorControl_CmdSetParam 24 static
+x_nucleo_ihmxx.c:906:10:BSP_MotorControl_ReadStatusRegister 24 static
+x_nucleo_ihmxx.c:925:6:BSP_MotorControl_ReleaseReset 16 static
+x_nucleo_ihmxx.c:941:6:BSP_MotorControl_Reset 16 static
+x_nucleo_ihmxx.c:961:6:BSP_MotorControl_SelectStepMode 24 static
+x_nucleo_ihmxx.c:987:6:BSP_MotorControl_SetDirection 16 static
+x_nucleo_ihmxx.c:1007:6:BSP_MotorControl_CmdGoToDir 16 static
+x_nucleo_ihmxx.c:1025:9:BSP_MotorControl_CheckBusyHw 16 static
+x_nucleo_ihmxx.c:1046:9:BSP_MotorControl_CheckStatusHw 16 static
+x_nucleo_ihmxx.c:1068:6:BSP_MotorControl_CmdGoUntil 24 static
+x_nucleo_ihmxx.c:1089:6:BSP_MotorControl_CmdHardHiZ 16 static
+x_nucleo_ihmxx.c:1108:6:BSP_MotorControl_CmdReleaseSw 16 static
+x_nucleo_ihmxx.c:1125:6:BSP_MotorControl_CmdResetDevice 16 static
+x_nucleo_ihmxx.c:1142:6:BSP_MotorControl_CmdResetPos 16 static
+x_nucleo_ihmxx.c:1161:6:BSP_MotorControl_CmdRun 16 static
+x_nucleo_ihmxx.c:1178:6:BSP_MotorControl_CmdSoftHiZ 16 static
+x_nucleo_ihmxx.c:1196:6:BSP_MotorControl_CmdStepClock 16 static
+x_nucleo_ihmxx.c:1218:6:BSP_MotorControl_FetchAndClearAllStatus 8 static
+x_nucleo_ihmxx.c:1238:10:BSP_MotorControl_GetFetchedStatus 24 static
+x_nucleo_ihmxx.c:1256:9:BSP_MotorControl_GetNbDevices 16 static
+x_nucleo_ihmxx.c:1276:6:BSP_MotorControl_IsDeviceBusy 24 static
+x_nucleo_ihmxx.c:1295:6:BSP_MotorControl_SendQueuedCommands 8 static
+x_nucleo_ihmxx.c:1321:6:BSP_MotorControl_QueueCommands 16 static
+x_nucleo_ihmxx.c:1337:6:BSP_MotorControl_WaitForAllDevicesNotBusy 8 static
+x_nucleo_ihmxx.c:1353:6:BSP_MotorControl_BusyInterruptHandler 8 static
+x_nucleo_ihmxx.c:1370:6:BSP_MotorControl_CmdSoftStop 16 static
+x_nucleo_ihmxx.c:1388:6:BSP_MotorControl_StartStepClock 16 static
+x_nucleo_ihmxx.c:1404:6:BSP_MotorControl_StopStepClock 8 static
+x_nucleo_ihmxx.c:1424:6:BSP_MotorControl_SetDualFullBridgeConfig 16 static
+x_nucleo_ihmxx.c:1442:10:BSP_MotorControl_GetBridgeInputPwmFreq 24 static
+x_nucleo_ihmxx.c:1464:6:BSP_MotorControl_SetBridgeInputPwmFreq 16 static
+x_nucleo_ihmxx.c:1485:6:BSP_MotorControl_SetStopMode 16 static
+x_nucleo_ihmxx.c:1503:17:BSP_MotorControl_GetStopMode 24 static
+x_nucleo_ihmxx.c:1525:6:BSP_MotorControl_SetDecayMode 16 static
+x_nucleo_ihmxx.c:1543:18:BSP_MotorControl_GetDecayMode 24 static
+x_nucleo_ihmxx.c:1564:17:BSP_MotorControl_GetStepMode 24 static
+x_nucleo_ihmxx.c:1585:12:BSP_MotorControl_GetDirection 24 static
+x_nucleo_ihmxx.c:1605:6:BSP_MotorControl_ExitDeviceFromReset 16 static
+x_nucleo_ihmxx.c:1623:9:BSP_MotorControl_GetTorque 24 static
+x_nucleo_ihmxx.c:1645:6:BSP_MotorControl_SetTorque 16 static
+x_nucleo_ihmxx.c:1663:6:BSP_MotorControl_SetRefFreq 16 static
+x_nucleo_ihmxx.c:1680:10:BSP_MotorControl_GetRefFreq 24 static
+x_nucleo_ihmxx.c:1700:6:BSP_MotorControl_SetRefDc 16 static
+x_nucleo_ihmxx.c:1717:9:BSP_MotorControl_GetRefDc 24 static
+x_nucleo_ihmxx.c:1739:6:BSP_MotorControl_SetNbDevices 24 static
+x_nucleo_ihmxx.c:1798:6:BSP_MotorControl_SetAnalogValue 32 static
+x_nucleo_ihmxx.c:1818:7:BSP_MotorControl_GetAnalogValue 24 static
+x_nucleo_ihmxx.c:1838:6:BSP_MotorControl_SetTorqueBoostEnable 16 static
+x_nucleo_ihmxx.c:1855:6:BSP_MotorControl_GetTorqueBoostEnable 24 static
+x_nucleo_ihmxx.c:1876:6:BSP_MotorControl_SetTorqueBoostThreshold 16 static
+x_nucleo_ihmxx.c:1894:10:BSP_MotorControl_GetTorqueBoostThreshold 24 static
+x_nucleo_ihmxx.c:1915:9:BSP_MotorControl_GetDualFullBridgeConfig 16 static
diff --git a/stepper/steppermotor_F401RE/Debug/Core/Startup/startup_stm32f401retx.d b/stepper/steppermotor_F401RE/Debug/Core/Startup/startup_stm32f401retx.d
new file mode 100644
index 0000000..9808b0a
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Core/Startup/startup_stm32f401retx.d
@@ -0,0 +1,2 @@
+Core/Startup/startup_stm32f401retx.o: \
+ ../Core/Startup/startup_stm32f401retx.s
diff --git a/stepper/steppermotor_F401RE/Debug/Core/Startup/startup_stm32f401retx.o b/stepper/steppermotor_F401RE/Debug/Core/Startup/startup_stm32f401retx.o
new file mode 100644
index 0000000..dc85d2b
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Core/Startup/startup_stm32f401retx.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Core/Startup/subdir.mk b/stepper/steppermotor_F401RE/Debug/Core/Startup/subdir.mk
new file mode 100644
index 0000000..24f50d1
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Core/Startup/subdir.mk
@@ -0,0 +1,19 @@
+################################################################################
+# Automatically-generated file. Do not edit!
+################################################################################
+
+# Add inputs and outputs from these tool invocations to the build variables
+S_SRCS += \
+../Core/Startup/startup_stm32f401retx.s
+
+OBJS += \
+./Core/Startup/startup_stm32f401retx.o
+
+S_DEPS += \
+./Core/Startup/startup_stm32f401retx.d
+
+
+# Each subdirectory must supply rules for building sources it contributes
+Core/Startup/startup_stm32f401retx.o: ../Core/Startup/startup_stm32f401retx.s
+ arm-none-eabi-gcc -mcpu=cortex-m4 -g3 -c -x assembler-with-cpp -MMD -MP -MF"Core/Startup/startup_stm32f401retx.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@" "$<"
+
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.d
new file mode 100644
index 0000000..81270d8
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o
new file mode 100644
index 0000000..6bcb7c4
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.su
new file mode 100644
index 0000000..d3a7a8d
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.su
@@ -0,0 +1,25 @@
+stm32f4xx_hal.c:173:19:HAL_Init 8 static
+stm32f4xx_hal.c:206:19:HAL_DeInit 8 static
+stm32f4xx_hal.c:235:13:HAL_MspInit 4 static
+stm32f4xx_hal.c:246:13:HAL_MspDeInit 4 static
+stm32f4xx_hal.c:269:26:HAL_InitTick 16 static
+stm32f4xx_hal.c:328:13:HAL_IncTick 4 static
+stm32f4xx_hal.c:339:17:HAL_GetTick 4 static
+stm32f4xx_hal.c:348:10:HAL_GetTickPrio 4 static
+stm32f4xx_hal.c:357:19:HAL_SetTickFreq 24 static
+stm32f4xx_hal.c:377:21:HAL_GetTickFreq 4 static
+stm32f4xx_hal.c:393:13:HAL_Delay 24 static
+stm32f4xx_hal.c:419:13:HAL_SuspendTick 4 static
+stm32f4xx_hal.c:435:13:HAL_ResumeTick 4 static
+stm32f4xx_hal.c:445:10:HAL_GetHalVersion 4 static
+stm32f4xx_hal.c:454:10:HAL_GetREVID 4 static
+stm32f4xx_hal.c:463:10:HAL_GetDEVID 4 static
+stm32f4xx_hal.c:472:6:HAL_DBGMCU_EnableDBGSleepMode 4 static
+stm32f4xx_hal.c:481:6:HAL_DBGMCU_DisableDBGSleepMode 4 static
+stm32f4xx_hal.c:490:6:HAL_DBGMCU_EnableDBGStopMode 4 static
+stm32f4xx_hal.c:499:6:HAL_DBGMCU_DisableDBGStopMode 4 static
+stm32f4xx_hal.c:508:6:HAL_DBGMCU_EnableDBGStandbyMode 4 static
+stm32f4xx_hal.c:517:6:HAL_DBGMCU_DisableDBGStandbyMode 4 static
+stm32f4xx_hal.c:528:6:HAL_EnableCompensationCell 4 static
+stm32f4xx_hal.c:539:6:HAL_DisableCompensationCell 4 static
+stm32f4xx_hal.c:549:6:HAL_GetUID 16 static
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.d
new file mode 100644
index 0000000..0d868ba
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o
new file mode 100644
index 0000000..105455b
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.su
new file mode 100644
index 0000000..c358880
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.su
@@ -0,0 +1,26 @@
+stm32f4xx_hal_adc.c:256:19:HAL_ADC_Init 24 static
+stm32f4xx_hal_adc.c:334:19:HAL_ADC_DeInit 24 static
+stm32f4xx_hal_adc.c:381:13:HAL_ADC_MspInit 16 static
+stm32f4xx_hal_adc.c:396:13:HAL_ADC_MspDeInit 16 static
+stm32f4xx_hal_adc.c:435:19:HAL_ADC_Start 24 static
+stm32f4xx_hal_adc.c:542:19:HAL_ADC_Stop 16 static
+stm32f4xx_hal_adc.c:585:19:HAL_ADC_PollForConversion 24 static
+stm32f4xx_hal_adc.c:670:19:HAL_ADC_PollForEvent 32 static
+stm32f4xx_hal_adc.c:732:19:HAL_ADC_Start_IT 24 static
+stm32f4xx_hal_adc.c:841:19:HAL_ADC_Stop_IT 16 static
+stm32f4xx_hal_adc.c:878:6:HAL_ADC_IRQHandler 24 static
+stm32f4xx_hal_adc.c:1023:19:HAL_ADC_Start_DMA 32 static
+stm32f4xx_hal_adc.c:1148:19:HAL_ADC_Stop_DMA 24 static
+stm32f4xx_hal_adc.c:1194:10:HAL_ADC_GetValue 16 static
+stm32f4xx_hal_adc.c:1206:13:HAL_ADC_ConvCpltCallback 16 static
+stm32f4xx_hal_adc.c:1221:13:HAL_ADC_ConvHalfCpltCallback 16 static
+stm32f4xx_hal_adc.c:1236:13:HAL_ADC_LevelOutOfWindowCallback 16 static
+stm32f4xx_hal_adc.c:1257:13:HAL_ADC_ErrorCallback 16 static
+stm32f4xx_hal_adc.c:1295:19:HAL_ADC_ConfigChannel 24 static
+stm32f4xx_hal_adc.c:1407:19:HAL_ADC_AnalogWDGConfig 16 static
+stm32f4xx_hal_adc.c:1489:10:HAL_ADC_GetState 16 static
+stm32f4xx_hal_adc.c:1501:10:HAL_ADC_GetError 16 static
+stm32f4xx_hal_adc.c:1521:13:ADC_Init 24 static
+stm32f4xx_hal_adc.c:1609:13:ADC_DMAConvCplt 24 static
+stm32f4xx_hal_adc.c:1662:13:ADC_DMAHalfConvCplt 24 static
+stm32f4xx_hal_adc.c:1675:13:ADC_DMAError 24 static
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.d
new file mode 100644
index 0000000..ad590bd
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.o
new file mode 100644
index 0000000..06df6de
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.su
new file mode 100644
index 0000000..6b3640b
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.su
@@ -0,0 +1,15 @@
+stm32f4xx_hal_adc_ex.c:175:19:HAL_ADCEx_InjectedStart 32 static
+stm32f4xx_hal_adc_ex.c:270:19:HAL_ADCEx_InjectedStart_IT 32 static
+stm32f4xx_hal_adc_ex.c:373:19:HAL_ADCEx_InjectedStop 24 static
+stm32f4xx_hal_adc_ex.c:427:19:HAL_ADCEx_InjectedPollForConversion 24 static
+stm32f4xx_hal_adc_ex.c:494:19:HAL_ADCEx_InjectedStop_IT 24 static
+stm32f4xx_hal_adc_ex.c:556:10:HAL_ADCEx_InjectedGetValue 24 static
+stm32f4xx_hal_adc_ex.c:607:19:HAL_ADCEx_MultiModeStart_DMA 32 static
+stm32f4xx_hal_adc_ex.c:726:19:HAL_ADCEx_MultiModeStop_DMA 24 static
+stm32f4xx_hal_adc_ex.c:779:10:HAL_ADCEx_MultiModeGetValue 24 static
+stm32f4xx_hal_adc_ex.c:798:13:HAL_ADCEx_InjectedConvCpltCallback 16 static
+stm32f4xx_hal_adc_ex.c:815:19:HAL_ADCEx_InjectedConfigChannel 24 static
+stm32f4xx_hal_adc_ex.c:979:19:HAL_ADCEx_MultiModeConfigChannel 24 static
+stm32f4xx_hal_adc_ex.c:1026:13:ADC_MultiModeDMAConvCplt 24 static
+stm32f4xx_hal_adc_ex.c:1079:13:ADC_MultiModeDMAHalfConvCplt 24 static
+stm32f4xx_hal_adc_ex.c:1092:13:ADC_MultiModeDMAError 24 static
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.d
new file mode 100644
index 0000000..afaddd9
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.o
new file mode 100644
index 0000000..1bd5104
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.su
new file mode 100644
index 0000000..e69de29
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cec.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cec.d
new file mode 100644
index 0000000..048d3ba
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cec.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cec.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cec.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cec.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cec.o
new file mode 100644
index 0000000..1ea6e15
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cec.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cec.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cec.su
new file mode 100644
index 0000000..e69de29
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.d
new file mode 100644
index 0000000..8b558bc
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o
new file mode 100644
index 0000000..745eb32
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.su
new file mode 100644
index 0000000..6d4b3bd
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.su
@@ -0,0 +1,32 @@
+core_cm4.h:1657:22:__NVIC_SetPriorityGrouping 24 static
+core_cm4.h:1676:26:__NVIC_GetPriorityGrouping 4 static
+core_cm4.h:1688:22:__NVIC_EnableIRQ 16 static
+core_cm4.h:1724:22:__NVIC_DisableIRQ 16 static,ignoring_inline_asm
+core_cm4.h:1743:26:__NVIC_GetPendingIRQ 16 static
+core_cm4.h:1762:22:__NVIC_SetPendingIRQ 16 static
+core_cm4.h:1777:22:__NVIC_ClearPendingIRQ 16 static
+core_cm4.h:1794:26:__NVIC_GetActive 16 static
+core_cm4.h:1816:22:__NVIC_SetPriority 16 static
+core_cm4.h:1838:26:__NVIC_GetPriority 16 static
+core_cm4.h:1863:26:NVIC_EncodePriority 40 static
+core_cm4.h:1890:22:NVIC_DecodePriority 40 static
+core_cm4.h:1939:34:__NVIC_SystemReset 4 static,ignoring_inline_asm
+core_cm4.h:2022:26:SysTick_Config 16 static
+stm32f4xx_hal_cortex.c:159:6:HAL_NVIC_SetPriorityGrouping 16 static
+stm32f4xx_hal_cortex.c:181:6:HAL_NVIC_SetPriority 32 static
+stm32f4xx_hal_cortex.c:203:6:HAL_NVIC_EnableIRQ 16 static
+stm32f4xx_hal_cortex.c:219:6:HAL_NVIC_DisableIRQ 16 static
+stm32f4xx_hal_cortex.c:232:6:HAL_NVIC_SystemReset 8 static
+stm32f4xx_hal_cortex.c:245:10:HAL_SYSTICK_Config 16 static
+stm32f4xx_hal_cortex.c:274:6:HAL_MPU_Disable 4 static,ignoring_inline_asm
+stm32f4xx_hal_cortex.c:297:6:HAL_MPU_Enable 16 static,ignoring_inline_asm
+stm32f4xx_hal_cortex.c:316:6:HAL_MPU_ConfigRegion 16 static
+stm32f4xx_hal_cortex.c:360:10:HAL_NVIC_GetPriorityGrouping 8 static
+stm32f4xx_hal_cortex.c:387:6:HAL_NVIC_GetPriority 24 static
+stm32f4xx_hal_cortex.c:402:6:HAL_NVIC_SetPendingIRQ 16 static
+stm32f4xx_hal_cortex.c:420:10:HAL_NVIC_GetPendingIRQ 16 static
+stm32f4xx_hal_cortex.c:436:6:HAL_NVIC_ClearPendingIRQ 16 static
+stm32f4xx_hal_cortex.c:453:10:HAL_NVIC_GetActive 16 static
+stm32f4xx_hal_cortex.c:470:6:HAL_SYSTICK_CLKSourceConfig 16 static
+stm32f4xx_hal_cortex.c:488:6:HAL_SYSTICK_IRQHandler 8 static
+stm32f4xx_hal_cortex.c:497:13:HAL_SYSTICK_Callback 4 static
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_crc.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_crc.d
new file mode 100644
index 0000000..f3a3ae4
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_crc.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_crc.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_crc.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_crc.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_crc.o
new file mode 100644
index 0000000..8cc31f8
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_crc.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_crc.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_crc.su
new file mode 100644
index 0000000..e69de29
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cryp.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cryp.d
new file mode 100644
index 0000000..93aab3c
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cryp.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cryp.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cryp.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cryp.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cryp.o
new file mode 100644
index 0000000..4ebd6eb
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cryp.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cryp.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cryp.su
new file mode 100644
index 0000000..e69de29
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cryp_ex.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cryp_ex.d
new file mode 100644
index 0000000..405131e
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cryp_ex.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cryp_ex.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cryp_ex.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cryp_ex.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cryp_ex.o
new file mode 100644
index 0000000..6ba16d7
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cryp_ex.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cryp_ex.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cryp_ex.su
new file mode 100644
index 0000000..e69de29
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dac.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dac.d
new file mode 100644
index 0000000..94075e2
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dac.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dac.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dac.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dac.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dac.o
new file mode 100644
index 0000000..fce90d7
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dac.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dac.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dac.su
new file mode 100644
index 0000000..e69de29
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dac_ex.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dac_ex.d
new file mode 100644
index 0000000..fbf306a
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dac_ex.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dac_ex.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dac_ex.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dac_ex.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dac_ex.o
new file mode 100644
index 0000000..2b82a32
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dac_ex.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dac_ex.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dac_ex.su
new file mode 100644
index 0000000..e69de29
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dcmi.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dcmi.d
new file mode 100644
index 0000000..bb6b8b7
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dcmi.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dcmi.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dcmi.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dcmi.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dcmi.o
new file mode 100644
index 0000000..0b91c5a
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dcmi.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dcmi.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dcmi.su
new file mode 100644
index 0000000..e69de29
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dcmi_ex.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dcmi_ex.d
new file mode 100644
index 0000000..a7dd8ea
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dcmi_ex.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dcmi_ex.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dcmi_ex.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dcmi_ex.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dcmi_ex.o
new file mode 100644
index 0000000..6df10ef
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dcmi_ex.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dcmi_ex.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dcmi_ex.su
new file mode 100644
index 0000000..e69de29
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dfsdm.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dfsdm.d
new file mode 100644
index 0000000..91c9a93
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dfsdm.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dfsdm.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dfsdm.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dfsdm.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dfsdm.o
new file mode 100644
index 0000000..3ffc3fb
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dfsdm.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dfsdm.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dfsdm.su
new file mode 100644
index 0000000..e69de29
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.d
new file mode 100644
index 0000000..af86b9b
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.o
new file mode 100644
index 0000000..f8623e1
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.su
new file mode 100644
index 0000000..1d012e7
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.su
@@ -0,0 +1,15 @@
+stm32f4xx_hal_dma.c:187:19:HAL_DMA_Init 32 static
+stm32f4xx_hal_dma.c:326:19:HAL_DMA_DeInit 24 static
+stm32f4xx_hal_dma.c:416:19:HAL_DMA_Start 32 static
+stm32f4xx_hal_dma.c:460:19:HAL_DMA_Start_IT 32 static
+stm32f4xx_hal_dma.c:523:19:HAL_DMA_Abort 24 static
+stm32f4xx_hal_dma.c:590:19:HAL_DMA_Abort_IT 16 static
+stm32f4xx_hal_dma.c:620:19:HAL_DMA_PollForTransfer 48 static
+stm32f4xx_hal_dma.c:756:6:HAL_DMA_IRQHandler 32 static
+stm32f4xx_hal_dma.c:977:19:HAL_DMA_RegisterCallback 32 static
+stm32f4xx_hal_dma.c:1037:19:HAL_DMA_UnRegisterCallback 24 static
+stm32f4xx_hal_dma.c:1122:22:HAL_DMA_GetState 16 static
+stm32f4xx_hal_dma.c:1133:10:HAL_DMA_GetError 16 static
+stm32f4xx_hal_dma.c:1159:13:DMA_SetConfig 24 static
+stm32f4xx_hal_dma.c:1193:17:DMA_CalcBaseAndBitshift 24 static
+stm32f4xx_hal_dma.c:1221:26:DMA_CheckFifoParam 24 static
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma2d.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma2d.d
new file mode 100644
index 0000000..771b70b
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma2d.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma2d.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma2d.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma2d.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma2d.o
new file mode 100644
index 0000000..0e93a53
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma2d.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma2d.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma2d.su
new file mode 100644
index 0000000..e69de29
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.d
new file mode 100644
index 0000000..743e0f7
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.o
new file mode 100644
index 0000000..0105b6a
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.su
new file mode 100644
index 0000000..b0cbf18
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.su
@@ -0,0 +1,4 @@
+stm32f4xx_hal_dma_ex.c:117:19:HAL_DMAEx_MultiBufferStart 32 static
+stm32f4xx_hal_dma_ex.c:171:19:HAL_DMAEx_MultiBufferStart_IT 32 static
+stm32f4xx_hal_dma_ex.c:256:19:HAL_DMAEx_ChangeMemory 24 static
+stm32f4xx_hal_dma_ex.c:293:13:DMA_MultiBufferSetConfig 24 static
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dsi.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dsi.d
new file mode 100644
index 0000000..6b78ac4
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dsi.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dsi.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dsi.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dsi.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dsi.o
new file mode 100644
index 0000000..226ac95
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dsi.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dsi.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dsi.su
new file mode 100644
index 0000000..e69de29
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_eth.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_eth.d
new file mode 100644
index 0000000..2aa66b1
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_eth.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_eth.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_eth.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_eth.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_eth.o
new file mode 100644
index 0000000..26f2a8d
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_eth.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_eth.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_eth.su
new file mode 100644
index 0000000..e69de29
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.d
new file mode 100644
index 0000000..7615abe
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.o
new file mode 100644
index 0000000..58d5a51
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.su
new file mode 100644
index 0000000..e69de29
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.d
new file mode 100644
index 0000000..93c7fbf
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.o
new file mode 100644
index 0000000..a8045c2
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.su
new file mode 100644
index 0000000..97c3482
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.su
@@ -0,0 +1,17 @@
+stm32f4xx_hal_flash.c:172:19:HAL_FLASH_Program 32 static
+stm32f4xx_hal_flash.c:230:19:HAL_FLASH_Program_IT 32 static
+stm32f4xx_hal_flash.c:277:6:HAL_FLASH_IRQHandler 16 static
+stm32f4xx_hal_flash.c:400:13:HAL_FLASH_EndOfOperationCallback 16 static
+stm32f4xx_hal_flash.c:417:13:HAL_FLASH_OperationErrorCallback 16 static
+stm32f4xx_hal_flash.c:449:19:HAL_FLASH_Unlock 16 static
+stm32f4xx_hal_flash.c:473:19:HAL_FLASH_Lock 4 static
+stm32f4xx_hal_flash.c:485:19:HAL_FLASH_OB_Unlock 4 static
+stm32f4xx_hal_flash.c:505:19:HAL_FLASH_OB_Lock 4 static
+stm32f4xx_hal_flash.c:517:19:HAL_FLASH_OB_Launch 8 static
+stm32f4xx_hal_flash.c:554:10:HAL_FLASH_GetError 4 static
+stm32f4xx_hal_flash.c:568:19:FLASH_WaitForLastOperation 24 static
+stm32f4xx_hal_flash.c:628:13:FLASH_Program_DoubleWord 24 static
+stm32f4xx_hal_flash.c:656:13:FLASH_Program_Word 16 static
+stm32f4xx_hal_flash.c:681:13:FLASH_Program_HalfWord 16 static
+stm32f4xx_hal_flash.c:706:13:FLASH_Program_Byte 16 static
+stm32f4xx_hal_flash.c:723:13:FLASH_SetErrorCode 4 static
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.d
new file mode 100644
index 0000000..91cdc4d
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.o
new file mode 100644
index 0000000..6e9e30b
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.su
new file mode 100644
index 0000000..3ee9c7d
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.su
@@ -0,0 +1,22 @@
+stm32f4xx_hal_flash_ex.c:178:19:HAL_FLASHEx_Erase 24 static
+stm32f4xx_hal_flash_ex.c:249:19:HAL_FLASHEx_Erase_IT 24 static
+stm32f4xx_hal_flash_ex.c:302:19:HAL_FLASHEx_OBProgram 24 static
+stm32f4xx_hal_flash_ex.c:361:6:HAL_FLASHEx_OBGetConfig 16 static
+stm32f4xx_hal_flash_ex.c:390:19:HAL_FLASHEx_AdvOBProgram 24 static
+stm32f4xx_hal_flash_ex.c:446:6:HAL_FLASHEx_AdvOBGetConfig 16 static
+stm32f4xx_hal_flash_ex.c:478:19:HAL_FLASHEx_OB_SelectPCROP 16 static
+stm32f4xx_hal_flash_ex.c:503:19:HAL_FLASHEx_OB_DeSelectPCROP 16 static
+stm32f4xx_hal_flash_ex.c:969:13:FLASH_MassErase 16 static
+stm32f4xx_hal_flash_ex.c:998:6:FLASH_Erase_Sector 24 static
+stm32f4xx_hal_flash_ex.c:1048:26:FLASH_OB_EnableWRP 24 static
+stm32f4xx_hal_flash_ex.c:1084:26:FLASH_OB_DisableWRP 24 static
+stm32f4xx_hal_flash_ex.c:1117:26:FLASH_OB_EnablePCROP 24 static
+stm32f4xx_hal_flash_ex.c:1145:26:FLASH_OB_DisablePCROP 24 static
+stm32f4xx_hal_flash_ex.c:1178:26:FLASH_OB_RDP_LevelConfig 24 static
+stm32f4xx_hal_flash_ex.c:1212:26:FLASH_OB_UserConfig 24 static
+stm32f4xx_hal_flash_ex.c:1247:26:FLASH_OB_BOR_LevelConfig 16 static
+stm32f4xx_hal_flash_ex.c:1265:16:FLASH_OB_GetUser 4 static
+stm32f4xx_hal_flash_ex.c:1275:17:FLASH_OB_GetWRP 4 static
+stm32f4xx_hal_flash_ex.c:1289:16:FLASH_OB_GetRDP 16 static
+stm32f4xx_hal_flash_ex.c:1317:16:FLASH_OB_GetBOR 4 static
+stm32f4xx_hal_flash_ex.c:1327:6:FLASH_FlushCaches 4 static
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.d
new file mode 100644
index 0000000..0fa42ea
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.o
new file mode 100644
index 0000000..3087e53
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.su
new file mode 100644
index 0000000..e69de29
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_fmpi2c.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_fmpi2c.d
new file mode 100644
index 0000000..1d2774a
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_fmpi2c.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_fmpi2c.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_fmpi2c.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_fmpi2c.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_fmpi2c.o
new file mode 100644
index 0000000..589d71e
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_fmpi2c.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_fmpi2c.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_fmpi2c.su
new file mode 100644
index 0000000..e69de29
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_fmpi2c_ex.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_fmpi2c_ex.d
new file mode 100644
index 0000000..feea01f
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_fmpi2c_ex.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_fmpi2c_ex.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_fmpi2c_ex.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_fmpi2c_ex.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_fmpi2c_ex.o
new file mode 100644
index 0000000..403077c
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_fmpi2c_ex.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_fmpi2c_ex.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_fmpi2c_ex.su
new file mode 100644
index 0000000..e69de29
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.d
new file mode 100644
index 0000000..5052bd7
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o
new file mode 100644
index 0000000..f143260
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.su
new file mode 100644
index 0000000..c1b2c91
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.su
@@ -0,0 +1,8 @@
+stm32f4xx_hal_gpio.c:187:6:HAL_GPIO_Init 40 static
+stm32f4xx_hal_gpio.c:312:6:HAL_GPIO_DeInit 32 static
+stm32f4xx_hal_gpio.c:393:15:HAL_GPIO_ReadPin 24 static
+stm32f4xx_hal_gpio.c:428:6:HAL_GPIO_WritePin 16 static
+stm32f4xx_hal_gpio.c:451:6:HAL_GPIO_TogglePin 16 static
+stm32f4xx_hal_gpio.c:470:19:HAL_GPIO_LockPin 24 static
+stm32f4xx_hal_gpio.c:503:6:HAL_GPIO_EXTI_IRQHandler 16 static
+stm32f4xx_hal_gpio.c:518:13:HAL_GPIO_EXTI_Callback 16 static
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hash.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hash.d
new file mode 100644
index 0000000..2147446
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hash.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hash.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hash.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hash.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hash.o
new file mode 100644
index 0000000..d9ce50f
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hash.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hash.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hash.su
new file mode 100644
index 0000000..e69de29
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hash_ex.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hash_ex.d
new file mode 100644
index 0000000..f88d5aa
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hash_ex.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hash_ex.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hash_ex.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hash_ex.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hash_ex.o
new file mode 100644
index 0000000..2dc4109
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hash_ex.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hash_ex.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hash_ex.su
new file mode 100644
index 0000000..e69de29
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hcd.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hcd.d
new file mode 100644
index 0000000..2bb20df
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hcd.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hcd.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hcd.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hcd.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hcd.o
new file mode 100644
index 0000000..e54b9eb
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hcd.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hcd.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hcd.su
new file mode 100644
index 0000000..e69de29
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c.d
new file mode 100644
index 0000000..9524b21
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c.o
new file mode 100644
index 0000000..951afe1
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c.su
new file mode 100644
index 0000000..e69de29
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c_ex.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c_ex.d
new file mode 100644
index 0000000..7bfb4f7
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c_ex.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c_ex.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c_ex.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c_ex.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c_ex.o
new file mode 100644
index 0000000..89b4df5
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c_ex.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c_ex.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c_ex.su
new file mode 100644
index 0000000..e69de29
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2s.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2s.d
new file mode 100644
index 0000000..b45d3cf
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2s.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2s.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2s.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2s.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2s.o
new file mode 100644
index 0000000..72e905a
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2s.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2s.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2s.su
new file mode 100644
index 0000000..e69de29
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2s_ex.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2s_ex.d
new file mode 100644
index 0000000..e117296
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2s_ex.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2s_ex.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2s_ex.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2s_ex.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2s_ex.o
new file mode 100644
index 0000000..9b57f1b
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2s_ex.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2s_ex.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2s_ex.su
new file mode 100644
index 0000000..e69de29
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_irda.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_irda.d
new file mode 100644
index 0000000..0735da0
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_irda.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_irda.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_irda.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_irda.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_irda.o
new file mode 100644
index 0000000..8a3670d
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_irda.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_irda.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_irda.su
new file mode 100644
index 0000000..e69de29
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_iwdg.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_iwdg.d
new file mode 100644
index 0000000..da782fa
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_iwdg.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_iwdg.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_iwdg.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_iwdg.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_iwdg.o
new file mode 100644
index 0000000..10b0642
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_iwdg.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_iwdg.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_iwdg.su
new file mode 100644
index 0000000..e69de29
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_lptim.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_lptim.d
new file mode 100644
index 0000000..a609c3f
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_lptim.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_lptim.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_lptim.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_lptim.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_lptim.o
new file mode 100644
index 0000000..bc14229
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_lptim.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_lptim.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_lptim.su
new file mode 100644
index 0000000..e69de29
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_ltdc.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_ltdc.d
new file mode 100644
index 0000000..d4fb718
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_ltdc.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_ltdc.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_ltdc.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_ltdc.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_ltdc.o
new file mode 100644
index 0000000..4e7e786
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_ltdc.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_ltdc.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_ltdc.su
new file mode 100644
index 0000000..e69de29
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_ltdc_ex.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_ltdc_ex.d
new file mode 100644
index 0000000..8d739f7
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_ltdc_ex.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_ltdc_ex.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_ltdc_ex.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_ltdc_ex.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_ltdc_ex.o
new file mode 100644
index 0000000..c5b7325
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_ltdc_ex.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_ltdc_ex.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_ltdc_ex.su
new file mode 100644
index 0000000..e69de29
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_mmc.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_mmc.d
new file mode 100644
index 0000000..b5f8608
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_mmc.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_mmc.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_mmc.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_mmc.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_mmc.o
new file mode 100644
index 0000000..50cec4e
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_mmc.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_mmc.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_mmc.su
new file mode 100644
index 0000000..e69de29
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_msp_template.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_msp_template.d
new file mode 100644
index 0000000..bac8c21
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_msp_template.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_msp_template.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_msp_template.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_msp_template.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_msp_template.o
new file mode 100644
index 0000000..1142da0
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_msp_template.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_msp_template.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_msp_template.su
new file mode 100644
index 0000000..ad8a90d
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_msp_template.su
@@ -0,0 +1,4 @@
+stm32f4xx_hal_msp_template.c:67:6:HAL_MspInit 4 static
+stm32f4xx_hal_msp_template.c:78:6:HAL_MspDeInit 4 static
+stm32f4xx_hal_msp_template.c:89:6:HAL_PPP_MspInit 4 static
+stm32f4xx_hal_msp_template.c:100:6:HAL_PPP_MspDeInit 4 static
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_nand.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_nand.d
new file mode 100644
index 0000000..12622af
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_nand.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_nand.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_nand.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_nand.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_nand.o
new file mode 100644
index 0000000..a638cf0
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_nand.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_nand.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_nand.su
new file mode 100644
index 0000000..e69de29
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_nor.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_nor.d
new file mode 100644
index 0000000..6656692
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_nor.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_nor.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_nor.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_nor.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_nor.o
new file mode 100644
index 0000000..062dda3
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_nor.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_nor.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_nor.su
new file mode 100644
index 0000000..e69de29
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pccard.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pccard.d
new file mode 100644
index 0000000..28c1beb
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pccard.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pccard.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pccard.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pccard.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pccard.o
new file mode 100644
index 0000000..797c9f3
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pccard.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pccard.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pccard.su
new file mode 100644
index 0000000..e69de29
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.d
new file mode 100644
index 0000000..7ca7073
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.o
new file mode 100644
index 0000000..cf93c86
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.su
new file mode 100644
index 0000000..e69de29
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.d
new file mode 100644
index 0000000..d5db802
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.o
new file mode 100644
index 0000000..7c73fc7
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.su
new file mode 100644
index 0000000..e69de29
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.d
new file mode 100644
index 0000000..6284d44
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.o
new file mode 100644
index 0000000..cb2843b
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.su
new file mode 100644
index 0000000..edc8c04
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.su
@@ -0,0 +1,17 @@
+stm32f4xx_hal_pwr.c:108:6:HAL_PWR_DeInit 4 static
+stm32f4xx_hal_pwr.c:121:6:HAL_PWR_EnableBkUpAccess 4 static
+stm32f4xx_hal_pwr.c:133:6:HAL_PWR_DisableBkUpAccess 4 static
+stm32f4xx_hal_pwr.c:268:6:HAL_PWR_ConfigPVD 16 static
+stm32f4xx_hal_pwr.c:311:6:HAL_PWR_EnablePVD 4 static
+stm32f4xx_hal_pwr.c:320:6:HAL_PWR_DisablePVD 4 static
+stm32f4xx_hal_pwr.c:334:6:HAL_PWR_EnableWakeUpPin 16 static
+stm32f4xx_hal_pwr.c:352:6:HAL_PWR_DisableWakeUpPin 16 static
+stm32f4xx_hal_pwr.c:381:6:HAL_PWR_EnterSLEEPMode 16 static,ignoring_inline_asm
+stm32f4xx_hal_pwr.c:424:6:HAL_PWR_EnterSTOPMode 16 static,ignoring_inline_asm
+stm32f4xx_hal_pwr.c:463:6:HAL_PWR_EnterSTANDBYMode 4 static,ignoring_inline_asm
+stm32f4xx_hal_pwr.c:484:6:HAL_PWR_PVD_IRQHandler 8 static
+stm32f4xx_hal_pwr.c:501:13:HAL_PWR_PVDCallback 4 static
+stm32f4xx_hal_pwr.c:516:6:HAL_PWR_EnableSleepOnExit 4 static
+stm32f4xx_hal_pwr.c:528:6:HAL_PWR_DisableSleepOnExit 4 static
+stm32f4xx_hal_pwr.c:540:6:HAL_PWR_EnableSEVOnPend 4 static
+stm32f4xx_hal_pwr.c:552:6:HAL_PWR_DisableSEVOnPend 4 static
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.d
new file mode 100644
index 0000000..c572337
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.o
new file mode 100644
index 0000000..cdd8df6
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.su
new file mode 100644
index 0000000..421643d
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.su
@@ -0,0 +1,10 @@
+stm32f4xx_hal_pwr_ex.c:159:19:HAL_PWREx_EnableBkUpReg 16 static
+stm32f4xx_hal_pwr_ex.c:183:19:HAL_PWREx_DisableBkUpReg 16 static
+stm32f4xx_hal_pwr_ex.c:207:6:HAL_PWREx_EnableFlashPowerDown 4 static
+stm32f4xx_hal_pwr_ex.c:216:6:HAL_PWREx_DisableFlashPowerDown 4 static
+stm32f4xx_hal_pwr_ex.c:229:10:HAL_PWREx_GetVoltageRange 4 static
+stm32f4xx_hal_pwr_ex.c:306:19:HAL_PWREx_ControlVoltageScaling 32 static
+stm32f4xx_hal_pwr_ex.c:397:6:HAL_PWREx_EnableMainRegulatorLowVoltage 4 static
+stm32f4xx_hal_pwr_ex.c:408:6:HAL_PWREx_DisableMainRegulatorLowVoltage 4 static
+stm32f4xx_hal_pwr_ex.c:419:6:HAL_PWREx_EnableLowRegulatorLowVoltage 4 static
+stm32f4xx_hal_pwr_ex.c:430:6:HAL_PWREx_DisableLowRegulatorLowVoltage 4 static
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_qspi.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_qspi.d
new file mode 100644
index 0000000..21b86f1
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_qspi.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_qspi.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_qspi.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_qspi.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_qspi.o
new file mode 100644
index 0000000..e979bd5
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_qspi.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_qspi.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_qspi.su
new file mode 100644
index 0000000..e69de29
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.d
new file mode 100644
index 0000000..f7a8c19
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o
new file mode 100644
index 0000000..c60cfcd
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.su
new file mode 100644
index 0000000..4868380
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.su
@@ -0,0 +1,14 @@
+stm32f4xx_hal_rcc.c:218:26:HAL_RCC_DeInit 4 static
+stm32f4xx_hal_rcc.c:237:26:HAL_RCC_OscConfig 32 static
+stm32f4xx_hal_rcc.c:581:19:HAL_RCC_ClockConfig 24 static
+stm32f4xx_hal_rcc.c:765:6:HAL_RCC_MCOConfig 56 static
+stm32f4xx_hal_rcc.c:831:6:HAL_RCC_EnableCSS 4 static
+stm32f4xx_hal_rcc.c:840:6:HAL_RCC_DisableCSS 4 static
+stm32f4xx_hal_rcc.c:875:17:HAL_RCC_GetSysClockFreq 40 static
+stm32f4xx_hal_rcc.c:931:10:HAL_RCC_GetHCLKFreq 4 static
+stm32f4xx_hal_rcc.c:942:10:HAL_RCC_GetPCLK1Freq 8 static
+stm32f4xx_hal_rcc.c:954:10:HAL_RCC_GetPCLK2Freq 8 static
+stm32f4xx_hal_rcc.c:967:13:HAL_RCC_GetOscConfig 16 static
+stm32f4xx_hal_rcc.c:1046:6:HAL_RCC_GetClockConfig 16 static
+stm32f4xx_hal_rcc.c:1072:6:HAL_RCC_NMI_IRQHandler 8 static
+stm32f4xx_hal_rcc.c:1089:13:HAL_RCC_CSSCallback 4 static
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.d
new file mode 100644
index 0000000..1759f56
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.o
new file mode 100644
index 0000000..cc5d9e3
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.su
new file mode 100644
index 0000000..fbaf0c6
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.su
@@ -0,0 +1,6 @@
+stm32f4xx_hal_rcc_ex.c:2519:19:HAL_RCCEx_PeriphCLKConfig 32 static
+stm32f4xx_hal_rcc_ex.c:2647:6:HAL_RCCEx_GetPeriphCLKConfig 24 static
+stm32f4xx_hal_rcc_ex.c:2685:10:HAL_RCCEx_GetPeriphCLKFreq 32 static
+stm32f4xx_hal_rcc_ex.c:2809:19:HAL_RCCEx_EnablePLLI2S 24 static
+stm32f4xx_hal_rcc_ex.c:2892:19:HAL_RCCEx_DisablePLLI2S 16 static
+stm32f4xx_hal_rcc_ex.c:3149:19:HAL_RCC_DeInit 16 static
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.d
new file mode 100644
index 0000000..f95bec3
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.o
new file mode 100644
index 0000000..7a0ffa4
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.su
new file mode 100644
index 0000000..e69de29
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc.d
new file mode 100644
index 0000000..e9c3373
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc.o
new file mode 100644
index 0000000..51e3758
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc.su
new file mode 100644
index 0000000..e69de29
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc_ex.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc_ex.d
new file mode 100644
index 0000000..6994646
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc_ex.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc_ex.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc_ex.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc_ex.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc_ex.o
new file mode 100644
index 0000000..6c5ac7d
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc_ex.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc_ex.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc_ex.su
new file mode 100644
index 0000000..e69de29
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sai.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sai.d
new file mode 100644
index 0000000..136683f
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sai.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sai.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sai.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sai.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sai.o
new file mode 100644
index 0000000..97193eb
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sai.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sai.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sai.su
new file mode 100644
index 0000000..e69de29
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sai_ex.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sai_ex.d
new file mode 100644
index 0000000..f848a35
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sai_ex.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sai_ex.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sai_ex.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sai_ex.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sai_ex.o
new file mode 100644
index 0000000..9db7af6
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sai_ex.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sai_ex.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sai_ex.su
new file mode 100644
index 0000000..e69de29
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sd.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sd.d
new file mode 100644
index 0000000..e4c156f
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sd.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sd.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sd.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sd.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sd.o
new file mode 100644
index 0000000..c1d0842
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sd.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sd.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sd.su
new file mode 100644
index 0000000..e69de29
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sdram.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sdram.d
new file mode 100644
index 0000000..c59ce0b
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sdram.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sdram.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sdram.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sdram.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sdram.o
new file mode 100644
index 0000000..67a5acc
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sdram.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sdram.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sdram.su
new file mode 100644
index 0000000..e69de29
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_smartcard.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_smartcard.d
new file mode 100644
index 0000000..b6a952d
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_smartcard.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_smartcard.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_smartcard.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_smartcard.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_smartcard.o
new file mode 100644
index 0000000..fb3dbb6
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_smartcard.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_smartcard.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_smartcard.su
new file mode 100644
index 0000000..e69de29
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spdifrx.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spdifrx.d
new file mode 100644
index 0000000..5cc5d31
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spdifrx.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spdifrx.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spdifrx.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spdifrx.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spdifrx.o
new file mode 100644
index 0000000..07c4787
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spdifrx.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spdifrx.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spdifrx.su
new file mode 100644
index 0000000..e69de29
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.d
new file mode 100644
index 0000000..51502de
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o
new file mode 100644
index 0000000..e667235
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.su
new file mode 100644
index 0000000..63aac4c
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.su
@@ -0,0 +1,58 @@
+stm32f4xx_hal_spi.c:261:19:HAL_SPI_Init 16 static
+stm32f4xx_hal_spi.c:343:19:HAL_SPI_DeInit 16 static
+stm32f4xx_hal_spi.c:377:13:HAL_SPI_MspInit 16 static
+stm32f4xx_hal_spi.c:392:13:HAL_SPI_MspDeInit 16 static
+stm32f4xx_hal_spi.c:447:19:HAL_SPI_Transmit 48 static
+stm32f4xx_hal_spi.c:617:19:HAL_SPI_Receive 48 static
+stm32f4xx_hal_spi.c:814:19:HAL_SPI_TransmitReceive 64 static
+stm32f4xx_hal_spi.c:1037:19:HAL_SPI_Transmit_IT 32 static
+stm32f4xx_hal_spi.c:1127:19:HAL_SPI_Receive_IT 32 static
+stm32f4xx_hal_spi.c:1219:19:HAL_SPI_TransmitReceive_IT 40 static
+stm32f4xx_hal_spi.c:1305:19:HAL_SPI_Transmit_DMA 32 static
+stm32f4xx_hal_spi.c:1398:19:HAL_SPI_Receive_DMA 32 static
+stm32f4xx_hal_spi.c:1495:19:HAL_SPI_TransmitReceive_DMA 40 static
+stm32f4xx_hal_spi.c:1617:19:HAL_SPI_Abort 32 static
+stm32f4xx_hal_spi.c:1714:19:HAL_SPI_Abort_IT 32 static
+stm32f4xx_hal_spi.c:1860:19:HAL_SPI_DMAPause 16 static
+stm32f4xx_hal_spi.c:1880:19:HAL_SPI_DMAResume 16 static
+stm32f4xx_hal_spi.c:1900:19:HAL_SPI_DMAStop 16 static
+stm32f4xx_hal_spi.c:1931:6:HAL_SPI_IRQHandler 40 static
+stm32f4xx_hal_spi.c:2027:13:HAL_SPI_TxCpltCallback 16 static
+stm32f4xx_hal_spi.c:2042:13:HAL_SPI_RxCpltCallback 16 static
+stm32f4xx_hal_spi.c:2057:13:HAL_SPI_TxRxCpltCallback 16 static
+stm32f4xx_hal_spi.c:2072:13:HAL_SPI_TxHalfCpltCallback 16 static
+stm32f4xx_hal_spi.c:2087:13:HAL_SPI_RxHalfCpltCallback 16 static
+stm32f4xx_hal_spi.c:2102:13:HAL_SPI_TxRxHalfCpltCallback 16 static
+stm32f4xx_hal_spi.c:2117:14:HAL_SPI_ErrorCallback 16 static
+stm32f4xx_hal_spi.c:2134:13:HAL_SPI_AbortCpltCallback 16 static
+stm32f4xx_hal_spi.c:2169:22:HAL_SPI_GetState 16 static
+stm32f4xx_hal_spi.c:2181:10:HAL_SPI_GetError 16 static
+stm32f4xx_hal_spi.c:2206:13:SPI_DMATransmitCplt 32 static
+stm32f4xx_hal_spi.c:2250:13:SPI_DMAReceiveCplt 40 static
+stm32f4xx_hal_spi.c:2317:13:SPI_DMATransmitReceiveCplt 40 static
+stm32f4xx_hal_spi.c:2381:13:SPI_DMAHalfTransmitCplt 24 static
+stm32f4xx_hal_spi.c:2394:13:SPI_DMAHalfReceiveCplt 24 static
+stm32f4xx_hal_spi.c:2407:13:SPI_DMAHalfTransmitReceiveCplt 24 static
+stm32f4xx_hal_spi.c:2420:13:SPI_DMAError 24 static
+stm32f4xx_hal_spi.c:2438:13:SPI_DMAAbortOnError 24 static
+stm32f4xx_hal_spi.c:2455:13:SPI_DMATxAbortCallback 32 static
+stm32f4xx_hal_spi.c:2510:13:SPI_DMARxAbortCallback 32 static
+stm32f4xx_hal_spi.c:2555:13:SPI_2linesRxISR_8BIT 16 static
+stm32f4xx_hal_spi.c:2589:13:SPI_2linesRxISR_8BITCRC 24 static
+stm32f4xx_hal_spi.c:2616:13:SPI_2linesTxISR_8BIT 16 static
+stm32f4xx_hal_spi.c:2649:13:SPI_2linesRxISR_16BIT 16 static
+stm32f4xx_hal_spi.c:2683:13:SPI_2linesRxISR_16BITCRC 24 static
+stm32f4xx_hal_spi.c:2707:13:SPI_2linesTxISR_16BIT 16 static
+stm32f4xx_hal_spi.c:2743:13:SPI_RxISR_8BITCRC 24 static
+stm32f4xx_hal_spi.c:2763:13:SPI_RxISR_8BIT 16 static
+stm32f4xx_hal_spi.c:2796:13:SPI_RxISR_16BITCRC 24 static
+stm32f4xx_hal_spi.c:2819:13:SPI_RxISR_16BIT 16 static
+stm32f4xx_hal_spi.c:2852:13:SPI_TxISR_8BIT 16 static
+stm32f4xx_hal_spi.c:2876:13:SPI_TxISR_16BIT 16 static
+stm32f4xx_hal_spi.c:2906:26:SPI_WaitFlagStateUntilTimeout 24 static
+stm32f4xx_hal_spi.c:2953:26:SPI_CheckFlag_BSY 32 static
+stm32f4xx_hal_spi.c:2970:13:SPI_CloseRxTx_ISR 32 static
+stm32f4xx_hal_spi.c:3044:13:SPI_CloseRx_ISR 24 static
+stm32f4xx_hal_spi.c:3093:13:SPI_CloseTx_ISR 32 static
+stm32f4xx_hal_spi.c:3148:13:SPI_AbortRx_ISR 24 static
+stm32f4xx_hal_spi.c:3183:13:SPI_AbortTx_ISR 16 static
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sram.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sram.d
new file mode 100644
index 0000000..5ed6798
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sram.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sram.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sram.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sram.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sram.o
new file mode 100644
index 0000000..017c96b
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sram.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sram.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sram.su
new file mode 100644
index 0000000..e69de29
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.d
new file mode 100644
index 0000000..69c7aac
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o
new file mode 100644
index 0000000..443da9e
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.su
new file mode 100644
index 0000000..9f208fc
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.su
@@ -0,0 +1,106 @@
+stm32f4xx_hal_tim.c:206:19:HAL_TIM_Base_Init 16 static
+stm32f4xx_hal_tim.c:245:19:HAL_TIM_Base_DeInit 16 static
+stm32f4xx_hal_tim.c:273:13:HAL_TIM_Base_MspInit 16 static
+stm32f4xx_hal_tim.c:288:13:HAL_TIM_Base_MspDeInit 16 static
+stm32f4xx_hal_tim.c:303:19:HAL_TIM_Base_Start 16 static
+stm32f4xx_hal_tim.c:327:19:HAL_TIM_Base_Stop 16 static
+stm32f4xx_hal_tim.c:351:19:HAL_TIM_Base_Start_IT 16 static
+stm32f4xx_hal_tim.c:372:19:HAL_TIM_Base_Stop_IT 16 static
+stm32f4xx_hal_tim.c:394:19:HAL_TIM_Base_Start_DMA 24 static
+stm32f4xx_hal_tim.c:439:19:HAL_TIM_Base_Stop_DMA 16 static
+stm32f4xx_hal_tim.c:488:19:HAL_TIM_OC_Init 16 static
+stm32f4xx_hal_tim.c:527:19:HAL_TIM_OC_DeInit 16 static
+stm32f4xx_hal_tim.c:555:13:HAL_TIM_OC_MspInit 16 static
+stm32f4xx_hal_tim.c:570:13:HAL_TIM_OC_MspDeInit 16 static
+stm32f4xx_hal_tim.c:591:19:HAL_TIM_OC_Start 16 static
+stm32f4xx_hal_tim.c:624:19:HAL_TIM_OC_Stop 16 static
+stm32f4xx_hal_tim.c:657:19:HAL_TIM_OC_Start_IT 16 static
+stm32f4xx_hal_tim.c:724:19:HAL_TIM_OC_Stop_IT 16 static
+stm32f4xx_hal_tim.c:793:19:HAL_TIM_OC_Start_DMA 24 static
+stm32f4xx_hal_tim.c:911:19:HAL_TIM_OC_Stop_DMA 16 static
+stm32f4xx_hal_tim.c:1000:19:HAL_TIM_PWM_Init 16 static
+stm32f4xx_hal_tim.c:1039:19:HAL_TIM_PWM_DeInit 16 static
+stm32f4xx_hal_tim.c:1067:13:HAL_TIM_PWM_MspInit 16 static
+stm32f4xx_hal_tim.c:1082:13:HAL_TIM_PWM_MspDeInit 16 static
+stm32f4xx_hal_tim.c:1103:19:HAL_TIM_PWM_Start 16 static
+stm32f4xx_hal_tim.c:1136:19:HAL_TIM_PWM_Stop 16 static
+stm32f4xx_hal_tim.c:1172:19:HAL_TIM_PWM_Start_IT 16 static
+stm32f4xx_hal_tim.c:1239:19:HAL_TIM_PWM_Stop_IT 16 static
+stm32f4xx_hal_tim.c:1308:19:HAL_TIM_PWM_Start_DMA 24 static
+stm32f4xx_hal_tim.c:1426:19:HAL_TIM_PWM_Stop_DMA 16 static
+stm32f4xx_hal_tim.c:1515:19:HAL_TIM_IC_Init 16 static
+stm32f4xx_hal_tim.c:1554:19:HAL_TIM_IC_DeInit 16 static
+stm32f4xx_hal_tim.c:1582:13:HAL_TIM_IC_MspInit 16 static
+stm32f4xx_hal_tim.c:1597:13:HAL_TIM_IC_MspDeInit 16 static
+stm32f4xx_hal_tim.c:1618:19:HAL_TIM_IC_Start 16 static
+stm32f4xx_hal_tim.c:1645:19:HAL_TIM_IC_Stop 16 static
+stm32f4xx_hal_tim.c:1672:19:HAL_TIM_IC_Start_IT 16 static
+stm32f4xx_hal_tim.c:1732:19:HAL_TIM_IC_Stop_IT 16 static
+stm32f4xx_hal_tim.c:1795:19:HAL_TIM_IC_Start_DMA 24 static
+stm32f4xx_hal_tim.c:1909:19:HAL_TIM_IC_Stop_DMA 16 static
+stm32f4xx_hal_tim.c:1997:19:HAL_TIM_OnePulse_Init 16 static
+stm32f4xx_hal_tim.c:2043:19:HAL_TIM_OnePulse_DeInit 16 static
+stm32f4xx_hal_tim.c:2071:13:HAL_TIM_OnePulse_MspInit 16 static
+stm32f4xx_hal_tim.c:2086:13:HAL_TIM_OnePulse_MspDeInit 16 static
+stm32f4xx_hal_tim.c:2105:19:HAL_TIM_OnePulse_Start 16 static
+stm32f4xx_hal_tim.c:2142:19:HAL_TIM_OnePulse_Stop 16 static
+stm32f4xx_hal_tim.c:2179:19:HAL_TIM_OnePulse_Start_IT 16 static
+stm32f4xx_hal_tim.c:2222:19:HAL_TIM_OnePulse_Stop_IT 16 static
+stm32f4xx_hal_tim.c:2285:19:HAL_TIM_Encoder_Init 32 static
+stm32f4xx_hal_tim.c:2374:19:HAL_TIM_Encoder_DeInit 16 static
+stm32f4xx_hal_tim.c:2402:13:HAL_TIM_Encoder_MspInit 16 static
+stm32f4xx_hal_tim.c:2417:13:HAL_TIM_Encoder_MspDeInit 16 static
+stm32f4xx_hal_tim.c:2437:19:HAL_TIM_Encoder_Start 16 static
+stm32f4xx_hal_tim.c:2480:19:HAL_TIM_Encoder_Stop 16 static
+stm32f4xx_hal_tim.c:2524:19:HAL_TIM_Encoder_Start_IT 16 static
+stm32f4xx_hal_tim.c:2573:19:HAL_TIM_Encoder_Stop_IT 16 static
+stm32f4xx_hal_tim.c:2628:19:HAL_TIM_Encoder_Start_DMA 24 static
+stm32f4xx_hal_tim.c:2746:19:HAL_TIM_Encoder_Stop_DMA 16 static
+stm32f4xx_hal_tim.c:2809:6:HAL_TIM_IRQHandler 16 static
+stm32f4xx_hal_tim.c:2972:19:HAL_TIM_OC_ConfigChannel 24 static
+stm32f4xx_hal_tim.c:3042:19:HAL_TIM_IC_ConfigChannel 24 static
+stm32f4xx_hal_tim.c:3139:19:HAL_TIM_PWM_ConfigChannel 24 static
+stm32f4xx_hal_tim.c:3240:19:HAL_TIM_OnePulse_ConfigChannel 56 static
+stm32f4xx_hal_tim.c:3377:19:HAL_TIM_DMABurst_WriteStart 24 static
+stm32f4xx_hal_tim.c:3509:19:HAL_TIM_DMABurst_WriteStop 16 static
+stm32f4xx_hal_tim.c:3602:19:HAL_TIM_DMABurst_ReadStart 24 static
+stm32f4xx_hal_tim.c:3735:19:HAL_TIM_DMABurst_ReadStop 16 static
+stm32f4xx_hal_tim.c:3808:19:HAL_TIM_GenerateEvent 16 static
+stm32f4xx_hal_tim.c:3846:19:HAL_TIM_ConfigOCrefClear 24 static
+stm32f4xx_hal_tim.c:3949:19:HAL_TIM_ConfigClockSource 24 static
+stm32f4xx_hal_tim.c:4110:19:HAL_TIM_ConfigTI1Input 24 static
+stm32f4xx_hal_tim.c:4143:19:HAL_TIM_SlaveConfigSynchronization 16 static
+stm32f4xx_hal_tim.c:4178:19:HAL_TIM_SlaveConfigSynchronization_IT 16 static
+stm32f4xx_hal_tim.c:4217:10:HAL_TIM_ReadCapturedValue 24 static
+stm32f4xx_hal_tim.c:4304:13:HAL_TIM_PeriodElapsedCallback 16 static
+stm32f4xx_hal_tim.c:4319:13:HAL_TIM_OC_DelayElapsedCallback 16 static
+stm32f4xx_hal_tim.c:4334:13:HAL_TIM_IC_CaptureCallback 16 static
+stm32f4xx_hal_tim.c:4349:13:HAL_TIM_PWM_PulseFinishedCallback 16 static
+stm32f4xx_hal_tim.c:4364:13:HAL_TIM_TriggerCallback 16 static
+stm32f4xx_hal_tim.c:4379:13:HAL_TIM_ErrorCallback 16 static
+stm32f4xx_hal_tim.c:4412:22:HAL_TIM_Base_GetState 16 static
+stm32f4xx_hal_tim.c:4423:22:HAL_TIM_OC_GetState 16 static
+stm32f4xx_hal_tim.c:4434:22:HAL_TIM_PWM_GetState 16 static
+stm32f4xx_hal_tim.c:4445:22:HAL_TIM_IC_GetState 16 static
+stm32f4xx_hal_tim.c:4456:22:HAL_TIM_OnePulse_GetState 16 static
+stm32f4xx_hal_tim.c:4467:22:HAL_TIM_Encoder_GetState 16 static
+stm32f4xx_hal_tim.c:4481:6:TIM_Base_SetConfig 24 static
+stm32f4xx_hal_tim.c:4540:6:TIM_TI1_SetConfig 32 static
+stm32f4xx_hal_tim.c:4582:6:TIM_OC2_SetConfig 32 static
+stm32f4xx_hal_tim.c:4649:6:TIM_DMADelayPulseCplt 24 static
+stm32f4xx_hal_tim.c:4683:6:TIM_DMAError 24 static
+stm32f4xx_hal_tim.c:4698:6:TIM_DMACaptureCplt 24 static
+stm32f4xx_hal_tim.c:4739:6:TIM_CCxChannelCmd 32 static
+stm32f4xx_hal_tim.c:4762:13:TIM_DMAPeriodElapsedCplt 24 static
+stm32f4xx_hal_tim.c:4777:13:TIM_DMATriggerCplt 24 static
+stm32f4xx_hal_tim.c:4792:13:TIM_OC1_SetConfig 32 static
+stm32f4xx_hal_tim.c:4857:13:TIM_OC3_SetConfig 32 static
+stm32f4xx_hal_tim.c:4925:13:TIM_OC4_SetConfig 32 static
+stm32f4xx_hal_tim.c:4983:13:TIM_SlaveTimer_SetConfig 32 static
+stm32f4xx_hal_tim.c:5120:13:TIM_TI1_ConfigInputStage 32 static
+stm32f4xx_hal_tim.c:5163:13:TIM_TI2_SetConfig 32 static
+stm32f4xx_hal_tim.c:5203:13:TIM_TI2_ConfigInputStage 32 static
+stm32f4xx_hal_tim.c:5246:13:TIM_TI3_SetConfig 32 static
+stm32f4xx_hal_tim.c:5294:13:TIM_TI4_SetConfig 32 static
+stm32f4xx_hal_tim.c:5337:13:TIM_ITRx_SetConfig 24 static
+stm32f4xx_hal_tim.c:5368:13:TIM_ETR_SetConfig 32 static
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.d
new file mode 100644
index 0000000..711dbd1
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o
new file mode 100644
index 0000000..d79127e
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.su
new file mode 100644
index 0000000..fa36f6d
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.su
@@ -0,0 +1,37 @@
+stm32f4xx_hal_tim_ex.c:157:19:HAL_TIMEx_HallSensor_Init 48 static
+stm32f4xx_hal_tim_ex.c:230:19:HAL_TIMEx_HallSensor_DeInit 16 static
+stm32f4xx_hal_tim_ex.c:258:13:HAL_TIMEx_HallSensor_MspInit 16 static
+stm32f4xx_hal_tim_ex.c:273:13:HAL_TIMEx_HallSensor_MspDeInit 16 static
+stm32f4xx_hal_tim_ex.c:288:19:HAL_TIMEx_HallSensor_Start 16 static
+stm32f4xx_hal_tim_ex.c:310:19:HAL_TIMEx_HallSensor_Stop 16 static
+stm32f4xx_hal_tim_ex.c:332:19:HAL_TIMEx_HallSensor_Start_IT 16 static
+stm32f4xx_hal_tim_ex.c:357:19:HAL_TIMEx_HallSensor_Stop_IT 16 static
+stm32f4xx_hal_tim_ex.c:384:19:HAL_TIMEx_HallSensor_Start_DMA 24 static
+stm32f4xx_hal_tim_ex.c:432:19:HAL_TIMEx_HallSensor_Stop_DMA 16 static
+stm32f4xx_hal_tim_ex.c:487:19:HAL_TIMEx_OCN_Start 16 static
+stm32f4xx_hal_tim_ex.c:517:19:HAL_TIMEx_OCN_Stop 16 static
+stm32f4xx_hal_tim_ex.c:547:19:HAL_TIMEx_OCN_Start_IT 16 static
+stm32f4xx_hal_tim_ex.c:614:19:HAL_TIMEx_OCN_Stop_IT 16 static
+stm32f4xx_hal_tim_ex.c:686:19:HAL_TIMEx_OCN_Start_DMA 24 static
+stm32f4xx_hal_tim_ex.c:801:19:HAL_TIMEx_OCN_Stop_DMA 16 static
+stm32f4xx_hal_tim_ex.c:900:19:HAL_TIMEx_PWMN_Start 16 static
+stm32f4xx_hal_tim_ex.c:929:19:HAL_TIMEx_PWMN_Stop 16 static
+stm32f4xx_hal_tim_ex.c:959:19:HAL_TIMEx_PWMN_Start_IT 16 static
+stm32f4xx_hal_tim_ex.c:1026:19:HAL_TIMEx_PWMN_Stop_IT 16 static
+stm32f4xx_hal_tim_ex.c:1098:19:HAL_TIMEx_PWMN_Start_DMA 24 static
+stm32f4xx_hal_tim_ex.c:1213:19:HAL_TIMEx_PWMN_Stop_DMA 16 static
+stm32f4xx_hal_tim_ex.c:1301:19:HAL_TIMEx_OnePulseN_Start 16 static
+stm32f4xx_hal_tim_ex.c:1327:19:HAL_TIMEx_OnePulseN_Stop 16 static
+stm32f4xx_hal_tim_ex.c:1357:19:HAL_TIMEx_OnePulseN_Start_IT 16 static
+stm32f4xx_hal_tim_ex.c:1389:19:HAL_TIMEx_OnePulseN_Stop_IT 16 static
+stm32f4xx_hal_tim_ex.c:1458:19:HAL_TIMEx_ConfigCommutationEvent 24 static
+stm32f4xx_hal_tim_ex.c:1508:19:HAL_TIMEx_ConfigCommutationEvent_IT 24 static
+stm32f4xx_hal_tim_ex.c:1562:19:HAL_TIMEx_ConfigCommutationEvent_DMA 24 static
+stm32f4xx_hal_tim_ex.c:1607:19:HAL_TIMEx_MasterConfigSynchronization 16 static
+stm32f4xx_hal_tim_ex.c:1644:19:HAL_TIMEx_ConfigBreakDeadTime 24 static
+stm32f4xx_hal_tim_ex.c:1708:19:HAL_TIMEx_RemapConfig 16 static
+stm32f4xx_hal_tim_ex.c:1766:13:HAL_TIMEx_CommutationCallback 16 static
+stm32f4xx_hal_tim_ex.c:1781:13:HAL_TIMEx_BreakCallback 16 static
+stm32f4xx_hal_tim_ex.c:1814:22:HAL_TIMEx_HallSensor_GetState 16 static
+stm32f4xx_hal_tim_ex.c:1829:6:TIMEx_DMACommutationCplt 24 static
+stm32f4xx_hal_tim_ex.c:1853:13:TIM_CCxNChannelCmd 32 static
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_timebase_rtc_alarm_template.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_timebase_rtc_alarm_template.su
new file mode 100644
index 0000000..e69de29
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_timebase_rtc_wakeup_template.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_timebase_rtc_wakeup_template.su
new file mode 100644
index 0000000..e69de29
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_timebase_tim_template.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_timebase_tim_template.su
new file mode 100644
index 0000000..e69de29
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.d
new file mode 100644
index 0000000..474f8c7
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.o
new file mode 100644
index 0000000..d6d5aca
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.su
new file mode 100644
index 0000000..e69de29
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_usart.d b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_usart.d
new file mode 100644
index 0000000..40c0bf5
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_usart.d
@@ -0,0 +1,89 @@
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_usart.o: \
+ ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_usart.c \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h \
+ ../Core/Inc/stm32f4xx_hal_conf.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h \
+ ../Drivers/CMSIS/Include/core_cm4.h \
+ ../Drivers/CMSIS/Include/cmsis_version.h \
+ ../Drivers/CMSIS/Include/cmsis_compiler.h \
+ ../Drivers/CMSIS/Include/cmsis_gcc.h \
+ ../Drivers/CMSIS/Include/mpu_armv7.h \
+ ../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h \
+ ../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h:
+
+../Core/Inc/stm32f4xx_hal_conf.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f401xe.h:
+
+../Drivers/CMSIS/Include/core_cm4.h:
+
+../Drivers/CMSIS/Include/cmsis_version.h:
+
+../Drivers/CMSIS/Include/cmsis_compiler.h:
+
+../Drivers/CMSIS/Include/cmsis_gcc.h:
+
+../Drivers/CMSIS/Include/mpu_armv7.h:
+
+../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h:
+
+../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h:
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_usart.o b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_usart.o
new file mode 100644
index 0000000..af5adcf
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_usart.o differ
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_usart.su b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_usart.su
new file mode 100644
index 0000000..e69de29
diff --git a/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/subdir.mk b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/subdir.mk
new file mode 100644
index 0000000..029ad07
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/Drivers/STM32F4xx_HAL_Driver/Src/subdir.mk
@@ -0,0 +1,109 @@
+################################################################################
+# Automatically-generated file. Do not edit!
+################################################################################
+
+# Add inputs and outputs from these tool invocations to the build variables
+C_SRCS += \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c \
+../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c
+
+OBJS += \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.o \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.o \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.o \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.o \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.o \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.o \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.o \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.o \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.o \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.o \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.o
+
+C_DEPS += \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.d \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.d \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.d \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.d \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.d \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.d \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.d \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.d \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.d \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.d \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.d \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.d \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.d \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.d \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.d \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.d \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.d \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.d \
+./Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.d
+
+
+# Each subdirectory must supply rules for building sources it contributes
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o: ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F401xE -DDEBUG -c -I../Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o: ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F401xE -DDEBUG -c -I../Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.o: ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F401xE -DDEBUG -c -I../Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o: ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F401xE -DDEBUG -c -I../Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.o: ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F401xE -DDEBUG -c -I../Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.o: ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F401xE -DDEBUG -c -I../Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.o: ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F401xE -DDEBUG -c -I../Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.o: ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F401xE -DDEBUG -c -I../Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.o: ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F401xE -DDEBUG -c -I../Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.o: ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F401xE -DDEBUG -c -I../Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o: ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F401xE -DDEBUG -c -I../Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.o: ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F401xE -DDEBUG -c -I../Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.o: ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F401xE -DDEBUG -c -I../Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o: ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F401xE -DDEBUG -c -I../Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.o: ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F401xE -DDEBUG -c -I../Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o: ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F401xE -DDEBUG -c -I../Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o: ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F401xE -DDEBUG -c -I../Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o: ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F401xE -DDEBUG -c -I../Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.o: ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c
+ arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DUSE_HAL_DRIVER -DSTM32F401xE -DDEBUG -c -I../Core/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc -I../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.d" -MT"$@" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "$@"
+
diff --git a/stepper/steppermotor_F401RE/Debug/makefile b/stepper/steppermotor_F401RE/Debug/makefile
new file mode 100644
index 0000000..faeadf7
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/makefile
@@ -0,0 +1,94 @@
+################################################################################
+# Automatically-generated file. Do not edit!
+################################################################################
+
+-include ../makefile.init
+
+RM := rm -rf
+
+# All of the sources participating in the build are defined here
+-include sources.mk
+-include Drivers/STM32F4xx_HAL_Driver/Src/subdir.mk
+-include Core/Startup/subdir.mk
+-include Core/Src/subdir.mk
+-include subdir.mk
+-include objects.mk
+
+ifneq ($(MAKECMDGOALS),clean)
+ifneq ($(strip $(S_DEPS)),)
+-include $(S_DEPS)
+endif
+ifneq ($(strip $(S_UPPER_DEPS)),)
+-include $(S_UPPER_DEPS)
+endif
+ifneq ($(strip $(C_DEPS)),)
+-include $(C_DEPS)
+endif
+endif
+
+-include ../makefile.defs
+
+BUILD_ARTIFACT_NAME := steppermotor_F401RE
+BUILD_ARTIFACT_EXTENSION := elf
+BUILD_ARTIFACT_PREFIX :=
+BUILD_ARTIFACT := $(BUILD_ARTIFACT_PREFIX)$(BUILD_ARTIFACT_NAME).$(BUILD_ARTIFACT_EXTENSION)
+
+# Add inputs and outputs from these tool invocations to the build variables
+EXECUTABLES += \
+steppermotor_F401RE.elf \
+
+SIZE_OUTPUT += \
+default.size.stdout \
+
+OBJDUMP_LIST += \
+steppermotor_F401RE.list \
+
+OBJCOPY_BIN += \
+steppermotor_F401RE.bin \
+
+
+# All Target
+all: main-build
+
+# Main-build Target
+main-build: steppermotor_F401RE.elf secondary-outputs
+
+# Tool invocations
+steppermotor_F401RE.elf: $(OBJS) $(USER_OBJS) C:\Users\Gregor\Desktop\Projektarbeit\Workspace\stepper\steppermotor_F401RE\STM32F401RETX_FLASH.ld
+ arm-none-eabi-gcc -o "steppermotor_F401RE.elf" @"objects.list" $(USER_OBJS) $(LIBS) -mcpu=cortex-m4 -T"C:\Users\Gregor\Desktop\Projektarbeit\Workspace\stepper\steppermotor_F401RE\STM32F401RETX_FLASH.ld" --specs=nosys.specs -Wl,-Map="steppermotor_F401RE.map" -Wl,--gc-sections -static --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -Wl,--start-group -lc -lm -Wl,--end-group
+ @echo 'Finished building target: $@'
+ @echo ' '
+
+default.size.stdout: $(EXECUTABLES)
+ arm-none-eabi-size $(EXECUTABLES)
+ @echo 'Finished building: $@'
+ @echo ' '
+
+steppermotor_F401RE.list: $(EXECUTABLES)
+ arm-none-eabi-objdump -h -S $(EXECUTABLES) > "steppermotor_F401RE.list"
+ @echo 'Finished building: $@'
+ @echo ' '
+
+steppermotor_F401RE.bin: $(EXECUTABLES)
+ arm-none-eabi-objcopy -O binary $(EXECUTABLES) "steppermotor_F401RE.bin"
+ @echo 'Finished building: $@'
+ @echo ' '
+
+# Other Targets
+clean:
+ -$(RM) *
+ -@echo ' '
+
+secondary-outputs: $(SIZE_OUTPUT) $(OBJDUMP_LIST) $(OBJCOPY_BIN)
+
+fail-specified-linker-script-missing:
+ @echo 'Error: Cannot find the specified linker script. Check the linker settings in the build configuration.'
+ @exit 2
+
+warn-no-linker-script-specified:
+ @echo 'Warning: No linker script specified. Check the linker settings in the build configuration.'
+
+.PHONY: all clean dependents fail-specified-linker-script-missing warn-no-linker-script-specified
+.SECONDARY:
+
+-include ../makefile.targets
diff --git a/stepper/steppermotor_F401RE/Debug/objects.list b/stepper/steppermotor_F401RE/Debug/objects.list
new file mode 100644
index 0000000..7f2d846
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/objects.list
@@ -0,0 +1,31 @@
+"Core/Src/clock_f4.o"
+"Core/Src/l6208.o"
+"Core/Src/main.o"
+"Core/Src/stm32f4xx_hal_msp.o"
+"Core/Src/stm32f4xx_it.o"
+"Core/Src/stm32f4xx_nucleo.o"
+"Core/Src/syscalls.o"
+"Core/Src/sysmem.o"
+"Core/Src/system_stm32f4xx.o"
+"Core/Src/x_nucleo_ihm05a1_stm32f4xx.o"
+"Core/Src/x_nucleo_ihmxx.o"
+"Core/Startup/startup_stm32f401retx.o"
+"Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o"
+"Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.o"
+"Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.o"
+"Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o"
+"Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.o"
+"Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.o"
+"Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.o"
+"Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.o"
+"Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.o"
+"Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.o"
+"Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o"
+"Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.o"
+"Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.o"
+"Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o"
+"Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.o"
+"Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.o"
+"Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o"
+"Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o"
+"Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.o"
diff --git a/stepper/steppermotor_F401RE/Debug/objects.mk b/stepper/steppermotor_F401RE/Debug/objects.mk
new file mode 100644
index 0000000..742c2da
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/objects.mk
@@ -0,0 +1,8 @@
+################################################################################
+# Automatically-generated file. Do not edit!
+################################################################################
+
+USER_OBJS :=
+
+LIBS :=
+
diff --git a/stepper/steppermotor_F401RE/Debug/sources.mk b/stepper/steppermotor_F401RE/Debug/sources.mk
new file mode 100644
index 0000000..90bb192
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/sources.mk
@@ -0,0 +1,25 @@
+################################################################################
+# Automatically-generated file. Do not edit!
+################################################################################
+
+ELF_SRCS :=
+OBJ_SRCS :=
+S_SRCS :=
+C_SRCS :=
+S_UPPER_SRCS :=
+O_SRCS :=
+SIZE_OUTPUT :=
+OBJDUMP_LIST :=
+EXECUTABLES :=
+OBJS :=
+S_DEPS :=
+S_UPPER_DEPS :=
+C_DEPS :=
+OBJCOPY_BIN :=
+
+# Every subdirectory with source files must be described here
+SUBDIRS := \
+Core/Src \
+Core/Startup \
+Drivers/STM32F4xx_HAL_Driver/Src \
+
diff --git a/stepper/steppermotor_F401RE/Debug/steppermotor_F401RE.bin b/stepper/steppermotor_F401RE/Debug/steppermotor_F401RE.bin
new file mode 100644
index 0000000..cc9940d
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/steppermotor_F401RE.bin differ
diff --git a/stepper/steppermotor_F401RE/Debug/steppermotor_F401RE.elf b/stepper/steppermotor_F401RE/Debug/steppermotor_F401RE.elf
new file mode 100644
index 0000000..c16a6fa
Binary files /dev/null and b/stepper/steppermotor_F401RE/Debug/steppermotor_F401RE.elf differ
diff --git a/stepper/steppermotor_F401RE/Debug/steppermotor_F401RE.list b/stepper/steppermotor_F401RE/Debug/steppermotor_F401RE.list
new file mode 100644
index 0000000..e29c928
--- /dev/null
+++ b/stepper/steppermotor_F401RE/Debug/steppermotor_F401RE.list
@@ -0,0 +1,15132 @@
+
+steppermotor_F401RE.elf: file format elf32-littlearm
+
+Sections:
+Idx Name Size VMA LMA File off Algn
+ 0 .isr_vector 00000194 08000000 08000000 00010000 2**0
+ CONTENTS, ALLOC, LOAD, READONLY, DATA
+ 1 .text 00005648 08000194 08000194 00010194 2**2
+ CONTENTS, ALLOC, LOAD, READONLY, CODE
+ 2 .rodata 00000070 080057dc 080057dc 000157dc 2**2
+ CONTENTS, ALLOC, LOAD, READONLY, DATA
+ 3 .ARM.extab 00000000 0800584c 0800584c 00020178 2**0
+ CONTENTS
+ 4 .ARM 00000008 0800584c 0800584c 0001584c 2**2
+ CONTENTS, ALLOC, LOAD, READONLY, DATA
+ 5 .preinit_array 00000000 08005854 08005854 00020178 2**0
+ CONTENTS, ALLOC, LOAD, DATA
+ 6 .init_array 00000004 08005854 08005854 00015854 2**2
+ CONTENTS, ALLOC, LOAD, DATA
+ 7 .fini_array 00000004 08005858 08005858 00015858 2**2
+ CONTENTS, ALLOC, LOAD, DATA
+ 8 .data 00000178 20000000 0800585c 00020000 2**2
+ CONTENTS, ALLOC, LOAD, DATA
+ 9 .bss 00000244 20000178 080059d4 00020178 2**2
+ ALLOC
+ 10 ._user_heap_stack 00000604 200003bc 080059d4 000203bc 2**0
+ ALLOC
+ 11 .ARM.attributes 00000030 00000000 00000000 00020178 2**0
+ CONTENTS, READONLY
+ 12 .debug_info 00011295 00000000 00000000 000201a8 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 13 .debug_abbrev 00002146 00000000 00000000 0003143d 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 14 .debug_aranges 00001058 00000000 00000000 00033588 2**3
+ CONTENTS, READONLY, DEBUGGING
+ 15 .debug_ranges 00000f60 00000000 00000000 000345e0 2**3
+ CONTENTS, READONLY, DEBUGGING
+ 16 .debug_macro 0001d0d8 00000000 00000000 00035540 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 17 .debug_line 0000a74e 00000000 00000000 00052618 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 18 .debug_str 0009621d 00000000 00000000 0005cd66 2**0
+ CONTENTS, READONLY, DEBUGGING
+ 19 .comment 0000007b 00000000 00000000 000f2f83 2**0
+ CONTENTS, READONLY
+ 20 .debug_frame 00004378 00000000 00000000 000f3000 2**2
+ CONTENTS, READONLY, DEBUGGING
+
+Disassembly of section .text:
+
+08000194 <__do_global_dtors_aux>:
+ 8000194: b510 push {r4, lr}
+ 8000196: 4c05 ldr r4, [pc, #20] ; (80001ac <__do_global_dtors_aux+0x18>)
+ 8000198: 7823 ldrb r3, [r4, #0]
+ 800019a: b933 cbnz r3, 80001aa <__do_global_dtors_aux+0x16>
+ 800019c: 4b04 ldr r3, [pc, #16] ; (80001b0 <__do_global_dtors_aux+0x1c>)
+ 800019e: b113 cbz r3, 80001a6 <__do_global_dtors_aux+0x12>
+ 80001a0: 4804 ldr r0, [pc, #16] ; (80001b4 <__do_global_dtors_aux+0x20>)
+ 80001a2: f3af 8000 nop.w
+ 80001a6: 2301 movs r3, #1
+ 80001a8: 7023 strb r3, [r4, #0]
+ 80001aa: bd10 pop {r4, pc}
+ 80001ac: 20000178 .word 0x20000178
+ 80001b0: 00000000 .word 0x00000000
+ 80001b4: 080057c4 .word 0x080057c4
+
+080001b8 :
+ 80001b8: b508 push {r3, lr}
+ 80001ba: 4b03 ldr r3, [pc, #12] ; (80001c8 )
+ 80001bc: b11b cbz r3, 80001c6
+ 80001be: 4903 ldr r1, [pc, #12] ; (80001cc )
+ 80001c0: 4803 ldr r0, [pc, #12] ; (80001d0 )
+ 80001c2: f3af 8000 nop.w
+ 80001c6: bd08 pop {r3, pc}
+ 80001c8: 00000000 .word 0x00000000
+ 80001cc: 2000017c .word 0x2000017c
+ 80001d0: 080057c4 .word 0x080057c4
+
+080001d4 <__aeabi_uldivmod>:
+ 80001d4: b953 cbnz r3, 80001ec <__aeabi_uldivmod+0x18>
+ 80001d6: b94a cbnz r2, 80001ec <__aeabi_uldivmod+0x18>
+ 80001d8: 2900 cmp r1, #0
+ 80001da: bf08 it eq
+ 80001dc: 2800 cmpeq r0, #0
+ 80001de: bf1c itt ne
+ 80001e0: f04f 31ff movne.w r1, #4294967295
+ 80001e4: f04f 30ff movne.w r0, #4294967295
+ 80001e8: f000 b972 b.w 80004d0 <__aeabi_idiv0>
+ 80001ec: f1ad 0c08 sub.w ip, sp, #8
+ 80001f0: e96d ce04 strd ip, lr, [sp, #-16]!
+ 80001f4: f000 f806 bl 8000204 <__udivmoddi4>
+ 80001f8: f8dd e004 ldr.w lr, [sp, #4]
+ 80001fc: e9dd 2302 ldrd r2, r3, [sp, #8]
+ 8000200: b004 add sp, #16
+ 8000202: 4770 bx lr
+
+08000204 <__udivmoddi4>:
+ 8000204: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
+ 8000208: 9e08 ldr r6, [sp, #32]
+ 800020a: 4604 mov r4, r0
+ 800020c: 4688 mov r8, r1
+ 800020e: 2b00 cmp r3, #0
+ 8000210: d14b bne.n 80002aa <__udivmoddi4+0xa6>
+ 8000212: 428a cmp r2, r1
+ 8000214: 4615 mov r5, r2
+ 8000216: d967 bls.n 80002e8 <__udivmoddi4+0xe4>
+ 8000218: fab2 f282 clz r2, r2
+ 800021c: b14a cbz r2, 8000232 <__udivmoddi4+0x2e>
+ 800021e: f1c2 0720 rsb r7, r2, #32
+ 8000222: fa01 f302 lsl.w r3, r1, r2
+ 8000226: fa20 f707 lsr.w r7, r0, r7
+ 800022a: 4095 lsls r5, r2
+ 800022c: ea47 0803 orr.w r8, r7, r3
+ 8000230: 4094 lsls r4, r2
+ 8000232: ea4f 4e15 mov.w lr, r5, lsr #16
+ 8000236: 0c23 lsrs r3, r4, #16
+ 8000238: fbb8 f7fe udiv r7, r8, lr
+ 800023c: fa1f fc85 uxth.w ip, r5
+ 8000240: fb0e 8817 mls r8, lr, r7, r8
+ 8000244: ea43 4308 orr.w r3, r3, r8, lsl #16
+ 8000248: fb07 f10c mul.w r1, r7, ip
+ 800024c: 4299 cmp r1, r3
+ 800024e: d909 bls.n 8000264 <__udivmoddi4+0x60>
+ 8000250: 18eb adds r3, r5, r3
+ 8000252: f107 30ff add.w r0, r7, #4294967295
+ 8000256: f080 811b bcs.w 8000490 <__udivmoddi4+0x28c>
+ 800025a: 4299 cmp r1, r3
+ 800025c: f240 8118 bls.w 8000490 <__udivmoddi4+0x28c>
+ 8000260: 3f02 subs r7, #2
+ 8000262: 442b add r3, r5
+ 8000264: 1a5b subs r3, r3, r1
+ 8000266: b2a4 uxth r4, r4
+ 8000268: fbb3 f0fe udiv r0, r3, lr
+ 800026c: fb0e 3310 mls r3, lr, r0, r3
+ 8000270: ea44 4403 orr.w r4, r4, r3, lsl #16
+ 8000274: fb00 fc0c mul.w ip, r0, ip
+ 8000278: 45a4 cmp ip, r4
+ 800027a: d909 bls.n 8000290 <__udivmoddi4+0x8c>
+ 800027c: 192c adds r4, r5, r4
+ 800027e: f100 33ff add.w r3, r0, #4294967295
+ 8000282: f080 8107 bcs.w 8000494 <__udivmoddi4+0x290>
+ 8000286: 45a4 cmp ip, r4
+ 8000288: f240 8104 bls.w 8000494 <__udivmoddi4+0x290>
+ 800028c: 3802 subs r0, #2
+ 800028e: 442c add r4, r5
+ 8000290: ea40 4007 orr.w r0, r0, r7, lsl #16
+ 8000294: eba4 040c sub.w r4, r4, ip
+ 8000298: 2700 movs r7, #0
+ 800029a: b11e cbz r6, 80002a4 <__udivmoddi4+0xa0>
+ 800029c: 40d4 lsrs r4, r2
+ 800029e: 2300 movs r3, #0
+ 80002a0: e9c6 4300 strd r4, r3, [r6]
+ 80002a4: 4639 mov r1, r7
+ 80002a6: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
+ 80002aa: 428b cmp r3, r1
+ 80002ac: d909 bls.n 80002c2 <__udivmoddi4+0xbe>
+ 80002ae: 2e00 cmp r6, #0
+ 80002b0: f000 80eb beq.w 800048a <__udivmoddi4+0x286>
+ 80002b4: 2700 movs r7, #0
+ 80002b6: e9c6 0100 strd r0, r1, [r6]
+ 80002ba: 4638 mov r0, r7
+ 80002bc: 4639 mov r1, r7
+ 80002be: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
+ 80002c2: fab3 f783 clz r7, r3
+ 80002c6: 2f00 cmp r7, #0
+ 80002c8: d147 bne.n 800035a <__udivmoddi4+0x156>
+ 80002ca: 428b cmp r3, r1
+ 80002cc: d302 bcc.n 80002d4 <__udivmoddi4+0xd0>
+ 80002ce: 4282 cmp r2, r0
+ 80002d0: f200 80fa bhi.w 80004c8 <__udivmoddi4+0x2c4>
+ 80002d4: 1a84 subs r4, r0, r2
+ 80002d6: eb61 0303 sbc.w r3, r1, r3
+ 80002da: 2001 movs r0, #1
+ 80002dc: 4698 mov r8, r3
+ 80002de: 2e00 cmp r6, #0
+ 80002e0: d0e0 beq.n 80002a4 <__udivmoddi4+0xa0>
+ 80002e2: e9c6 4800 strd r4, r8, [r6]
+ 80002e6: e7dd b.n 80002a4 <__udivmoddi4+0xa0>
+ 80002e8: b902 cbnz r2, 80002ec <__udivmoddi4+0xe8>
+ 80002ea: deff udf #255 ; 0xff
+ 80002ec: fab2 f282 clz r2, r2
+ 80002f0: 2a00 cmp r2, #0
+ 80002f2: f040 808f bne.w 8000414 <__udivmoddi4+0x210>
+ 80002f6: 1b49 subs r1, r1, r5
+ 80002f8: ea4f 4e15 mov.w lr, r5, lsr #16
+ 80002fc: fa1f f885 uxth.w r8, r5
+ 8000300: 2701 movs r7, #1
+ 8000302: fbb1 fcfe udiv ip, r1, lr
+ 8000306: 0c23 lsrs r3, r4, #16
+ 8000308: fb0e 111c mls r1, lr, ip, r1
+ 800030c: ea43 4301 orr.w r3, r3, r1, lsl #16
+ 8000310: fb08 f10c mul.w r1, r8, ip
+ 8000314: 4299 cmp r1, r3
+ 8000316: d907 bls.n 8000328 <__udivmoddi4+0x124>
+ 8000318: 18eb adds r3, r5, r3
+ 800031a: f10c 30ff add.w r0, ip, #4294967295
+ 800031e: d202 bcs.n 8000326 <__udivmoddi4+0x122>
+ 8000320: 4299 cmp r1, r3
+ 8000322: f200 80cd bhi.w 80004c0 <__udivmoddi4+0x2bc>
+ 8000326: 4684 mov ip, r0
+ 8000328: 1a59 subs r1, r3, r1
+ 800032a: b2a3 uxth r3, r4
+ 800032c: fbb1 f0fe udiv r0, r1, lr
+ 8000330: fb0e 1410 mls r4, lr, r0, r1
+ 8000334: ea43 4404 orr.w r4, r3, r4, lsl #16
+ 8000338: fb08 f800 mul.w r8, r8, r0
+ 800033c: 45a0 cmp r8, r4
+ 800033e: d907 bls.n 8000350 <__udivmoddi4+0x14c>
+ 8000340: 192c adds r4, r5, r4
+ 8000342: f100 33ff add.w r3, r0, #4294967295
+ 8000346: d202 bcs.n 800034e <__udivmoddi4+0x14a>
+ 8000348: 45a0 cmp r8, r4
+ 800034a: f200 80b6 bhi.w 80004ba <__udivmoddi4+0x2b6>
+ 800034e: 4618 mov r0, r3
+ 8000350: eba4 0408 sub.w r4, r4, r8
+ 8000354: ea40 400c orr.w r0, r0, ip, lsl #16
+ 8000358: e79f b.n 800029a <__udivmoddi4+0x96>
+ 800035a: f1c7 0c20 rsb ip, r7, #32
+ 800035e: 40bb lsls r3, r7
+ 8000360: fa22 fe0c lsr.w lr, r2, ip
+ 8000364: ea4e 0e03 orr.w lr, lr, r3
+ 8000368: fa01 f407 lsl.w r4, r1, r7
+ 800036c: fa20 f50c lsr.w r5, r0, ip
+ 8000370: fa21 f30c lsr.w r3, r1, ip
+ 8000374: ea4f 481e mov.w r8, lr, lsr #16
+ 8000378: 4325 orrs r5, r4
+ 800037a: fbb3 f9f8 udiv r9, r3, r8
+ 800037e: 0c2c lsrs r4, r5, #16
+ 8000380: fb08 3319 mls r3, r8, r9, r3
+ 8000384: fa1f fa8e uxth.w sl, lr
+ 8000388: ea44 4303 orr.w r3, r4, r3, lsl #16
+ 800038c: fb09 f40a mul.w r4, r9, sl
+ 8000390: 429c cmp r4, r3
+ 8000392: fa02 f207 lsl.w r2, r2, r7
+ 8000396: fa00 f107 lsl.w r1, r0, r7
+ 800039a: d90b bls.n 80003b4 <__udivmoddi4+0x1b0>
+ 800039c: eb1e 0303 adds.w r3, lr, r3
+ 80003a0: f109 30ff add.w r0, r9, #4294967295
+ 80003a4: f080 8087 bcs.w 80004b6 <__udivmoddi4+0x2b2>
+ 80003a8: 429c cmp r4, r3
+ 80003aa: f240 8084 bls.w 80004b6 <__udivmoddi4+0x2b2>
+ 80003ae: f1a9 0902 sub.w r9, r9, #2
+ 80003b2: 4473 add r3, lr
+ 80003b4: 1b1b subs r3, r3, r4
+ 80003b6: b2ad uxth r5, r5
+ 80003b8: fbb3 f0f8 udiv r0, r3, r8
+ 80003bc: fb08 3310 mls r3, r8, r0, r3
+ 80003c0: ea45 4403 orr.w r4, r5, r3, lsl #16
+ 80003c4: fb00 fa0a mul.w sl, r0, sl
+ 80003c8: 45a2 cmp sl, r4
+ 80003ca: d908 bls.n 80003de <__udivmoddi4+0x1da>
+ 80003cc: eb1e 0404 adds.w r4, lr, r4
+ 80003d0: f100 33ff add.w r3, r0, #4294967295
+ 80003d4: d26b bcs.n 80004ae <__udivmoddi4+0x2aa>
+ 80003d6: 45a2 cmp sl, r4
+ 80003d8: d969 bls.n 80004ae <__udivmoddi4+0x2aa>
+ 80003da: 3802 subs r0, #2
+ 80003dc: 4474 add r4, lr
+ 80003de: ea40 4009 orr.w r0, r0, r9, lsl #16
+ 80003e2: fba0 8902 umull r8, r9, r0, r2
+ 80003e6: eba4 040a sub.w r4, r4, sl
+ 80003ea: 454c cmp r4, r9
+ 80003ec: 46c2 mov sl, r8
+ 80003ee: 464b mov r3, r9
+ 80003f0: d354 bcc.n 800049c <__udivmoddi4+0x298>
+ 80003f2: d051 beq.n 8000498 <__udivmoddi4+0x294>
+ 80003f4: 2e00 cmp r6, #0
+ 80003f6: d069 beq.n 80004cc <__udivmoddi4+0x2c8>
+ 80003f8: ebb1 050a subs.w r5, r1, sl
+ 80003fc: eb64 0403 sbc.w r4, r4, r3
+ 8000400: fa04 fc0c lsl.w ip, r4, ip
+ 8000404: 40fd lsrs r5, r7
+ 8000406: 40fc lsrs r4, r7
+ 8000408: ea4c 0505 orr.w r5, ip, r5
+ 800040c: e9c6 5400 strd r5, r4, [r6]
+ 8000410: 2700 movs r7, #0
+ 8000412: e747 b.n 80002a4 <__udivmoddi4+0xa0>
+ 8000414: f1c2 0320 rsb r3, r2, #32
+ 8000418: fa20 f703 lsr.w r7, r0, r3
+ 800041c: 4095 lsls r5, r2
+ 800041e: fa01 f002 lsl.w r0, r1, r2
+ 8000422: fa21 f303 lsr.w r3, r1, r3
+ 8000426: ea4f 4e15 mov.w lr, r5, lsr #16
+ 800042a: 4338 orrs r0, r7
+ 800042c: 0c01 lsrs r1, r0, #16
+ 800042e: fbb3 f7fe udiv r7, r3, lr
+ 8000432: fa1f f885 uxth.w r8, r5
+ 8000436: fb0e 3317 mls r3, lr, r7, r3
+ 800043a: ea41 4103 orr.w r1, r1, r3, lsl #16
+ 800043e: fb07 f308 mul.w r3, r7, r8
+ 8000442: 428b cmp r3, r1
+ 8000444: fa04 f402 lsl.w r4, r4, r2
+ 8000448: d907 bls.n 800045a <__udivmoddi4+0x256>
+ 800044a: 1869 adds r1, r5, r1
+ 800044c: f107 3cff add.w ip, r7, #4294967295
+ 8000450: d22f bcs.n 80004b2 <__udivmoddi4+0x2ae>
+ 8000452: 428b cmp r3, r1
+ 8000454: d92d bls.n 80004b2 <__udivmoddi4+0x2ae>
+ 8000456: 3f02 subs r7, #2
+ 8000458: 4429 add r1, r5
+ 800045a: 1acb subs r3, r1, r3
+ 800045c: b281 uxth r1, r0
+ 800045e: fbb3 f0fe udiv r0, r3, lr
+ 8000462: fb0e 3310 mls r3, lr, r0, r3
+ 8000466: ea41 4103 orr.w r1, r1, r3, lsl #16
+ 800046a: fb00 f308 mul.w r3, r0, r8
+ 800046e: 428b cmp r3, r1
+ 8000470: d907 bls.n 8000482 <__udivmoddi4+0x27e>
+ 8000472: 1869 adds r1, r5, r1
+ 8000474: f100 3cff add.w ip, r0, #4294967295
+ 8000478: d217 bcs.n 80004aa <__udivmoddi4+0x2a6>
+ 800047a: 428b cmp r3, r1
+ 800047c: d915 bls.n 80004aa <__udivmoddi4+0x2a6>
+ 800047e: 3802 subs r0, #2
+ 8000480: 4429 add r1, r5
+ 8000482: 1ac9 subs r1, r1, r3
+ 8000484: ea40 4707 orr.w r7, r0, r7, lsl #16
+ 8000488: e73b b.n 8000302 <__udivmoddi4+0xfe>
+ 800048a: 4637 mov r7, r6
+ 800048c: 4630 mov r0, r6
+ 800048e: e709 b.n 80002a4 <__udivmoddi4+0xa0>
+ 8000490: 4607 mov r7, r0
+ 8000492: e6e7 b.n 8000264 <__udivmoddi4+0x60>
+ 8000494: 4618 mov r0, r3
+ 8000496: e6fb b.n 8000290 <__udivmoddi4+0x8c>
+ 8000498: 4541 cmp r1, r8
+ 800049a: d2ab bcs.n 80003f4 <__udivmoddi4+0x1f0>
+ 800049c: ebb8 0a02 subs.w sl, r8, r2
+ 80004a0: eb69 020e sbc.w r2, r9, lr
+ 80004a4: 3801 subs r0, #1
+ 80004a6: 4613 mov r3, r2
+ 80004a8: e7a4 b.n 80003f4 <__udivmoddi4+0x1f0>
+ 80004aa: 4660 mov r0, ip
+ 80004ac: e7e9 b.n 8000482 <__udivmoddi4+0x27e>
+ 80004ae: 4618 mov r0, r3
+ 80004b0: e795 b.n 80003de <__udivmoddi4+0x1da>
+ 80004b2: 4667 mov r7, ip
+ 80004b4: e7d1 b.n 800045a <__udivmoddi4+0x256>
+ 80004b6: 4681 mov r9, r0
+ 80004b8: e77c b.n 80003b4 <__udivmoddi4+0x1b0>
+ 80004ba: 3802 subs r0, #2
+ 80004bc: 442c add r4, r5
+ 80004be: e747 b.n 8000350 <__udivmoddi4+0x14c>
+ 80004c0: f1ac 0c02 sub.w ip, ip, #2
+ 80004c4: 442b add r3, r5
+ 80004c6: e72f b.n 8000328 <__udivmoddi4+0x124>
+ 80004c8: 4638 mov r0, r7
+ 80004ca: e708 b.n 80002de <__udivmoddi4+0xda>
+ 80004cc: 4637 mov r7, r6
+ 80004ce: e6e9 b.n 80002a4 <__udivmoddi4+0xa0>
+
+080004d0 <__aeabi_idiv0>:
+ 80004d0: 4770 bx lr
+ 80004d2: bf00 nop
+
+080004d4 :
+ * Flash Latency(WS) = 2
+ * @param None
+ * @retval None
+ */
+void SystemClock_Config(void)
+{
+ 80004d4: b580 push {r7, lr}
+ 80004d6: b094 sub sp, #80 ; 0x50
+ 80004d8: af00 add r7, sp, #0
+ RCC_ClkInitTypeDef RCC_ClkInitStruct;
+ RCC_OscInitTypeDef RCC_OscInitStruct;
+
+ /* Enable Power Control clock */
+ __PWR_CLK_ENABLE();
+ 80004da: 2300 movs r3, #0
+ 80004dc: 60bb str r3, [r7, #8]
+ 80004de: 4b2a ldr r3, [pc, #168] ; (8000588 )
+ 80004e0: 6c1b ldr r3, [r3, #64] ; 0x40
+ 80004e2: 4a29 ldr r2, [pc, #164] ; (8000588 )
+ 80004e4: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000
+ 80004e8: 6413 str r3, [r2, #64] ; 0x40
+ 80004ea: 4b27 ldr r3, [pc, #156] ; (8000588 )
+ 80004ec: 6c1b ldr r3, [r3, #64] ; 0x40
+ 80004ee: f003 5380 and.w r3, r3, #268435456 ; 0x10000000
+ 80004f2: 60bb str r3, [r7, #8]
+ 80004f4: 68bb ldr r3, [r7, #8]
+
+ /* The voltage scaling allows optimizing the power consumption when the device is
+ clocked below the maximum system frequency, to update the voltage scaling value
+ regarding system frequency refer to product datasheet. */
+ __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE2);
+ 80004f6: 2300 movs r3, #0
+ 80004f8: 607b str r3, [r7, #4]
+ 80004fa: 4b24 ldr r3, [pc, #144] ; (800058c )
+ 80004fc: 681b ldr r3, [r3, #0]
+ 80004fe: f423 4340 bic.w r3, r3, #49152 ; 0xc000
+ 8000502: 4a22 ldr r2, [pc, #136] ; (800058c )
+ 8000504: f443 4300 orr.w r3, r3, #32768 ; 0x8000
+ 8000508: 6013 str r3, [r2, #0]
+ 800050a: 4b20 ldr r3, [pc, #128] ; (800058c )
+ 800050c: 681b ldr r3, [r3, #0]
+ 800050e: f403 4340 and.w r3, r3, #49152 ; 0xc000
+ 8000512: 607b str r3, [r7, #4]
+ 8000514: 687b ldr r3, [r7, #4]
+
+ /* Enable HSE Oscillator and activate PLL with HSI as source */
+ RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
+ 8000516: 2302 movs r3, #2
+ 8000518: 60fb str r3, [r7, #12]
+ RCC_OscInitStruct.HSIState = RCC_HSI_ON;
+ 800051a: 2301 movs r3, #1
+ 800051c: 61bb str r3, [r7, #24]
+ RCC_OscInitStruct.HSICalibrationValue = 16;
+ 800051e: 2310 movs r3, #16
+ 8000520: 61fb str r3, [r7, #28]
+ RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
+ 8000522: 2302 movs r3, #2
+ 8000524: 627b str r3, [r7, #36] ; 0x24
+ RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;
+ 8000526: 2300 movs r3, #0
+ 8000528: 62bb str r3, [r7, #40] ; 0x28
+ RCC_OscInitStruct.PLL.PLLM = 16;
+ 800052a: 2310 movs r3, #16
+ 800052c: 62fb str r3, [r7, #44] ; 0x2c
+ RCC_OscInitStruct.PLL.PLLN = 336;
+ 800052e: f44f 73a8 mov.w r3, #336 ; 0x150
+ 8000532: 633b str r3, [r7, #48] ; 0x30
+ RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV4;
+ 8000534: 2304 movs r3, #4
+ 8000536: 637b str r3, [r7, #52] ; 0x34
+ RCC_OscInitStruct.PLL.PLLQ = 7;
+ 8000538: 2307 movs r3, #7
+ 800053a: 63bb str r3, [r7, #56] ; 0x38
+ if(HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
+ 800053c: f107 030c add.w r3, r7, #12
+ 8000540: 4618 mov r0, r3
+ 8000542: f003 fd67 bl 8004014
+ 8000546: 4603 mov r3, r0
+ 8000548: 2b00 cmp r3, #0
+ 800054a: d002 beq.n 8000552
+ {
+ MyErrorHandler(0);
+ 800054c: 2000 movs r0, #0
+ 800054e: f001 ff27 bl 80023a0
+ }
+
+ /* Select PLL as system clock source and configure the HCLK, PCLK1 and PCLK2
+ clocks dividers */
+ RCC_ClkInitStruct.ClockType = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2);
+ 8000552: 230f movs r3, #15
+ 8000554: 63fb str r3, [r7, #60] ; 0x3c
+ RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
+ 8000556: 2302 movs r3, #2
+ 8000558: 643b str r3, [r7, #64] ; 0x40
+ RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
+ 800055a: 2300 movs r3, #0
+ 800055c: 647b str r3, [r7, #68] ; 0x44
+ RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;
+ 800055e: f44f 5380 mov.w r3, #4096 ; 0x1000
+ 8000562: 64bb str r3, [r7, #72] ; 0x48
+ RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
+ 8000564: 2300 movs r3, #0
+ 8000566: 64fb str r3, [r7, #76] ; 0x4c
+ if(HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
+ 8000568: f107 033c add.w r3, r7, #60 ; 0x3c
+ 800056c: 2102 movs r1, #2
+ 800056e: 4618 mov r0, r3
+ 8000570: f003 ff92 bl 8004498
+ 8000574: 4603 mov r3, r0
+ 8000576: 2b00 cmp r3, #0
+ 8000578: d002 beq.n 8000580
+ {
+ MyErrorHandler(1);
+ 800057a: 2001 movs r0, #1
+ 800057c: f001 ff10 bl 80023a0
+ }
+}
+ 8000580: bf00 nop
+ 8000582: 3750 adds r7, #80 ; 0x50
+ 8000584: 46bd mov sp, r7
+ 8000586: bd80 pop {r7, pc}
+ 8000588: 40023800 .word 0x40023800
+ 800058c: 40007000 .word 0x40007000
+
+08000590 :
+/******************************************************//**
+ * @brief Return motor handle (pointer to the L6208 motor driver structure)
+ * @retval Pointer to the motorDrv_t structure
+ **********************************************************/
+motorDrv_t* L6208_GetMotorHandle(void)
+{
+ 8000590: b480 push {r7}
+ 8000592: af00 add r7, sp, #0
+ return (&l6208Drv);
+ 8000594: 4b02 ldr r3, [pc, #8] ; (80005a0 )
+}
+ 8000596: 4618 mov r0, r3
+ 8000598: 46bd mov sp, r7
+ 800059a: f85d 7b04 ldr.w r7, [sp], #4
+ 800059e: 4770 bx lr
+ 80005a0: 20000004 .word 0x20000004
+
+080005a4 :
+ * @brief Start the L6208 library
+ * @param[in] pInit pointer to the initialization data
+ * @retval None
+ **********************************************************/
+void L6208_Init(void* pInit)
+{
+ 80005a4: b580 push {r7, lr}
+ 80005a6: b082 sub sp, #8
+ 80005a8: af00 add r7, sp, #0
+ 80005aa: 6078 str r0, [r7, #4]
+
+ l6208DriverInstance++;
+ 80005ac: 4b19 ldr r3, [pc, #100] ; (8000614 )
+ 80005ae: 881b ldrh r3, [r3, #0]
+ 80005b0: 3301 adds r3, #1
+ 80005b2: b29a uxth r2, r3
+ 80005b4: 4b17 ldr r3, [pc, #92] ; (8000614 )
+ 80005b6: 801a strh r2, [r3, #0]
+
+ /* Initialise the GPIOs */
+ L6208_Board_GpioInit();
+ 80005b8: f002 f8a0 bl 80026fc
+
+ if (pInit == NULL)
+ 80005bc: 687b ldr r3, [r7, #4]
+ 80005be: 2b00 cmp r3, #0
+ 80005c0: d102 bne.n 80005c8
+ {
+ /* Set context variables to the predefined values from l6208_target_config.h */
+ /* Set GPIO according to these values */
+ L6208_SetDeviceParamsToPredefinedValues();
+ 80005c2: f001 fab3 bl 8001b2c
+ 80005c6: e002 b.n 80005ce
+ }
+ else
+ {
+ L6208_SetDeviceParamsToGivenValues((l6208_Init_t*) pInit);
+ 80005c8: 6878 ldr r0, [r7, #4]
+ 80005ca: f001 fa53 bl 8001a74
+ }
+
+ /* Initialise the PWMs */
+ L6208_Board_VrefPwmInit(BRIDGE_A, devicePrm.vrefPwmFreq);
+ 80005ce: 4b12 ldr r3, [pc, #72] ; (8000618 )
+ 80005d0: 6b9b ldr r3, [r3, #56] ; 0x38
+ 80005d2: 4619 mov r1, r3
+ 80005d4: 2000 movs r0, #0
+ 80005d6: f002 f9c9 bl 800296c
+ L6208_Board_VrefPwmInit(BRIDGE_B, devicePrm.vrefPwmFreq);
+ 80005da: 4b0f ldr r3, [pc, #60] ; (8000618 )
+ 80005dc: 6b9b ldr r3, [r3, #56] ; 0x38
+ 80005de: 4619 mov r1, r3
+ 80005e0: 2001 movs r0, #1
+ 80005e2: f002 f9c3 bl 800296c
+
+ /* Initialise the tick */
+ L6208_Board_TickInit();
+ 80005e6: f002 f92b bl 8002840
+
+ /* Reset L6208 */
+ L6208_ResetDevice();
+ 80005ea: f000 fb19 bl 8000c20
+
+ /* Align motor mechanical position to driver position */
+ L6208_Board_VrefPwmStart(BRIDGE_A, devicePrm.vrefPwmFreq);
+ 80005ee: 4b0a ldr r3, [pc, #40] ; (8000618 )
+ 80005f0: 6b9b ldr r3, [r3, #56] ; 0x38
+ 80005f2: 4619 mov r1, r3
+ 80005f4: 2000 movs r0, #0
+ 80005f6: f002 fa87 bl 8002b08
+ L6208_Board_VrefPwmStart(BRIDGE_B, devicePrm.vrefPwmFreq);
+ 80005fa: 4b07 ldr r3, [pc, #28] ; (8000618 )
+ 80005fc: 6b9b ldr r3, [r3, #56] ; 0x38
+ 80005fe: 4619 mov r1, r3
+ 8000600: 2001 movs r0, #1
+ 8000602: f002 fa81 bl 8002b08
+ L6208_Enable(0);
+ 8000606: 2000 movs r0, #0
+ 8000608: f000 f864 bl 80006d4
+ }
+ 800060c: bf00 nop
+ 800060e: 3708 adds r7, #8
+ 8000610: 46bd mov sp, r7
+ 8000612: bd80 pop {r7, pc}
+ 8000614: 20000196 .word 0x20000196
+ 8000618: 20000230 .word 0x20000230
+
+0800061c :
+/******************************************************//**
+ * @brief Read id
+ * @retval Id of the l6208 Driver Instance
+ **********************************************************/
+uint16_t L6208_ReadId(void)
+ {
+ 800061c: b480 push {r7}
+ 800061e: af00 add r7, sp, #0
+ return(l6208DriverInstance);
+ 8000620: 4b03 ldr r3, [pc, #12] ; (8000630 )
+ 8000622: 881b ldrh r3, [r3, #0]
+ }
+ 8000624: 4618 mov r0, r3
+ 8000626: 46bd mov sp, r7
+ 8000628: f85d 7b04 ldr.w r7, [sp], #4
+ 800062c: 4770 bx lr
+ 800062e: bf00 nop
+ 8000630: 20000196 .word 0x20000196
+
+08000634 :
+ * @param[in] callback Name of the callback to attach
+ * to the error Hanlder
+ * @retval None
+ **********************************************************/
+void L6208_AttachErrorHandler(void (*callback)(uint16_t error))
+ {
+ 8000634: b480 push {r7}
+ 8000636: b083 sub sp, #12
+ 8000638: af00 add r7, sp, #0
+ 800063a: 6078 str r0, [r7, #4]
+ errorHandlerCallback = (void (*)(uint16_t error)) callback;
+ 800063c: 4a04 ldr r2, [pc, #16] ; (8000650 )
+ 800063e: 687b ldr r3, [r7, #4]
+ 8000640: 6013 str r3, [r2, #0]
+}
+ 8000642: bf00 nop
+ 8000644: 370c adds r7, #12
+ 8000646: 46bd mov sp, r7
+ 8000648: f85d 7b04 ldr.w r7, [sp], #4
+ 800064c: 4770 bx lr
+ 800064e: bf00 nop
+ 8000650: 200002f0 .word 0x200002f0
+
+08000654 :
+ * @param[in] callback Name of the callback to attach
+ * to the Flag Interrupt
+ * @retval None
+ **********************************************************/
+void L6208_AttachFlagInterrupt(void (*callback)(void))
+{
+ 8000654: b480 push {r7}
+ 8000656: b083 sub sp, #12
+ 8000658: af00 add r7, sp, #0
+ 800065a: 6078 str r0, [r7, #4]
+ flagInterruptCallback = (void (*)())callback;
+ 800065c: 4a04 ldr r2, [pc, #16] ; (8000670 )
+ 800065e: 687b ldr r3, [r7, #4]
+ 8000660: 6013 str r3, [r2, #0]
+}
+ 8000662: bf00 nop
+ 8000664: 370c adds r7, #12
+ 8000666: 46bd mov sp, r7
+ 8000668: f85d 7b04 ldr.w r7, [sp], #4
+ 800066c: 4770 bx lr
+ 800066e: bf00 nop
+ 8000670: 200002f4 .word 0x200002f4
+
+08000674 :
+/******************************************************//**
+ * @brief Check if L6208 has a fault by reading EN pin position.
+ * @retval One if L6208 has EN pin down, otherwise zero
+ **********************************************************/
+uint8_t L6208_CheckStatusHw(void)
+{
+ 8000674: b580 push {r7, lr}
+ 8000676: af00 add r7, sp, #0
+ if(!L6208_Board_FLAG_PIN_GetState())
+ 8000678: f002 fb2e bl 8002cd8
+ 800067c: 4603 mov r3, r0
+ 800067e: 2b00 cmp r3, #0
+ 8000680: d101 bne.n 8000686
+ {
+ return 0x01;
+ 8000682: 2301 movs r3, #1
+ 8000684: e000 b.n 8000688
+ }
+ else
+ {
+ return 0x00;
+ 8000686: 2300 movs r3, #0
+ }
+}
+ 8000688: 4618 mov r0, r3
+ 800068a: bd80 pop {r7, pc}
+
+0800068c :
+ * @brief Disable the power bridges (leave the output bridges HiZ)
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @retval None
+ **********************************************************/
+void L6208_Disable(uint8_t deviceId)
+ {
+ 800068c: b580 push {r7, lr}
+ 800068e: b082 sub sp, #8
+ 8000690: af00 add r7, sp, #0
+ 8000692: 4603 mov r3, r0
+ 8000694: 71fb strb r3, [r7, #7]
+ L6208_Board_Disable();
+ 8000696: f002 fb2b bl 8002cf0
+ L6208_ClearSysFlag(EN_A_set);
+ 800069a: 2001 movs r0, #1
+ 800069c: f000 ffe0 bl 8001660
+}
+ 80006a0: bf00 nop
+ 80006a2: 3708 adds r7, #8
+ 80006a4: 46bd mov sp, r7
+ 80006a6: bd80 pop {r7, pc}
+
+080006a8 :
+ * @brief Error handler which calls the user callback (if defined)
+ * @param[in] error Number of the error
+ * @retval None
+ **********************************************************/
+void L6208_ErrorHandler(uint16_t error)
+ {
+ 80006a8: b580 push {r7, lr}
+ 80006aa: b082 sub sp, #8
+ 80006ac: af00 add r7, sp, #0
+ 80006ae: 4603 mov r3, r0
+ 80006b0: 80fb strh r3, [r7, #6]
+ if (errorHandlerCallback != 0)
+ 80006b2: 4b07 ldr r3, [pc, #28] ; (80006d0 )
+ 80006b4: 681b ldr r3, [r3, #0]
+ 80006b6: 2b00 cmp r3, #0
+ 80006b8: d005 beq.n 80006c6
+ {
+ errorHandlerCallback(error);
+ 80006ba: 4b05 ldr r3, [pc, #20] ; (80006d0 )
+ 80006bc: 681b ldr r3, [r3, #0]
+ 80006be: 88fa ldrh r2, [r7, #6]
+ 80006c0: 4610 mov r0, r2
+ 80006c2: 4798 blx r3
+ while(1)
+ {
+ /* Infinite loop */
+ }
+ }
+ }
+ 80006c4: e000 b.n 80006c8
+ while(1)
+ 80006c6: e7fe b.n 80006c6
+ }
+ 80006c8: 3708 adds r7, #8
+ 80006ca: 46bd mov sp, r7
+ 80006cc: bd80 pop {r7, pc}
+ 80006ce: bf00 nop
+ 80006d0: 200002f0 .word 0x200002f0
+
+080006d4 :
+ * @brief Enable the power bridges
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @retval None
+ **********************************************************/
+void L6208_Enable(uint8_t deviceId)
+ {
+ 80006d4: b580 push {r7, lr}
+ 80006d6: b082 sub sp, #8
+ 80006d8: af00 add r7, sp, #0
+ 80006da: 4603 mov r3, r0
+ 80006dc: 71fb strb r3, [r7, #7]
+ L6208_Board_Enable();
+ 80006de: f002 fb2d bl 8002d3c
+ L6208_SetSysFlag(EN_A_set);
+ 80006e2: 2001 movs r0, #1
+ 80006e4: f001 faf8 bl 8001cd8
+ }
+ 80006e8: bf00 nop
+ 80006ea: 3708 adds r7, #8
+ 80006ec: 46bd mov sp, r7
+ 80006ee: bd80 pop {r7, pc}
+
+080006f0 :
+/******************************************************//**
+ * @brief Handler of the flag interrupt which calls the user callback (if defined)
+ * @retval None
+ **********************************************************/
+void L6208_FlagInterruptHandler(void)
+ {
+ 80006f0: b580 push {r7, lr}
+ 80006f2: af00 add r7, sp, #0
+ if (flagInterruptCallback != 0)
+ 80006f4: 4b07 ldr r3, [pc, #28] ; (8000714 )
+ 80006f6: 681b ldr r3, [r3, #0]
+ 80006f8: 2b00 cmp r3, #0
+ 80006fa: d008 beq.n 800070e
+ {
+ /* Set isr flag */
+ isrFlag = TRUE;
+ 80006fc: 4b06 ldr r3, [pc, #24] ; (8000718 )
+ 80006fe: 2201 movs r2, #1
+ 8000700: 701a strb r2, [r3, #0]
+
+ flagInterruptCallback();
+ 8000702: 4b04 ldr r3, [pc, #16] ; (8000714 )
+ 8000704: 681b ldr r3, [r3, #0]
+ 8000706: 4798 blx r3
+
+ /* Reset isr flag */
+ isrFlag = FALSE;
+ 8000708: 4b03 ldr r3, [pc, #12] ; (8000718 )
+ 800070a: 2200 movs r2, #0
+ 800070c: 701a strb r2, [r3, #0]
+ }
+ }
+ 800070e: bf00 nop
+ 8000710: bd80 pop {r7, pc}
+ 8000712: bf00 nop
+ 8000714: 200002f4 .word 0x200002f4
+ 8000718: 20000194 .word 0x20000194
+
+0800071c :
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @retval the stepper acceleration rate in step/s^2 or microstep/s^2
+ * @note
+ **********************************************************/
+uint16_t L6208_GetAcceleration(uint8_t deviceId)
+ {
+ 800071c: b480 push {r7}
+ 800071e: b083 sub sp, #12
+ 8000720: af00 add r7, sp, #0
+ 8000722: 4603 mov r3, r0
+ 8000724: 71fb strb r3, [r7, #7]
+ return devicePrm.accelerationSps2;
+ 8000726: 4b05 ldr r3, [pc, #20] ; (800073c )
+ 8000728: f8b3 3042 ldrh.w r3, [r3, #66] ; 0x42
+ 800072c: b29b uxth r3, r3
+ }
+ 800072e: 4618 mov r0, r3
+ 8000730: 370c adds r7, #12
+ 8000732: 46bd mov sp, r7
+ 8000734: f85d 7b04 ldr.w r7, [sp], #4
+ 8000738: 4770 bx lr
+ 800073a: bf00 nop
+ 800073c: 20000230 .word 0x20000230
+
+08000740 :
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @retval return the current speed in step/s or microstep/s
+ * @note
+ **********************************************************/
+uint16_t L6208_GetCurrentSpeed(uint8_t deviceId)
+ {
+ 8000740: b5f0 push {r4, r5, r6, r7, lr}
+ 8000742: b085 sub sp, #20
+ 8000744: af00 add r7, sp, #0
+ 8000746: 4603 mov r3, r0
+ 8000748: 71fb strb r3, [r7, #7]
+ uint64_t tmp64 = (uint64_t) devicePrm.speedSpt * L6208_Board_TickGetFreq();
+ 800074a: 4b25 ldr r3, [pc, #148] ; (80007e0 )
+ 800074c: 6d9b ldr r3, [r3, #88] ; 0x58
+ 800074e: 461d mov r5, r3
+ 8000750: f04f 0600 mov.w r6, #0
+ 8000754: f002 f8ee bl 8002934
+ 8000758: 4603 mov r3, r0
+ 800075a: f04f 0400 mov.w r4, #0
+ 800075e: fb03 f106 mul.w r1, r3, r6
+ 8000762: fb05 f204 mul.w r2, r5, r4
+ 8000766: 440a add r2, r1
+ 8000768: fba5 3403 umull r3, r4, r5, r3
+ 800076c: 4422 add r2, r4
+ 800076e: 4614 mov r4, r2
+ 8000770: e9c7 3402 strd r3, r4, [r7, #8]
+ 8000774: e9c7 3402 strd r3, r4, [r7, #8]
+
+ devicePrm.speedSps = (uint16_t)(tmp64 >> 23);
+ 8000778: e9d7 1202 ldrd r1, r2, [r7, #8]
+ 800077c: f04f 0300 mov.w r3, #0
+ 8000780: f04f 0400 mov.w r4, #0
+ 8000784: 0dcb lsrs r3, r1, #23
+ 8000786: ea43 2342 orr.w r3, r3, r2, lsl #9
+ 800078a: 0dd4 lsrs r4, r2, #23
+ 800078c: b29a uxth r2, r3
+ 800078e: 4b14 ldr r3, [pc, #80] ; (80007e0 )
+ 8000790: f8a3 204e strh.w r2, [r3, #78] ; 0x4e
+ if (devicePrm.speedSps & 0x1)
+ 8000794: 4b12 ldr r3, [pc, #72] ; (80007e0 )
+ 8000796: f8b3 304e ldrh.w r3, [r3, #78] ; 0x4e
+ 800079a: b29b uxth r3, r3
+ 800079c: f003 0301 and.w r3, r3, #1
+ 80007a0: 2b00 cmp r3, #0
+ 80007a2: d00b beq.n 80007bc
+ {
+ devicePrm.speedSps = (devicePrm.speedSps >> 1) + 1;
+ 80007a4: 4b0e ldr r3, [pc, #56] ; (80007e0 )
+ 80007a6: f8b3 304e ldrh.w r3, [r3, #78] ; 0x4e
+ 80007aa: b29b uxth r3, r3
+ 80007ac: 085b lsrs r3, r3, #1
+ 80007ae: b29b uxth r3, r3
+ 80007b0: 3301 adds r3, #1
+ 80007b2: b29a uxth r2, r3
+ 80007b4: 4b0a ldr r3, [pc, #40] ; (80007e0 )
+ 80007b6: f8a3 204e strh.w r2, [r3, #78] ; 0x4e
+ 80007ba: e008 b.n 80007ce
+ }
+ else
+ {
+ devicePrm.speedSps = devicePrm.speedSps >> 1;
+ 80007bc: 4b08 ldr r3, [pc, #32] ; (80007e0 )
+ 80007be: f8b3 304e ldrh.w r3, [r3, #78] ; 0x4e
+ 80007c2: b29b uxth r3, r3
+ 80007c4: 085b lsrs r3, r3, #1
+ 80007c6: b29a uxth r2, r3
+ 80007c8: 4b05 ldr r3, [pc, #20] ; (80007e0 )
+ 80007ca: f8a3 204e strh.w r2, [r3, #78] ; 0x4e
+ }
+ return devicePrm.speedSps;
+ 80007ce: 4b04 ldr r3, [pc, #16] ; (80007e0 )
+ 80007d0: f8b3 304e ldrh.w r3, [r3, #78] ; 0x4e
+ 80007d4: b29b uxth r3, r3
+ }
+ 80007d6: 4618 mov r0, r3
+ 80007d8: 3714 adds r7, #20
+ 80007da: 46bd mov sp, r7
+ 80007dc: bdf0 pop {r4, r5, r6, r7, pc}
+ 80007de: bf00 nop
+ 80007e0: 20000230 .word 0x20000230
+
+080007e4 :
+ * @brief Get the motor decay mode
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @retval decay mode
+ **********************************************************/
+motorDecayMode_t L6208_GetDecayMode(uint8_t deviceId)
+ {
+ 80007e4: b580 push {r7, lr}
+ 80007e6: b082 sub sp, #8
+ 80007e8: af00 add r7, sp, #0
+ 80007ea: 4603 mov r3, r0
+ 80007ec: 71fb strb r3, [r7, #7]
+ if (L6208_IsSysFlag(fastdecaymode)) return (FAST_DECAY);
+ 80007ee: f44f 6000 mov.w r0, #2048 ; 0x800
+ 80007f2: f001 f8bd bl 8001970
+ 80007f6: 4603 mov r3, r0
+ 80007f8: 2b00 cmp r3, #0
+ 80007fa: d001 beq.n 8000800
+ 80007fc: 2301 movs r3, #1
+ 80007fe: e000 b.n 8000802
+ else return (SLOW_DECAY);
+ 8000800: 2300 movs r3, #0
+ }
+ 8000802: 4618 mov r0, r3
+ 8000804: 3708 adds r7, #8
+ 8000806: 46bd mov sp, r7
+ 8000808: bd80 pop {r7, pc}
+ ...
+
+0800080c :
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @retval the stepper deceleration rate in step/s^2 or microstep/s^2
+ * @note
+ **********************************************************/
+uint16_t L6208_GetDeceleration(uint8_t deviceId)
+ {
+ 800080c: b480 push {r7}
+ 800080e: b083 sub sp, #12
+ 8000810: af00 add r7, sp, #0
+ 8000812: 4603 mov r3, r0
+ 8000814: 71fb strb r3, [r7, #7]
+ return devicePrm.decelerationSps2;
+ 8000816: 4b05 ldr r3, [pc, #20] ; (800082c )
+ 8000818: f8b3 3044 ldrh.w r3, [r3, #68] ; 0x44
+ 800081c: b29b uxth r3, r3
+ }
+ 800081e: 4618 mov r0, r3
+ 8000820: 370c adds r7, #12
+ 8000822: 46bd mov sp, r7
+ 8000824: f85d 7b04 ldr.w r7, [sp], #4
+ 8000828: 4770 bx lr
+ 800082a: bf00 nop
+ 800082c: 20000230 .word 0x20000230
+
+08000830 :
+ * @brief Get the motor current direction
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @retval direction
+ **********************************************************/
+motorDir_t L6208_GetDirection(uint8_t deviceId)
+ {
+ 8000830: b580 push {r7, lr}
+ 8000832: b082 sub sp, #8
+ 8000834: af00 add r7, sp, #0
+ 8000836: 4603 mov r3, r0
+ 8000838: 71fb strb r3, [r7, #7]
+ if (L6208_IsSysFlag(forward))
+ 800083a: f44f 7000 mov.w r0, #512 ; 0x200
+ 800083e: f001 f897 bl 8001970
+ 8000842: 4603 mov r3, r0
+ 8000844: 2b00 cmp r3, #0
+ 8000846: d001 beq.n 800084c
+ {
+ return FORWARD;
+ 8000848: 2301 movs r3, #1
+ 800084a: e000 b.n 800084e
+ }
+ else
+ {
+ return BACKWARD;
+ 800084c: 2300 movs r3, #0
+ }
+ }
+ 800084e: 4618 mov r0, r3
+ 8000850: 3708 adds r7, #8
+ 8000852: 46bd mov sp, r7
+ 8000854: bd80 pop {r7, pc}
+
+08000856 :
+/******************************************************//**
+ * @brief Return the FW version.
+ * @retval FW version
+ **********************************************************/
+uint32_t L6208_GetFwVersion(void)
+ {
+ 8000856: b480 push {r7}
+ 8000858: af00 add r7, sp, #0
+ return L6208_FW_VERSION;
+ 800085a: f44f 3382 mov.w r3, #66560 ; 0x10400
+ }
+ 800085e: 4618 mov r0, r3
+ 8000860: 46bd mov sp, r7
+ 8000862: f85d 7b04 ldr.w r7, [sp], #4
+ 8000866: 4770 bx lr
+
+08000868 :
+ * @brief Get the mark position (32b signed)
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @retval mark position
+ **********************************************************/
+int32_t L6208_GetMark(uint8_t deviceId)
+{
+ 8000868: b480 push {r7}
+ 800086a: b083 sub sp, #12
+ 800086c: af00 add r7, sp, #0
+ 800086e: 4603 mov r3, r0
+ 8000870: 71fb strb r3, [r7, #7]
+ return devicePrm.markPos;
+ 8000872: 4b04 ldr r3, [pc, #16] ; (8000884 )
+ 8000874: 6a1b ldr r3, [r3, #32]
+ }
+ 8000876: 4618 mov r0, r3
+ 8000878: 370c adds r7, #12
+ 800087a: 46bd mov sp, r7
+ 800087c: f85d 7b04 ldr.w r7, [sp], #4
+ 8000880: 4770 bx lr
+ 8000882: bf00 nop
+ 8000884: 20000230 .word 0x20000230
+
+08000888 :
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @retval return the max speed in step/s or microstep/s
+ * @note
+ **********************************************************/
+uint16_t L6208_GetMaxSpeed(uint8_t deviceId)
+ {
+ 8000888: b480 push {r7}
+ 800088a: b083 sub sp, #12
+ 800088c: af00 add r7, sp, #0
+ 800088e: 4603 mov r3, r0
+ 8000890: 71fb strb r3, [r7, #7]
+ return devicePrm.maxSpeedSps;
+ 8000892: 4b05 ldr r3, [pc, #20] ; (80008a8 )
+ 8000894: f8b3 304a ldrh.w r3, [r3, #74] ; 0x4a
+ 8000898: b29b uxth r3, r3
+ }
+ 800089a: 4618 mov r0, r3
+ 800089c: 370c adds r7, #12
+ 800089e: 46bd mov sp, r7
+ 80008a0: f85d 7b04 ldr.w r7, [sp], #4
+ 80008a4: 4770 bx lr
+ 80008a6: bf00 nop
+ 80008a8: 20000230 .word 0x20000230
+
+080008ac :
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @retval return the min speed in step/s or microstep/s
+ * @note
+ **********************************************************/
+uint16_t L6208_GetMinSpeed(uint8_t deviceId)
+{
+ 80008ac: b480 push {r7}
+ 80008ae: b083 sub sp, #12
+ 80008b0: af00 add r7, sp, #0
+ 80008b2: 4603 mov r3, r0
+ 80008b4: 71fb strb r3, [r7, #7]
+ return devicePrm.minSpeedSps;
+ 80008b6: 4b05 ldr r3, [pc, #20] ; (80008cc )
+ 80008b8: f8b3 304c ldrh.w r3, [r3, #76] ; 0x4c
+ 80008bc: b29b uxth r3, r3
+ }
+ 80008be: 4618 mov r0, r3
+ 80008c0: 370c adds r7, #12
+ 80008c2: 46bd mov sp, r7
+ 80008c4: f85d 7b04 ldr.w r7, [sp], #4
+ 80008c8: 4770 bx lr
+ 80008ca: bf00 nop
+ 80008cc: 20000230 .word 0x20000230
+
+080008d0 :
+ * @brief Get the stepper state machine index
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @retval one of the stepper state machine index in the motorState_t enum
+ **********************************************************/
+motorState_t L6208_GetMotionState(uint8_t deviceId)
+ {
+ 80008d0: b480 push {r7}
+ 80008d2: b083 sub sp, #12
+ 80008d4: af00 add r7, sp, #0
+ 80008d6: 4603 mov r3, r0
+ 80008d8: 71fb strb r3, [r7, #7]
+ // gets the new stepper state machine index
+ return devicePrm.motionState;
+ 80008da: 4b05 ldr r3, [pc, #20] ; (80008f0 )
+ 80008dc: f893 3034 ldrb.w r3, [r3, #52] ; 0x34
+ 80008e0: b2db uxtb r3, r3
+}
+ 80008e2: 4618 mov r0, r3
+ 80008e4: 370c adds r7, #12
+ 80008e6: 46bd mov sp, r7
+ 80008e8: f85d 7b04 ldr.w r7, [sp], #4
+ 80008ec: 4770 bx lr
+ 80008ee: bf00 nop
+ 80008f0: 20000230 .word 0x20000230
+
+080008f4 :
+ * @brief Get the current position (32b signed)
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @retval current absoulte position
+ **********************************************************/
+int32_t L6208_GetPosition(uint8_t deviceId)
+ {
+ 80008f4: b480 push {r7}
+ 80008f6: b083 sub sp, #12
+ 80008f8: af00 add r7, sp, #0
+ 80008fa: 4603 mov r3, r0
+ 80008fc: 71fb strb r3, [r7, #7]
+ return devicePrm.absolutePos;
+ 80008fe: 4b04 ldr r3, [pc, #16] ; (8000910 )
+ 8000900: 69db ldr r3, [r3, #28]
+ }
+ 8000902: 4618 mov r0, r3
+ 8000904: 370c adds r7, #12
+ 8000906: 46bd mov sp, r7
+ 8000908: f85d 7b04 ldr.w r7, [sp], #4
+ 800090c: 4770 bx lr
+ 800090e: bf00 nop
+ 8000910: 20000230 .word 0x20000230
+
+08000914 :
+ * @brief Get the motor step mode
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @retval step mode
+ **********************************************************/
+motorStepMode_t L6208_GetStepMode(uint8_t deviceId)
+ {
+ 8000914: b480 push {r7}
+ 8000916: b083 sub sp, #12
+ 8000918: af00 add r7, sp, #0
+ 800091a: 4603 mov r3, r0
+ 800091c: 71fb strb r3, [r7, #7]
+ return devicePrm.stepMode;
+ 800091e: 4b05 ldr r3, [pc, #20] ; (8000934 )
+ 8000920: f893 3035 ldrb.w r3, [r3, #53] ; 0x35
+ 8000924: b2db uxtb r3, r3
+ }
+ 8000926: 4618 mov r0, r3
+ 8000928: 370c adds r7, #12
+ 800092a: 46bd mov sp, r7
+ 800092c: f85d 7b04 ldr.w r7, [sp], #4
+ 8000930: 4770 bx lr
+ 8000932: bf00 nop
+ 8000934: 20000230 .word 0x20000230
+
+08000938 :
+ * @brief Get the selected stop mode
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @retval the selected stop mode
+ **********************************************************/
+motorStopMode_t L6208_GetStopMode(uint8_t deviceId)
+ {
+ 8000938: b580 push {r7, lr}
+ 800093a: b082 sub sp, #8
+ 800093c: af00 add r7, sp, #0
+ 800093e: 4603 mov r3, r0
+ 8000940: 71fb strb r3, [r7, #7]
+ if (L6208_IsSysFlag(HiZstop) == FALSE)
+ 8000942: 2002 movs r0, #2
+ 8000944: f001 f814 bl 8001970
+ 8000948: 4603 mov r3, r0
+ 800094a: 2b00 cmp r3, #0
+ 800094c: d101 bne.n 8000952
+ {
+ return (HOLD_MODE);
+ 800094e: 2300 movs r3, #0
+ 8000950: e000 b.n 8000954
+ }
+ else
+ {
+ return (HIZ_MODE);
+ 8000952: 2301 movs r3, #1
+ }
+}
+ 8000954: 4618 mov r0, r3
+ 8000956: 3708 adds r7, #8
+ 8000958: 46bd mov sp, r7
+ 800095a: bd80 pop {r7, pc}
+
+0800095c :
+ * @param[in] torqueMode torque mode
+ * @retval the torqueValue in % (from 0 to 100)
+ * @note
+ **********************************************************/
+uint8_t L6208_GetTorque(uint8_t deviceId, motorTorqueMode_t torqueMode)
+{
+ 800095c: b480 push {r7}
+ 800095e: b085 sub sp, #20
+ 8000960: af00 add r7, sp, #0
+ 8000962: 4603 mov r3, r0
+ 8000964: 460a mov r2, r1
+ 8000966: 71fb strb r3, [r7, #7]
+ 8000968: 4613 mov r3, r2
+ 800096a: 71bb strb r3, [r7, #6]
+ uint8_t torqueValue = 0;
+ 800096c: 2300 movs r3, #0
+ 800096e: 73fb strb r3, [r7, #15]
+ switch(torqueMode)
+ 8000970: 79bb ldrb r3, [r7, #6]
+ 8000972: 2b04 cmp r3, #4
+ 8000974: d825 bhi.n 80009c2
+ 8000976: a201 add r2, pc, #4 ; (adr r2, 800097c )
+ 8000978: f852 f023 ldr.w pc, [r2, r3, lsl #2]
+ 800097c: 08000991 .word 0x08000991
+ 8000980: 0800099b .word 0x0800099b
+ 8000984: 080009a5 .word 0x080009a5
+ 8000988: 080009af .word 0x080009af
+ 800098c: 080009b9 .word 0x080009b9
+ {
+ case ACC_TORQUE:
+ torqueValue = devicePrm.accelTorque;
+ 8000990: 4b10 ldr r3, [pc, #64] ; (80009d4 )
+ 8000992: f893 303e ldrb.w r3, [r3, #62] ; 0x3e
+ 8000996: 73fb strb r3, [r7, #15]
+ break;
+ 8000998: e014 b.n 80009c4
+ case DEC_TORQUE:
+ torqueValue = devicePrm.decelTorque;
+ 800099a: 4b0e ldr r3, [pc, #56] ; (80009d4 )
+ 800099c: f893 303f ldrb.w r3, [r3, #63] ; 0x3f
+ 80009a0: 73fb strb r3, [r7, #15]
+ break;
+ 80009a2: e00f b.n 80009c4
+ case RUN_TORQUE:
+ torqueValue = devicePrm.runTorque;
+ 80009a4: 4b0b ldr r3, [pc, #44] ; (80009d4 )
+ 80009a6: f893 303d ldrb.w r3, [r3, #61] ; 0x3d
+ 80009aa: 73fb strb r3, [r7, #15]
+ break;
+ 80009ac: e00a b.n 80009c4
+ case HOLD_TORQUE:
+ torqueValue = devicePrm.holdTorque;
+ 80009ae: 4b09 ldr r3, [pc, #36] ; (80009d4 )
+ 80009b0: f893 3040 ldrb.w r3, [r3, #64] ; 0x40
+ 80009b4: 73fb strb r3, [r7, #15]
+ break;
+ 80009b6: e005 b.n 80009c4
+ case CURRENT_TORQUE:
+ torqueValue = devicePrm.curTorqueScaler;
+ 80009b8: 4b06 ldr r3, [pc, #24] ; (80009d4 )
+ 80009ba: f893 303c ldrb.w r3, [r3, #60] ; 0x3c
+ 80009be: 73fb strb r3, [r7, #15]
+ break;
+ 80009c0: e000 b.n 80009c4
+ default:
+ break;
+ 80009c2: bf00 nop
+ }
+ return torqueValue;
+ 80009c4: 7bfb ldrb r3, [r7, #15]
+}
+ 80009c6: 4618 mov r0, r3
+ 80009c8: 3714 adds r7, #20
+ 80009ca: 46bd mov sp, r7
+ 80009cc: f85d 7b04 ldr.w r7, [sp], #4
+ 80009d0: 4770 bx lr
+ 80009d2: bf00 nop
+ 80009d4: 20000230 .word 0x20000230
+
+080009d8 :
+ * @brief Go to the home position
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @retval None
+ **********************************************************/
+void L6208_GoHome(uint8_t deviceId)
+{
+ 80009d8: b580 push {r7, lr}
+ 80009da: b082 sub sp, #8
+ 80009dc: af00 add r7, sp, #0
+ 80009de: 4603 mov r3, r0
+ 80009e0: 71fb strb r3, [r7, #7]
+ L6208_GoTo(deviceId, 0);
+ 80009e2: 79fb ldrb r3, [r7, #7]
+ 80009e4: 2100 movs r1, #0
+ 80009e6: 4618 mov r0, r3
+ 80009e8: f000 f816 bl 8000a18
+}
+ 80009ec: bf00 nop
+ 80009ee: 3708 adds r7, #8
+ 80009f0: 46bd mov sp, r7
+ 80009f2: bd80 pop {r7, pc}
+
+080009f4 :
+ * @brief Go to the Mark position
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @retval None
+ **********************************************************/
+void L6208_GoMark(uint8_t deviceId)
+{
+ 80009f4: b580 push {r7, lr}
+ 80009f6: b082 sub sp, #8
+ 80009f8: af00 add r7, sp, #0
+ 80009fa: 4603 mov r3, r0
+ 80009fc: 71fb strb r3, [r7, #7]
+ L6208_GoTo(deviceId, devicePrm.markPos);
+ 80009fe: 4b05 ldr r3, [pc, #20] ; (8000a14 )
+ 8000a00: 6a1a ldr r2, [r3, #32]
+ 8000a02: 79fb ldrb r3, [r7, #7]
+ 8000a04: 4611 mov r1, r2
+ 8000a06: 4618 mov r0, r3
+ 8000a08: f000 f806 bl 8000a18
+}
+ 8000a0c: bf00 nop
+ 8000a0e: 3708 adds r7, #8
+ 8000a10: 46bd mov sp, r7
+ 8000a12: bd80 pop {r7, pc}
+ 8000a14: 20000230 .word 0x20000230
+
+08000a18 :
+ * STEP_MODE_1_4 : 1/4 step
+ * STEP_MODE_1_8 : 1/8 step
+ * STEP_MODE_1_16 : 1/16 step
+ **********************************************************/
+void L6208_GoTo(uint8_t deviceId, int32_t abs_pos)
+{
+ 8000a18: b580 push {r7, lr}
+ 8000a1a: b084 sub sp, #16
+ 8000a1c: af00 add r7, sp, #0
+ 8000a1e: 4603 mov r3, r0
+ 8000a20: 6039 str r1, [r7, #0]
+ 8000a22: 71fb strb r3, [r7, #7]
+ uint32_t steps = 0;
+ 8000a24: 2300 movs r3, #0
+ 8000a26: 60fb str r3, [r7, #12]
+
+ if(L6208_IsSysFlag(running))
+ 8000a28: 2008 movs r0, #8
+ 8000a2a: f000 ffa1 bl 8001970
+ 8000a2e: 4603 mov r3, r0
+ 8000a30: 2b00 cmp r3, #0
+ 8000a32: d002 beq.n 8000a3a
+ {
+ L6208_HardStop(0);
+ 8000a34: 2000 movs r0, #0
+ 8000a36: f000 f89b bl 8000b70
+ }
+
+ if (abs_pos > devicePrm.absolutePos)
+ 8000a3a: 4b1b ldr r3, [pc, #108] ; (8000aa8 )
+ 8000a3c: 69db ldr r3, [r3, #28]
+ 8000a3e: 683a ldr r2, [r7, #0]
+ 8000a40: 429a cmp r2, r3
+ 8000a42: dd16 ble.n 8000a72
+ {
+ steps = abs_pos - devicePrm.absolutePos;
+ 8000a44: 4b18 ldr r3, [pc, #96] ; (8000aa8 )
+ 8000a46: 69db ldr r3, [r3, #28]
+ 8000a48: 683a ldr r2, [r7, #0]
+ 8000a4a: 1ad3 subs r3, r2, r3
+ 8000a4c: 60fb str r3, [r7, #12]
+ if (steps < (L6208_POSITION_RANGE>>1))
+ 8000a4e: 68fb ldr r3, [r7, #12]
+ 8000a50: 4a16 ldr r2, [pc, #88] ; (8000aac )
+ 8000a52: 4293 cmp r3, r2
+ 8000a54: d805 bhi.n 8000a62
+ {
+ L6208_Move(0, FORWARD, steps);
+ 8000a56: 68fa ldr r2, [r7, #12]
+ 8000a58: 2101 movs r1, #1
+ 8000a5a: 2000 movs r0, #0
+ 8000a5c: f000 f8a2 bl 8000ba4
+ else
+ {
+ L6208_Move(0, FORWARD, (L6208_POSITION_RANGE - steps));
+ }
+}
+}
+ 8000a60: e01d b.n 8000a9e
+ L6208_Move(0, BACKWARD, (L6208_POSITION_RANGE - steps));
+ 8000a62: 68fb ldr r3, [r7, #12]
+ 8000a64: 43db mvns r3, r3
+ 8000a66: 461a mov r2, r3
+ 8000a68: 2100 movs r1, #0
+ 8000a6a: 2000 movs r0, #0
+ 8000a6c: f000 f89a bl 8000ba4
+}
+ 8000a70: e015 b.n 8000a9e
+ steps = devicePrm.absolutePos - abs_pos;
+ 8000a72: 4b0d ldr r3, [pc, #52] ; (8000aa8 )
+ 8000a74: 69da ldr r2, [r3, #28]
+ 8000a76: 683b ldr r3, [r7, #0]
+ 8000a78: 1ad3 subs r3, r2, r3
+ 8000a7a: 60fb str r3, [r7, #12]
+ if (steps < (L6208_POSITION_RANGE>>1))
+ 8000a7c: 68fb ldr r3, [r7, #12]
+ 8000a7e: 4a0b ldr r2, [pc, #44] ; (8000aac )
+ 8000a80: 4293 cmp r3, r2
+ 8000a82: d805 bhi.n 8000a90
+ L6208_Move(0, BACKWARD, steps);
+ 8000a84: 68fa ldr r2, [r7, #12]
+ 8000a86: 2100 movs r1, #0
+ 8000a88: 2000 movs r0, #0
+ 8000a8a: f000 f88b bl 8000ba4
+}
+ 8000a8e: e006 b.n 8000a9e
+ L6208_Move(0, FORWARD, (L6208_POSITION_RANGE - steps));
+ 8000a90: 68fb ldr r3, [r7, #12]
+ 8000a92: 43db mvns r3, r3
+ 8000a94: 461a mov r2, r3
+ 8000a96: 2101 movs r1, #1
+ 8000a98: 2000 movs r0, #0
+ 8000a9a: f000 f883 bl 8000ba4
+}
+ 8000a9e: bf00 nop
+ 8000aa0: 3710 adds r7, #16
+ 8000aa2: 46bd mov sp, r7
+ 8000aa4: bd80 pop {r7, pc}
+ 8000aa6: bf00 nop
+ 8000aa8: 20000230 .word 0x20000230
+ 8000aac: 7ffffffe .word 0x7ffffffe
+
+08000ab0 :
+ * STEP_MODE_1_4 : 1/4 step
+ * STEP_MODE_1_8 : 1/8 step
+ * STEP_MODE_1_16 : 1/16 step
+ **********************************************************/
+void L6208_GoToDir(uint8_t deviceId, motorDir_t direction, int32_t abs_pos)
+{
+ 8000ab0: b580 push {r7, lr}
+ 8000ab2: b084 sub sp, #16
+ 8000ab4: af00 add r7, sp, #0
+ 8000ab6: 4603 mov r3, r0
+ 8000ab8: 603a str r2, [r7, #0]
+ 8000aba: 71fb strb r3, [r7, #7]
+ 8000abc: 460b mov r3, r1
+ 8000abe: 71bb strb r3, [r7, #6]
+ uint32_t steps = 0;
+ 8000ac0: 2300 movs r3, #0
+ 8000ac2: 60fb str r3, [r7, #12]
+
+ if(L6208_IsSysFlag(running))
+ 8000ac4: 2008 movs r0, #8
+ 8000ac6: f000 ff53 bl 8001970
+ 8000aca: 4603 mov r3, r0
+ 8000acc: 2b00 cmp r3, #0
+ 8000ace: d002 beq.n 8000ad6
+ {
+ L6208_HardStop(0);
+ 8000ad0: 2000 movs r0, #0
+ 8000ad2: f000 f84d bl 8000b70
+ }
+
+ if (direction != BACKWARD)
+ 8000ad6: 79bb ldrb r3, [r7, #6]
+ 8000ad8: 2b00 cmp r3, #0
+ 8000ada: d011 beq.n 8000b00
+ {
+ if (abs_pos > devicePrm.absolutePos)
+ 8000adc: 4b16 ldr r3, [pc, #88] ; (8000b38 )
+ 8000ade: 69db ldr r3, [r3, #28]
+ 8000ae0: 683a ldr r2, [r7, #0]
+ 8000ae2: 429a cmp r2, r3
+ 8000ae4: dd05 ble.n 8000af2
+ {
+ steps = abs_pos - devicePrm.absolutePos;
+ 8000ae6: 4b14 ldr r3, [pc, #80] ; (8000b38 )
+ 8000ae8: 69db ldr r3, [r3, #28]
+ 8000aea: 683a ldr r2, [r7, #0]
+ 8000aec: 1ad3 subs r3, r2, r3
+ 8000aee: 60fb str r3, [r7, #12]
+ 8000af0: e017 b.n 8000b22
+ }
+ else
+ {
+ steps = L6208_POSITION_RANGE + (abs_pos - devicePrm.absolutePos);
+ 8000af2: 4b11 ldr r3, [pc, #68] ; (8000b38 )
+ 8000af4: 69db ldr r3, [r3, #28]
+ 8000af6: 683a ldr r2, [r7, #0]
+ 8000af8: 1ad3 subs r3, r2, r3
+ 8000afa: 3b01 subs r3, #1
+ 8000afc: 60fb str r3, [r7, #12]
+ 8000afe: e010 b.n 8000b22
+ }
+}
+ else
+{
+ if (abs_pos > devicePrm.absolutePos)
+ 8000b00: 4b0d ldr r3, [pc, #52] ; (8000b38 )
+ 8000b02: 69db ldr r3, [r3, #28]
+ 8000b04: 683a ldr r2, [r7, #0]
+ 8000b06: 429a cmp r2, r3
+ 8000b08: dd06 ble.n 8000b18
+ {
+ steps = L6208_POSITION_RANGE + (devicePrm.absolutePos - abs_pos);
+ 8000b0a: 4b0b ldr r3, [pc, #44] ; (8000b38 )
+ 8000b0c: 69da ldr r2, [r3, #28]
+ 8000b0e: 683b ldr r3, [r7, #0]
+ 8000b10: 1ad3 subs r3, r2, r3
+ 8000b12: 3b01 subs r3, #1
+ 8000b14: 60fb str r3, [r7, #12]
+ 8000b16: e004 b.n 8000b22
+}
+ else
+{
+ steps = devicePrm.absolutePos - abs_pos;
+ 8000b18: 4b07 ldr r3, [pc, #28] ; (8000b38 )
+ 8000b1a: 69da ldr r2, [r3, #28]
+ 8000b1c: 683b ldr r3, [r7, #0]
+ 8000b1e: 1ad3 subs r3, r2, r3
+ 8000b20: 60fb str r3, [r7, #12]
+ }
+ }
+ L6208_Move(0, direction, steps);
+ 8000b22: 79bb ldrb r3, [r7, #6]
+ 8000b24: 68fa ldr r2, [r7, #12]
+ 8000b26: 4619 mov r1, r3
+ 8000b28: 2000 movs r0, #0
+ 8000b2a: f000 f83b bl 8000ba4
+}
+ 8000b2e: bf00 nop
+ 8000b30: 3710 adds r7, #16
+ 8000b32: 46bd mov sp, r7
+ 8000b34: bd80 pop {r7, pc}
+ 8000b36: bf00 nop
+ 8000b38: 20000230 .word 0x20000230
+
+08000b3c :
+ * @brief Immediately stop the motor and disables the power bridges
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @retval None
+ **********************************************************/
+void L6208_HardHiZ(uint8_t deviceId)
+{
+ 8000b3c: b580 push {r7, lr}
+ 8000b3e: b082 sub sp, #8
+ 8000b40: af00 add r7, sp, #0
+ 8000b42: 4603 mov r3, r0
+ 8000b44: 71fb strb r3, [r7, #7]
+ /* Disables power stage */
+ L6208_Disable(0);
+ 8000b46: 2000 movs r0, #0
+ 8000b48: f7ff fda0 bl 800068c
+
+ /* Sets inactive state */
+ L6208_SetMotionState(INACTIVE);
+ 8000b4c: 2008 movs r0, #8
+ 8000b4e: f001 f865 bl 8001c1c
+
+ /* Clears the running motor and the position */
+ L6208_ClearSysFlag(running);
+ 8000b52: 2008 movs r0, #8
+ 8000b54: f000 fd84 bl 8001660
+
+ /* Disables PWMs */
+ L6208_Board_VrefPwmStop(BRIDGE_A);
+ 8000b58: 2000 movs r0, #0
+ 8000b5a: f002 f813 bl 8002b84
+ L6208_Board_VrefPwmStop(BRIDGE_B);
+ 8000b5e: 2001 movs r0, #1
+ 8000b60: f002 f810 bl 8002b84
+
+ /* Disables tick timer */
+ L6208_Board_TickStop();
+ 8000b64: f001 fedc bl 8002920
+}
+ 8000b68: bf00 nop
+ 8000b6a: 3708 adds r7, #8
+ 8000b6c: 46bd mov sp, r7
+ 8000b6e: bd80 pop {r7, pc}
+
+08000b70 :
+ * @brief Immediately stop the motor and keeps holding torque
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @retval None
+ **********************************************************/
+void L6208_HardStop(uint8_t deviceId)
+{
+ 8000b70: b580 push {r7, lr}
+ 8000b72: b082 sub sp, #8
+ 8000b74: af00 add r7, sp, #0
+ 8000b76: 4603 mov r3, r0
+ 8000b78: 71fb strb r3, [r7, #7]
+ /* Sets inactive state */
+ L6208_SetMotionState(INACTIVE);
+ 8000b7a: 2008 movs r0, #8
+ 8000b7c: f001 f84e bl 8001c1c
+
+ /* Clears the running motor and the position */
+ L6208_ClearSysFlag(running);
+ 8000b80: 2008 movs r0, #8
+ 8000b82: f000 fd6d bl 8001660
+ L6208_VectorCalc(devicePrm.holdTorque);
+ 8000b86: 4b06 ldr r3, [pc, #24] ; (8000ba0 )
+ 8000b88: f893 3040 ldrb.w r3, [r3, #64] ; 0x40
+ 8000b8c: b2db uxtb r3, r3
+ 8000b8e: 4618 mov r0, r3
+ 8000b90: f001 f970 bl 8001e74
+
+ /* Disables tick timer */
+ L6208_Board_TickStop();
+ 8000b94: f001 fec4 bl 8002920
+}
+ 8000b98: bf00 nop
+ 8000b9a: 3708 adds r7, #8
+ 8000b9c: 46bd mov sp, r7
+ 8000b9e: bd80 pop {r7, pc}
+ 8000ba0: 20000230 .word 0x20000230
+
+08000ba4 :
+ * STEP_MODE_1_4 : 1/4 step
+ * STEP_MODE_1_8 : 1/8 step
+ * STEP_MODE_1_16 : 1/16 step
+ **********************************************************/
+void L6208_Move(uint8_t deviceId, motorDir_t direction, uint32_t stepCount)
+{
+ 8000ba4: b580 push {r7, lr}
+ 8000ba6: b082 sub sp, #8
+ 8000ba8: af00 add r7, sp, #0
+ 8000baa: 4603 mov r3, r0
+ 8000bac: 603a str r2, [r7, #0]
+ 8000bae: 71fb strb r3, [r7, #7]
+ 8000bb0: 460b mov r3, r1
+ 8000bb2: 71bb strb r3, [r7, #6]
+ if(L6208_IsSysFlag(running))
+ 8000bb4: 2008 movs r0, #8
+ 8000bb6: f000 fedb bl 8001970
+ 8000bba: 4603 mov r3, r0
+ 8000bbc: 2b00 cmp r3, #0
+ 8000bbe: d002 beq.n 8000bc6
+ {
+ L6208_HardStop(0);
+ 8000bc0: 2000 movs r0, #0
+ 8000bc2: f7ff ffd5 bl 8000b70
+ }
+
+ /* clear the velocity driving mode flag */
+ L6208_ClearSysFlag(velocitymode);
+ 8000bc6: 2010 movs r0, #16
+ 8000bc8: f000 fd4a bl 8001660
+
+ /* Set the indexing driving mode flag */
+ /* and the user command executing flag */
+ L6208_SetSysFlag(positionmode);
+ 8000bcc: 2020 movs r0, #32
+ 8000bce: f001 f883 bl 8001cd8
+
+ /* store relative number of steps to move */
+ devicePrm.positionTarget = stepCount;
+ 8000bd2: 4a07 ldr r2, [pc, #28] ; (8000bf0 )
+ 8000bd4: 683b ldr r3, [r7, #0]
+ 8000bd6: 6193 str r3, [r2, #24]
+
+ L6208_SetDirection(0, direction);
+ 8000bd8: 79bb ldrb r3, [r7, #6]
+ 8000bda: 4619 mov r1, r3
+ 8000bdc: 2000 movs r0, #0
+ 8000bde: f000 f8b7 bl 8000d50
+
+ /* Motor activation */
+ L6208_StartMovement();
+ 8000be2: f001 f88b bl 8001cfc
+}
+ 8000be6: bf00 nop
+ 8000be8: 3708 adds r7, #8
+ 8000bea: 46bd mov sp, r7
+ 8000bec: bd80 pop {r7, pc}
+ 8000bee: bf00 nop
+ 8000bf0: 20000230 .word 0x20000230
+
+08000bf4 :
+ * @brief Release the L6208 reset (Reset pin set to high level)
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @retval None
+ **********************************************************/
+void L6208_ReleaseReset(uint8_t deviceId)
+ {
+ 8000bf4: b580 push {r7, lr}
+ 8000bf6: b082 sub sp, #8
+ 8000bf8: af00 add r7, sp, #0
+ 8000bfa: 4603 mov r3, r0
+ 8000bfc: 71fb strb r3, [r7, #7]
+ L6208_Board_ReleaseReset();
+ 8000bfe: f001 fff3 bl 8002be8
+}
+ 8000c02: bf00 nop
+ 8000c04: 3708 adds r7, #8
+ 8000c06: 46bd mov sp, r7
+ 8000c08: bd80 pop {r7, pc}
+
+08000c0a :
+ * @brief Reset the L6208 (Reset pin set to low level)
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @retval None
+ **********************************************************/
+void L6208_Reset(uint8_t deviceId)
+ {
+ 8000c0a: b580 push {r7, lr}
+ 8000c0c: b082 sub sp, #8
+ 8000c0e: af00 add r7, sp, #0
+ 8000c10: 4603 mov r3, r0
+ 8000c12: 71fb strb r3, [r7, #7]
+ L6208_Board_Reset();
+ 8000c14: f001 fff4 bl 8002c00
+ }
+ 8000c18: bf00 nop
+ 8000c1a: 3708 adds r7, #8
+ 8000c1c: 46bd mov sp, r7
+ 8000c1e: bd80 pop {r7, pc}
+
+08000c20 :
+ * @brief Reset the device with current step mode, resets current speed,
+ * positions and microstep variables.
+ * @retval None
+ **********************************************************/
+void L6208_ResetDevice(void)
+ {
+ 8000c20: b580 push {r7, lr}
+ 8000c22: af00 add r7, sp, #0
+ L6208_SetStepMode(0, L6208_GetStepMode(0));
+ 8000c24: 2000 movs r0, #0
+ 8000c26: f7ff fe75 bl 8000914
+ 8000c2a: 4603 mov r3, r0
+ 8000c2c: 4619 mov r1, r3
+ 8000c2e: 2000 movs r0, #0
+ 8000c30: f000 f982 bl 8000f38
+}
+ 8000c34: bf00 nop
+ 8000c36: bd80 pop {r7, pc}
+
+08000c38 :
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @param[in] direction FORWARD or BACKWARD
+ * @retval None
+ **********************************************************/
+void L6208_Run(uint8_t deviceId, motorDir_t direction)
+{
+ 8000c38: b580 push {r7, lr}
+ 8000c3a: b082 sub sp, #8
+ 8000c3c: af00 add r7, sp, #0
+ 8000c3e: 4603 mov r3, r0
+ 8000c40: 460a mov r2, r1
+ 8000c42: 71fb strb r3, [r7, #7]
+ 8000c44: 4613 mov r3, r2
+ 8000c46: 71bb strb r3, [r7, #6]
+ if(L6208_IsSysFlag(running))
+ 8000c48: 2008 movs r0, #8
+ 8000c4a: f000 fe91 bl 8001970
+ 8000c4e: 4603 mov r3, r0
+ 8000c50: 2b00 cmp r3, #0
+ 8000c52: d002 beq.n 8000c5a
+ {
+ L6208_HardStop(0);
+ 8000c54: 2000 movs r0, #0
+ 8000c56: f7ff ff8b bl 8000b70
+ }
+ L6208_SetDirection(0, direction);
+ 8000c5a: 79bb ldrb r3, [r7, #6]
+ 8000c5c: 4619 mov r1, r3
+ 8000c5e: 2000 movs r0, #0
+ 8000c60: f000 f876 bl 8000d50
+ /* Clear the indexing driving mode flag */
+ L6208_ClearSysFlag(positionmode);
+ 8000c64: 2020 movs r0, #32
+ 8000c66: f000 fcfb bl 8001660
+ /* Set the velocity driving mode flag */
+ L6208_SetSysFlag(velocitymode);
+ 8000c6a: 2010 movs r0, #16
+ 8000c6c: f001 f834 bl 8001cd8
+ /* Motor activation */
+ L6208_StartMovement();
+ 8000c70: f001 f844 bl 8001cfc
+}
+ 8000c74: bf00 nop
+ 8000c76: 3708 adds r7, #8
+ 8000c78: 46bd mov sp, r7
+ 8000c7a: bd80 pop {r7, pc}
+
+08000c7c :
+ * @param[in] newAcc new acceleration rate in step/s^2 or microstep/s^2
+ * @retval TRUE
+ * @note
+ **********************************************************/
+bool L6208_SetAcceleration(uint8_t deviceId, uint16_t newAcc)
+{
+ 8000c7c: b580 push {r7, lr}
+ 8000c7e: b084 sub sp, #16
+ 8000c80: af00 add r7, sp, #0
+ 8000c82: 4603 mov r3, r0
+ 8000c84: 460a mov r2, r1
+ 8000c86: 71fb strb r3, [r7, #7]
+ 8000c88: 4613 mov r3, r2
+ 8000c8a: 80bb strh r3, [r7, #4]
+ uint16_t newAccSpt2 = L6208_ConvertAcceDecelRateValue(newAcc);
+ 8000c8c: 88bb ldrh r3, [r7, #4]
+ 8000c8e: 4618 mov r0, r3
+ 8000c90: f000 fd5a bl 8001748
+ 8000c94: 4603 mov r3, r0
+ 8000c96: 81fb strh r3, [r7, #14]
+ if (newAccSpt2)
+ 8000c98: 89fb ldrh r3, [r7, #14]
+ 8000c9a: 2b00 cmp r3, #0
+ 8000c9c: d008 beq.n 8000cb0
+ {
+ devicePrm.accelerationSps2 = newAcc;
+ 8000c9e: 4a09 ldr r2, [pc, #36] ; (8000cc4 )
+ 8000ca0: 88bb ldrh r3, [r7, #4]
+ 8000ca2: f8a2 3042 strh.w r3, [r2, #66] ; 0x42
+ devicePrm.accelerationSpt2 = newAccSpt2;
+ 8000ca6: 4a07 ldr r2, [pc, #28] ; (8000cc4 )
+ 8000ca8: 89fb ldrh r3, [r7, #14]
+ 8000caa: f8a2 3046 strh.w r3, [r2, #70] ; 0x46
+ 8000cae: e003 b.n 8000cb8
+ }
+ else
+ {
+ L6208_ErrorHandler(L6208_ERROR_SET_ACCELERATION);
+ 8000cb0: f249 0003 movw r0, #36867 ; 0x9003
+ 8000cb4: f7ff fcf8 bl 80006a8
+ }
+ return TRUE;
+ 8000cb8: 2301 movs r3, #1
+}
+ 8000cba: 4618 mov r0, r3
+ 8000cbc: 3710 adds r7, #16
+ 8000cbe: 46bd mov sp, r7
+ 8000cc0: bd80 pop {r7, pc}
+ 8000cc2: bf00 nop
+ 8000cc4: 20000230 .word 0x20000230
+
+08000cc8 :
+ * @param[in] deviceId dummy parameter for compatibility with motor.h
+ * @param[in] decayMode (SLOW_DECAY or FAST_DECAY)
+ * @retval None
+ **********************************************************/
+void L6208_SetDecayMode(uint8_t deviceId, motorDecayMode_t decayMode)
+{
+ 8000cc8: b580 push {r7, lr}
+ 8000cca: b082 sub sp, #8
+ 8000ccc: af00 add r7, sp, #0
+ 8000cce: 4603 mov r3, r0
+ 8000cd0: 460a mov r2, r1
+ 8000cd2: 71fb strb r3, [r7, #7]
+ 8000cd4: 4613 mov r3, r2
+ 8000cd6: 71bb strb r3, [r7, #6]
+ if ((decayMode & L6208_FAST_DECAY_MODE_MASK) == L6208_FAST_DECAY_MODE_MASK)
+ 8000cd8: 79bb ldrb r3, [r7, #6]
+ 8000cda: f003 0301 and.w r3, r3, #1
+ 8000cde: 2b00 cmp r3, #0
+ 8000ce0: d006 beq.n 8000cf0
+ {
+ L6208_Board_CONTROL_PIN_Set();
+ 8000ce2: f001 ff99 bl 8002c18
+ L6208_SetSysFlag(fastdecaymode);
+ 8000ce6: f44f 6000 mov.w r0, #2048 ; 0x800
+ 8000cea: f000 fff5 bl 8001cd8
+ else
+ {
+ L6208_Board_CONTROL_PIN_Reset();
+ L6208_ClearSysFlag(fastdecaymode);
+ }
+}
+ 8000cee: e005 b.n 8000cfc
+ L6208_Board_CONTROL_PIN_Reset();
+ 8000cf0: f001 ff9e bl 8002c30
+ L6208_ClearSysFlag(fastdecaymode);
+ 8000cf4: f44f 6000 mov.w r0, #2048 ; 0x800
+ 8000cf8: f000 fcb2 bl 8001660
+}
+ 8000cfc: bf00 nop
+ 8000cfe: 3708 adds r7, #8
+ 8000d00: 46bd mov sp, r7
+ 8000d02: bd80 pop {r7, pc}
+
+08000d04 :
+ * @param[in] newDec new deceleration rate in step/s^2 or microstep/s^2
+ * @retval TRUE
+ * @note
+ **********************************************************/
+bool L6208_SetDeceleration(uint8_t deviceId, uint16_t newDec)
+{
+ 8000d04: b580 push {r7, lr}
+ 8000d06: b084 sub sp, #16
+ 8000d08: af00 add r7, sp, #0
+ 8000d0a: 4603 mov r3, r0
+ 8000d0c: 460a mov r2, r1
+ 8000d0e: 71fb strb r3, [r7, #7]
+ 8000d10: 4613 mov r3, r2
+ 8000d12: 80bb strh r3, [r7, #4]
+ uint16_t newDecSpt2 = L6208_ConvertAcceDecelRateValue(newDec);
+ 8000d14: 88bb ldrh r3, [r7, #4]
+ 8000d16: 4618 mov r0, r3
+ 8000d18: f000 fd16 bl 8001748
+ 8000d1c: 4603 mov r3, r0
+ 8000d1e: 81fb strh r3, [r7, #14]
+ if (newDecSpt2)
+ 8000d20: 89fb ldrh r3, [r7, #14]
+ 8000d22: 2b00 cmp r3, #0
+ 8000d24: d008 beq.n 8000d38
+ {
+ devicePrm.decelerationSps2 = newDec;
+ 8000d26: 4a09 ldr r2, [pc, #36] ; (8000d4c )
+ 8000d28: 88bb ldrh r3, [r7, #4]
+ 8000d2a: f8a2 3044 strh.w r3, [r2, #68] ; 0x44
+ devicePrm.decelerationSpt2 = newDecSpt2;
+ 8000d2e: 4a07 ldr r2, [pc, #28] ; (8000d4c )
+ 8000d30: 89fb ldrh r3, [r7, #14]
+ 8000d32: f8a2 3048 strh.w r3, [r2, #72] ; 0x48
+ 8000d36: e003 b.n 8000d40
+ }
+ else
+ {
+ L6208_ErrorHandler(L6208_ERROR_SET_DECELERATION);
+ 8000d38: f249 0004 movw r0, #36868 ; 0x9004
+ 8000d3c: f7ff fcb4 bl 80006a8
+ }
+ return TRUE;
+ 8000d40: 2301 movs r3, #1
+}
+ 8000d42: 4618 mov r0, r3
+ 8000d44: 3710 adds r7, #16
+ 8000d46: 46bd mov sp, r7
+ 8000d48: bd80 pop {r7, pc}
+ 8000d4a: bf00 nop
+ 8000d4c: 20000230 .word 0x20000230
+
+08000d50 :
+ * then run in the new direction. In position mode, if the device is
+ * running, a direction change will generate an error.
+ * @retval None
+ **********************************************************/
+void L6208_SetDirection(uint8_t deviceId, motorDir_t dir)
+{
+ 8000d50: b580 push {r7, lr}
+ 8000d52: b082 sub sp, #8
+ 8000d54: af00 add r7, sp, #0
+ 8000d56: 4603 mov r3, r0
+ 8000d58: 460a mov r2, r1
+ 8000d5a: 71fb strb r3, [r7, #7]
+ 8000d5c: 4613 mov r3, r2
+ 8000d5e: 71bb strb r3, [r7, #6]
+ L6208_ClearSysFlag(dir2change);
+ 8000d60: f44f 6080 mov.w r0, #1024 ; 0x400
+ 8000d64: f000 fc7c bl 8001660
+ if (dir == FORWARD)
+ 8000d68: 79bb ldrb r3, [r7, #6]
+ 8000d6a: 2b01 cmp r3, #1
+ 8000d6c: d123 bne.n 8000db6
+ {
+ if (!L6208_IsSysFlag(forward))
+ 8000d6e: f44f 7000 mov.w r0, #512 ; 0x200
+ 8000d72: f000 fdfd bl 8001970
+ 8000d76: 4603 mov r3, r0
+ 8000d78: 2b00 cmp r3, #0
+ 8000d7a: d13f bne.n 8000dfc
+ {
+ if (L6208_IsSysFlag(running))
+ 8000d7c: 2008 movs r0, #8
+ 8000d7e: f000 fdf7 bl 8001970
+ 8000d82: 4603 mov r3, r0
+ 8000d84: 2b00 cmp r3, #0
+ 8000d86: d00f beq.n 8000da8
+ {
+ /* motor is running */
+ if (L6208_IsSysFlag(positionmode))
+ 8000d88: 2020 movs r0, #32
+ 8000d8a: f000 fdf1 bl 8001970
+ 8000d8e: 4603 mov r3, r0
+ 8000d90: 2b00 cmp r3, #0
+ 8000d92: d004 beq.n 8000d9e
+ {
+ L6208_ErrorHandler(L6208_ERROR_SET_DIRECTION);
+ 8000d94: f249 000a movw r0, #36874 ; 0x900a
+ 8000d98: f7ff fc86 bl 80006a8
+ 8000d9c: e02e b.n 8000dfc
+ }
+ else
+ {
+ /* set the rotation direction to change flag */
+ L6208_SetSysFlag(dir2change);
+ 8000d9e: f44f 6080 mov.w r0, #1024 ; 0x400
+ 8000da2: f000 ff99 bl 8001cd8
+ 8000da6: e029 b.n 8000dfc
+ }
+ }
+ else /* the motor is stopped, cw direction selected */
+ {
+ L6208_SetSysFlag(forward);
+ 8000da8: f44f 7000 mov.w r0, #512 ; 0x200
+ 8000dac: f000 ff94 bl 8001cd8
+ L6208_Board_DIR_PIN_Set();
+ 8000db0: f001 ff7a bl 8002ca8
+ 8000db4: e022 b.n 8000dfc
+ }
+ }
+ }
+ else
+ {
+ if (L6208_IsSysFlag(forward))
+ 8000db6: f44f 7000 mov.w r0, #512 ; 0x200
+ 8000dba: f000 fdd9 bl 8001970
+ 8000dbe: 4603 mov r3, r0
+ 8000dc0: 2b00 cmp r3, #0
+ 8000dc2: d01b beq.n 8000dfc
+ {
+ if (L6208_IsSysFlag(running))
+ 8000dc4: 2008 movs r0, #8
+ 8000dc6: f000 fdd3 bl 8001970
+ 8000dca: 4603 mov r3, r0
+ 8000dcc: 2b00 cmp r3, #0
+ 8000dce: d00f beq.n 8000df0
+ {
+ /* motor is running */
+ if (L6208_IsSysFlag(positionmode))
+ 8000dd0: 2020 movs r0, #32
+ 8000dd2: f000 fdcd bl 8001970
+ 8000dd6: 4603 mov r3, r0
+ 8000dd8: 2b00 cmp r3, #0
+ 8000dda: d004 beq.n 8000de6
+ {
+ L6208_ErrorHandler(L6208_ERROR_SET_DIRECTION);
+ 8000ddc: f249 000a movw r0, #36874 ; 0x900a
+ 8000de0: f7ff fc62 bl 80006a8