Преглед на файлове

Update STM32F1 timer code to use libmaple bb_perip

Scott Lahteine преди 7 години
родител
ревизия
a8638aa20d
променени са 1 файла, в които са добавени 12 реда и са изтрити 18 реда
  1. 12
    18
      Marlin/src/HAL/HAL_STM32F1/HAL_timers_Stm32f1.cpp

+ 12
- 18
Marlin/src/HAL/HAL_STM32F1/HAL_timers_Stm32f1.cpp Целия файл

@@ -137,34 +137,28 @@ void HAL_timer_start(const uint8_t timer_num, const uint32_t frequency) {
137 137
 
138 138
 void HAL_timer_enable_interrupt(const uint8_t timer_num) {
139 139
   switch (timer_num) {
140
-    case STEP_TIMER_NUM:
141
-      timer_enable_irq(STEP_TIMER_DEV, STEP_TIMER_CHAN);
142
-      break;
143
-    case TEMP_TIMER_NUM:
144
-      timer_enable_irq(TEMP_TIMER_DEV, TEMP_TIMER_CHAN);
145
-      break;
146
-    default:
147
-      break;
140
+    case STEP_TIMER_NUM: ENABLE_STEPPER_DRIVER_INTERRUPT(); break;
141
+    case TEMP_TIMER_NUM: ENABLE_TEMPERATURE_INTERRUPT(); break;
142
+    default: break;
148 143
   }
149 144
 }
150 145
 
151 146
 void HAL_timer_disable_interrupt(const uint8_t timer_num) {
152 147
   switch (timer_num) {
153
-    case STEP_TIMER_NUM:
154
-      timer_disable_irq(STEP_TIMER_DEV, STEP_TIMER_CHAN);
155
-      break;
156
-    case TEMP_TIMER_NUM:
157
-      timer_disable_irq(TEMP_TIMER_DEV, TEMP_TIMER_CHAN);
158
-      break;
159
-    default:
160
-      break;
148
+    case STEP_TIMER_NUM: DISABLE_STEPPER_DRIVER_INTERRUPT(); break;
149
+    case TEMP_TIMER_NUM: DISABLE_TEMPERATURE_INTERRUPT(); break;
150
+    default: break;
161 151
   }
162 152
 }
163 153
 
154
+static inline bool timer_irq_enabled(const timer_dev * const dev, const uint8 interrupt) {
155
+  return bool(*bb_perip(&(dev->regs).adv->DIER, interrupt));
156
+}
157
+
164 158
 bool HAL_timer_interrupt_enabled(const uint8_t timer_num) {
165 159
   switch (timer_num) {
166
-    case STEP_TIMER_NUM: return bool(TIM_DIER(STEP_TIMER_DEV) & STEP_TIMER_CHAN);
167
-    case TEMP_TIMER_NUM: return bool(TIM_DIER(TEMP_TIMER_DEV) & TEMP_TIMER_CHAN);
160
+    case STEP_TIMER_NUM: return timer_irq_enabled(STEP_TIMER_DEV, STEP_TIMER_CHAN);
161
+    case TEMP_TIMER_NUM: return timer_irq_enabled(TEMP_TIMER_DEV, TEMP_TIMER_CHAN);
168 162
   }
169 163
   return false;
170 164
 }

Loading…
Отказ
Запис