Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Split out & fix STM401, STM4xx & STM32F7xx timers - also fix STEVAL_3DP001V1 compil warning #16621

Merged
merged 3 commits into from
Jan 21, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 29 additions & 5 deletions Marlin/src/HAL/HAL_STM32/timers.h
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand All @@ -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
Expand All @@ -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
Expand Down
2 changes: 0 additions & 2 deletions Marlin/src/pins/stm32/pins_STEVAL_3DP001V1.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,6 @@
#define MACHINE_NAME "STEVAL-3DP001V1"
#endif

#define TIMER_TONE 5

//
// Limit Switches
//
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 */
/*
Expand Down