Alejandro M
/
TutoElectro_PWM
Simple PWM tutorial using FRDM-KL25Z made by Twistx77 from TutoElectro
main.cpp
- Committer:
- Twistx77
- Date:
- 2015-01-04
- Revision:
- 0:647746eea42d
- Child:
- 1:778a662bafcf
File content as of revision 0:647746eea42d:
#include "mbed.h" PwmOut pwm1(PTB0); PwmOut pwmLED(LED_RED); Serial pc(USBTX,USBRX); uint16_t periodPWM1 = 1; uint16_t periodPWMLED =1; float dutyPWM1 = 0; float dutyPWMLED = 0; void rxInterrupt() { switch(pc.getc()) { case 'a': periodPWM1++; periodPWMLED++; pwm1.period_ms(periodPWM1); pwmLED.period_ms(periodPWMLED); break; case 's': if (periodPWM1>1) { periodPWM1--; periodPWMLED--; } pwm1.period_ms(periodPWM1); pwmLED.period_ms(periodPWMLED); break; case 'f': if (dutyPWM1<1) { dutyPWM1 = dutyPWM1 + 0.05 ; dutyPWMLED = dutyPWMLED + 0.05; } pwm1.write(dutyPWM1); pwmLED.write(dutyPWMLED); break; case 'g': if (dutyPWM1>0) { dutyPWM1 = dutyPWM1 - 0.05 ; dutyPWMLED = dutyPWMLED - 0.05; } pwm1.write(dutyPWM1); pwmLED.write(dutyPWMLED); break; default: break; } pc.printf("Period (ms): %i, Duty: %.2f \r\n", periodPWM1,dutyPWM1); } int main() { pc.baud(115200); pc.attach(&rxInterrupt); while(1); }