From 1a5cbc9052dd44902508ef092634c2080ebea851 Mon Sep 17 00:00:00 2001 From: Bob Kuhn Date: Mon, 20 Jan 2020 18:33:36 -0600 Subject: [PATCH] Fix STM401/4xx/STM32F7xx timers, STEVAL_3DP001V1 warning (#16621) --- Marlin/src/HAL/HAL_STM32/timers.h | 34 ++++++++++++++++--- Marlin/src/pins/stm32/pins_STEVAL_3DP001V1.h | 2 -- .../variants/STEVAL_F401VE/variant.h | 1 + 3 files changed, 30 insertions(+), 7 deletions(-) diff --git a/Marlin/src/HAL/HAL_STM32/timers.h b/Marlin/src/HAL/HAL_STM32/timers.h index 7d028e6079..aa85836bd5 100644 --- a/Marlin/src/HAL/HAL_STM32/timers.h +++ b/Marlin/src/HAL/HAL_STM32/timers.h @@ -57,9 +57,9 @@ #define TEMP_TIMER 2 #endif -#elif defined(STM32F4xx) || defined(STM32F7xx) +#elif defined(STM32F401xC) || defined(STM32F401xE) - #define HAL_TIMER_RATE (F_CPU/2) // frequency of timer peripherals + #define HAL_TIMER_RATE (F_CPU / 2) // frequency of timer peripherals // STM32F401 only has timers 1-5 & 9-11 with timers 4 & 5 usually assigned to TIMER_SERVO and TIMER_TONE @@ -71,6 +71,30 @@ #define TEMP_TIMER 10 #endif +#elif defined(STM32F4xx) + + #define HAL_TIMER_RATE (F_CPU / 2) // frequency of timer peripherals + + #ifndef STEP_TIMER + #define STEP_TIMER 6 + #endif + + #ifndef TEMP_TIMER + #define TEMP_TIMER 14 + #endif + +#elif defined(STM32F7xx) + + #define HAL_TIMER_RATE (F_CPU/2) // frequency of timer peripherals + + #ifndef STEP_TIMER + #define STEP_TIMER 6 + #endif + + #ifndef TEMP_TIMER + #define TEMP_TIMER 14 + #endif + #endif #ifndef SWSERIAL_TIMER_IRQ_PRIO @@ -82,16 +106,16 @@ #endif #ifndef TEMP_TIMER_IRQ_PRIO - #define TEMP_TIMER_IRQ_PRIO 14 //14 = after hardware ISRs + #define TEMP_TIMER_IRQ_PRIO 14 // 14 = after hardware ISRs #endif #define STEP_TIMER_NUM 0 // index of timer to use for stepper #define TEMP_TIMER_NUM 1 // index of timer to use for temperature #define PULSE_TIMER_NUM STEP_TIMER_NUM -#define TEMP_TIMER_FREQUENCY 1000 //Temperature::isr() is expected to be called at around 1kHz +#define TEMP_TIMER_FREQUENCY 1000 // Temperature::isr() is expected to be called at around 1kHz -//TODO: get rid of manual rate/prescale/ticks/cycles taken for procedures in stepper.cpp +// TODO: get rid of manual rate/prescale/ticks/cycles taken for procedures in stepper.cpp #define STEPPER_TIMER_RATE 2000000 // 2 Mhz #define STEPPER_TIMER_PRESCALE ((HAL_TIMER_RATE)/(STEPPER_TIMER_RATE)) #define STEPPER_TIMER_TICKS_PER_US ((STEPPER_TIMER_RATE) / 1000000) // stepper timer ticks per µs diff --git a/Marlin/src/pins/stm32/pins_STEVAL_3DP001V1.h b/Marlin/src/pins/stm32/pins_STEVAL_3DP001V1.h index 3ec5c4c0ec..02c1c66c5a 100644 --- a/Marlin/src/pins/stm32/pins_STEVAL_3DP001V1.h +++ b/Marlin/src/pins/stm32/pins_STEVAL_3DP001V1.h @@ -48,8 +48,6 @@ #define MACHINE_NAME "STEVAL-3DP001V1" #endif -#define TIMER_TONE 5 - // // Limit Switches // diff --git a/buildroot/share/PlatformIO/variants/STEVAL_F401VE/variant.h b/buildroot/share/PlatformIO/variants/STEVAL_F401VE/variant.h index bac86151bb..5cee7888b9 100644 --- a/buildroot/share/PlatformIO/variants/STEVAL_F401VE/variant.h +++ b/buildroot/share/PlatformIO/variants/STEVAL_F401VE/variant.h @@ -200,6 +200,7 @@ extern "C" { // Timer Definitions #define TIMER_SERVO TIM4 // TIMER_SERVO must be defined in this file +#define TIMER_TONE TIM5 // TIMER_TONE must be defined in this file /* SD detect signal */ /*