.

WIKI: https://os.mbed.com/users/robertbuc/code/Robert-Buch/wiki/Special:Allpages

A1_Lekt4_bsp_Pwm.cpp

Committer:
robertbuc
Date:
2020-01-12
Revision:
0:ecc1b22b0941

File content as of revision 0:ecc1b22b0941:

#include "mbed.h"

//BusOut myleds(D2,D3,D6,D9,D11,D12,A6,D13);
//duty cycle = pulsewidth x 100 / period
//default periodendauer 20ms, default pulsweite 0
/*
hello pwm beispiel
//https://os.mbed.com/docs/mbed-os/v5.14/apis/pwmout.html

bsp:
4 second period Timer 1
2 second period Timer 16
1 second period Timer 15
2 second pulse (on)
3 second pulse (on)
0.5 second pulse (on)
1 second pulse (on)


   
 //new: 
 //BusOut myleds(D0,D3,D6,D9,D11,D12,A1,A5);
 
PwmOut led1(D0);    // Timer 1
PwmOut led3(D3);    // Timer 1
PwmOut led15(A1);   // Timer 15 auch A2 - ext. Led
PwmOut led16(A5);   // Timer 16 auch D5-SCL - ext. Led
 
 
int main() {
    // specify period first, then everything else
    led1.period(4.0f);      // 4 second period Timer 1
    led15.period(1.0f);     // 1 second period Timer 15
    led16.period(2.0f);     // 2 second period Timer 16
    led1.pulsewidth(2);     // 2 second pulse (on)
    led3.pulsewidth(3);     // 3 second pulse (on)
    led15.pulsewidth(0.5);  // 0.5 second pulse (on)
    led16.pulsewidth(1);    // 1 second pulse (on)
    
    while(1){};  
}
*/




PwmOut led1(D0);
PwmOut led2(D3);
PwmOut led3(A1);
PwmOut led4(A5);


void pwm1();
void pwm2();
void pwm3();
void pwmbsp1();

int main()
{
    
    /*
    led4.period(4.0f);       //4 second period
    //led4.write(0.50f);       //50% duty cycle, relative to period
    //led4=0.5f;             //shorthand for led.write()
    led4.pulsewidth(2);    //alternative to led.write, set duty cycle time in seconds
    */
    
    //pwm1();
    //pwm2();
    //pwm3();
    pwmbsp1();


    while(1)
    {
    }
}



void pwmbsp1()
{
    led1.period(4.0f);
    led3.period_ms(1000.0f);
    led4.period(2);
    
    //DC = pulsewidth*100/period
    
    led1.pulsewidth(2);
    led2.pulsewidth(3);
    led3.pulsewidth(0.50f);
    led4.pulsewidth(1);
}


void pwm3()
{
    led3.period_ms(20.0f);
    led3.pulsewidth_ms(5);
}


void pwm2()
{
    led2.period_ms(20.0f);  // 20 milli second period
    led2.write(0.25f);      // 25% duty cycle
    
}


void pwm1()
{
    led1=0.25f;    
}