瀏覽代碼

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
 
137
 
138
 void HAL_timer_enable_interrupt(const uint8_t timer_num) {
138
 void HAL_timer_enable_interrupt(const uint8_t timer_num) {
139
   switch (timer_num) {
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
 void HAL_timer_disable_interrupt(const uint8_t timer_num) {
146
 void HAL_timer_disable_interrupt(const uint8_t timer_num) {
152
   switch (timer_num) {
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
 bool HAL_timer_interrupt_enabled(const uint8_t timer_num) {
158
 bool HAL_timer_interrupt_enabled(const uint8_t timer_num) {
165
   switch (timer_num) {
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
   return false;
163
   return false;
170
 }
164
 }

Loading…
取消
儲存