On the FRDM-KL25Z, when I declare pins PTA5 and PTD2 as PwmOut pins, they are locked together and can not be independently controlled. It doesn't matter if I change the PWM of PTA5 or PTD2. Whichever one is changed, the other one follows it. The simple code below should keep pin PTD2 at 0% pwm while pin PTA5 should switch between 50% and 0% every 0.5 seconds. Pin PTA5 does alternate between 50% and 0% pwm, but instead of staying at 0% pwm, pin PTD2 follows pin PTA5.
Fork of frdm_rgbled by
main.cpp@2:03e5c29343d1, 2012-10-23 (annotated)
- Committer:
- emilmont
- Date:
- Tue Oct 23 09:33:36 2012 +0000
- Revision:
- 2:03e5c29343d1
- Parent:
- 1:eabc6f5b51d6
- Child:
- 5:14891bb08b35
Update mbed library
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
chris | 0:cf8a48b1fb23 | 1 | #include "mbed.h" |
chris | 0:cf8a48b1fb23 | 2 | |
chris | 1:eabc6f5b51d6 | 3 | PwmOut r (LED_RED); |
chris | 1:eabc6f5b51d6 | 4 | PwmOut g (LED_GREEN); |
chris | 1:eabc6f5b51d6 | 5 | PwmOut b (LED_BLUE); |
chris | 0:cf8a48b1fb23 | 6 | |
emilmont | 2:03e5c29343d1 | 7 | int main() { |
chris | 1:eabc6f5b51d6 | 8 | r.period(0.001); |
chris | 1:eabc6f5b51d6 | 9 | g.period(0.001); |
chris | 1:eabc6f5b51d6 | 10 | b.period(0.001); |
chris | 1:eabc6f5b51d6 | 11 | |
emilmont | 2:03e5c29343d1 | 12 | while (true) { |
emilmont | 2:03e5c29343d1 | 13 | for (float i = 0.0; i < 1.0 ; i += 0.001) { |
chris | 1:eabc6f5b51d6 | 14 | float p = 3 * i; |
chris | 1:eabc6f5b51d6 | 15 | r = 1.0 - ((p < 1.0) ? 1.0 - p : (p > 2.0) ? p - 2.0 : 0.0); |
chris | 1:eabc6f5b51d6 | 16 | g = 1.0 - ((p < 1.0) ? p : (p > 2.0) ? 0.0 : 2.0 - p); |
emilmont | 2:03e5c29343d1 | 17 | b = 1.0 - ((p < 1.0) ? 0.0 : (p > 2.0) ? 3.0 - p : p - 1.0); |
chris | 1:eabc6f5b51d6 | 18 | wait (0.0025); |
chris | 1:eabc6f5b51d6 | 19 | } |
chris | 1:eabc6f5b51d6 | 20 | } |
chris | 0:cf8a48b1fb23 | 21 | } |