|
@@ -53,56 +53,40 @@ void HAL_timer_start(const uint8_t timer_num, const uint32_t frequency) {
|
53
|
53
|
switch (timer_num) {
|
54
|
54
|
case STEP_TIMER_NUM:
|
55
|
55
|
// STEPPER TIMER TIM5 - use a 32bit timer
|
56
|
|
- #ifdef STM32GENERIC
|
57
|
|
- __HAL_RCC_TIM5_CLK_ENABLE();
|
58
|
|
- TimerHandle[timer_num].handle.Instance = TIM5;
|
59
|
|
- TimerHandle[timer_num].handle.Init.Prescaler = step_prescaler;
|
60
|
|
- TimerHandle[timer_num].handle.Init.CounterMode = TIM_COUNTERMODE_UP;
|
61
|
|
- TimerHandle[timer_num].handle.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
|
62
|
|
- TimerHandle[timer_num].callback = (uint32_t)TC5_Handler;
|
63
|
|
- #else
|
64
|
|
- TimerHandle[timer_num].timer = TIM5;
|
65
|
|
- TimerHandle[timer_num].irqHandle = TC5_Handler;
|
66
|
|
- TimerHandleInit(&TimerHandle[timer_num], (((HAL_TIMER_RATE) / step_prescaler) / frequency) - 1, step_prescaler);
|
67
|
|
- #endif
|
|
56
|
+ __HAL_RCC_TIM5_CLK_ENABLE();
|
|
57
|
+ TimerHandle[timer_num].handle.Instance = TIM5;
|
|
58
|
+ TimerHandle[timer_num].handle.Init.Prescaler = step_prescaler;
|
|
59
|
+ TimerHandle[timer_num].handle.Init.CounterMode = TIM_COUNTERMODE_UP;
|
|
60
|
+ TimerHandle[timer_num].handle.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
|
|
61
|
+ TimerHandle[timer_num].callback = (uint32_t)TC5_Handler;
|
68
|
62
|
HAL_NVIC_SetPriority(STEP_TIMER_IRQ_ID, 1, 0);
|
69
|
63
|
break;
|
70
|
64
|
|
71
|
65
|
case TEMP_TIMER_NUM:
|
72
|
66
|
// TEMP TIMER TIM7 - any available 16bit Timer (1 already used for PWM)
|
73
|
|
- #ifdef STM32GENERIC
|
74
|
|
- __HAL_RCC_TIM7_CLK_ENABLE();
|
75
|
|
- TimerHandle[timer_num].handle.Instance = TIM7;
|
76
|
|
- TimerHandle[timer_num].handle.Init.Prescaler = temp_prescaler;
|
77
|
|
- TimerHandle[timer_num].handle.Init.CounterMode = TIM_COUNTERMODE_UP;
|
78
|
|
- TimerHandle[timer_num].handle.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
|
79
|
|
- TimerHandle[timer_num].callback = (uint32_t)TC7_Handler;
|
80
|
|
- #else
|
81
|
|
- TimerHandle[timer_num].timer = TIM7;
|
82
|
|
- TimerHandle[timer_num].irqHandle = TC7_Handler;
|
83
|
|
- TimerHandleInit(&TimerHandle[timer_num], (((HAL_TIMER_RATE) / temp_prescaler) / frequency) - 1, temp_prescaler);
|
84
|
|
- #endif
|
|
67
|
+ __HAL_RCC_TIM7_CLK_ENABLE();
|
|
68
|
+ TimerHandle[timer_num].handle.Instance = TIM7;
|
|
69
|
+ TimerHandle[timer_num].handle.Init.Prescaler = temp_prescaler;
|
|
70
|
+ TimerHandle[timer_num].handle.Init.CounterMode = TIM_COUNTERMODE_UP;
|
|
71
|
+ TimerHandle[timer_num].handle.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
|
|
72
|
+ TimerHandle[timer_num].callback = (uint32_t)TC7_Handler;
|
85
|
73
|
HAL_NVIC_SetPriority(TEMP_TIMER_IRQ_ID, 2, 0);
|
86
|
74
|
break;
|
87
|
75
|
}
|
88
|
76
|
timers_initialized[timer_num] = true;
|
89
|
77
|
}
|
90
|
78
|
|
91
|
|
- #ifdef STM32GENERIC
|
92
|
|
- TimerHandle[timer_num].handle.Init.Period = (((HAL_TIMER_RATE) / TimerHandle[timer_num].handle.Init.Prescaler) / frequency) - 1;
|
93
|
|
- if (HAL_TIM_Base_Init(&TimerHandle[timer_num].handle) == HAL_OK)
|
94
|
|
- HAL_TIM_Base_Start_IT(&TimerHandle[timer_num].handle);
|
95
|
|
- #endif
|
|
79
|
+ TimerHandle[timer_num].handle.Init.Period = (((HAL_TIMER_RATE) / TimerHandle[timer_num].handle.Init.Prescaler) / frequency) - 1;
|
|
80
|
+ if (HAL_TIM_Base_Init(&TimerHandle[timer_num].handle) == HAL_OK)
|
|
81
|
+ HAL_TIM_Base_Start_IT(&TimerHandle[timer_num].handle);
|
96
|
82
|
}
|
97
|
83
|
|
98
|
|
-#ifdef STM32GENERIC
|
99
|
|
- extern "C" void TIM5_IRQHandler() {
|
100
|
|
- ((void(*)(void))TimerHandle[0].callback)();
|
101
|
|
- }
|
102
|
|
- extern "C" void TIM7_IRQHandler() {
|
103
|
|
- ((void(*)(void))TimerHandle[1].callback)();
|
104
|
|
- }
|
105
|
|
-#endif
|
|
84
|
+extern "C" void TIM5_IRQHandler() {
|
|
85
|
+ ((void(*)(void))TimerHandle[0].callback)();
|
|
86
|
+}
|
|
87
|
+extern "C" void TIM7_IRQHandler() {
|
|
88
|
+ ((void(*)(void))TimerHandle[1].callback)();
|
|
89
|
+}
|
106
|
90
|
|
107
|
91
|
void HAL_timer_enable_interrupt(const uint8_t timer_num) {
|
108
|
92
|
switch (timer_num) {
|