mbed library sources, include can_api for nucleo-f091rc

Dependents:   CanNucleoF0_example

Fork of mbed-src by mbed official

Revision:
236:6ac0938ee349
Parent:
227:7bd0639b8911
Child:
630:825f75ca301e
--- a/targets/hal/TARGET_NXP/TARGET_LPC11XX_11CXX/pwmout_api.c	Mon Jun 23 14:00:09 2014 +0100
+++ b/targets/hal/TARGET_NXP/TARGET_LPC11XX_11CXX/pwmout_api.c	Tue Jun 24 08:00:08 2014 +0100
@@ -109,11 +109,15 @@
     } else if (value > 1.0f) {
         value = 1.0;
     }
-    
+
     timer_mr tid = pwm_timer_map[obj->pwm];
     LPC_TMR_TypeDef *timer = Timers[tid.timer];
     uint32_t t_off = timer->MR3 - (uint32_t)((float)(timer->MR3) * value);
-    
+    // to avoid spike pulse when duty is 0%
+    if (value == 0) {
+        t_off++;
+    }
+
     timer->TCR = TCR_RESET;
     timer->MR[tid.mr] = t_off;
     timer->TCR = TCR_CNT_EN;
@@ -124,6 +128,9 @@
     LPC_TMR_TypeDef *timer = Timers[tid.timer];
     
     float v = (float)(timer->MR3 - timer->MR[tid.mr]) / (float)(timer->MR3);
+    if (timer->MR[tid.mr] > timer->MR3) {
+        v = 0.0f;
+    }
     return (v > 1.0f) ? (1.0f) : (v);
 }