Simple PWM tutorial using FRDM-KL25Z made by Twistx77 from TutoElectro

Dependencies:   mbed

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);
}