Library that allows for higher resolution and speed than standard mbed PWM library using same syntax (drop-in replacement).

Dependencies:   RGBLed

Dependents:   Widgets

Revision:
16:ec208b5ec0bb
Parent:
15:49a7eff133b3
Child:
17:8378bc456f0d
diff -r 49a7eff133b3 -r ec208b5ec0bb Device/FastPWM_STM_TIM_PinOut.cpp
--- a/Device/FastPWM_STM_TIM_PinOut.cpp	Wed Oct 01 18:20:41 2014 +0000
+++ b/Device/FastPWM_STM_TIM_PinOut.cpp	Thu Oct 02 08:09:52 2014 +0000
@@ -26,22 +26,45 @@
 #if defined TARGET_NUCLEO_F401RE || defined TARGET_NUCLEO_F411RE
 __IO uint32_t* getChannel(TIM_TypeDef* pwm, PinName pin) {
     switch (pin) {
-        // Channels 1
+        // Channels 1 : PWMx/1
         case PA_0: case PA_5: case PA_6: case PA_8: case PA_15: case PB_4: case PB_6: case PC_6: case PA_7: case PB_13:
             return &pwm->CCR1;
         
-        // Channels 2
+        // Channels 2 : PWMx/2
         case PA_1: case PA_9: case PB_3: case PB_5: case PB_7: case PC_7: case PB_0: case PB_14:
             return &pwm->CCR2;
             
-        // Channels 3
+        // Channels 3 : PWMx/3
         case PA_2: case PA_10: case PB_8: case PB_10: case PC_8: case PB_1: case PB_15:
             return &pwm->CCR3;
  
-        // Channels 4
+        // Channels 4 : PWMx/4
         case PA_3: case PA_11: case PB_9: case PC_9: 
             return &pwm->CCR4;
     }
     return NULL;
 }
+#endif
+
+#if defined TARGET_NUCLEO_F103RB
+__IO uint32_t* getChannel(TIM_TypeDef* pwm, PinName pin) {
+    switch (pin) {
+        // Channels 1 : PWMx/1
+        case PA_6: case PA_8: case PA_15: case PB_4: case PC_6: case PB_13:
+            return (uint32_t*)&pwm->CCR1;
+        
+        // Channels 2 : PWMx/2
+        case PA_1: case PA_7: case PA_9: case PB_3: case PB_5: case PC_7: case PB_14:
+            return (uint32_t*)&pwm->CCR2;
+            
+        // Channels 3 : PWMx/3
+        case PA_2: case PA_10: case PB_0: case PB_10: case PC_8: case PB_15:
+            return (uint32_t*)&pwm->CCR3;
+ 
+        // Channels 4 : PWMx/4
+        case PA_3: case PA_11: case PB_1: case PB_11: case PC_9: 
+            return (uint32_t*)&pwm->CCR4;
+    }
+    return NULL;
+}
 #endif
\ No newline at end of file