Function on LEDs

LEDFunction.cpp

Committer:
PA
Date:
2012-05-28
Revision:
2:6ef6066f3b6e
Parent:
1:7fd22984c201

File content as of revision 2:6ef6066f3b6e:

#include "LEDFunction.h"
#include "mbed.h"

LEDFunction::LEDFunction(PinName pin): _pin(pin){
    _pin=0;
    Period=16667;
    PWMMin=0;
    PWMDuty=Period/2;
    PWMMax=Period;
    Pulse.attach_us(this,&LEDFunction::SigStart,PWMDuty);
}

void LEDFunction::SigStart(){
    _pin=1;
    PulseEnd.attach_us(this,&LEDFunction::SigStop,PWMDuty);   
}
 
void LEDFunction::SigStop(){
    _pin=0;
}

void LEDFunction::write_us(int PosIn){
    PWMDuty=PosIn;
    if(PosIn<PWMMin){PWMDuty=PWMMin;}
    if(PosIn>PWMMax){PWMDuty=PWMMax;}
}

void LEDFunction::duty(float dutIn){
    dutIn=Period*dutIn;
    int pos=(int)dutIn;
    write_us(pos);
}
     
int LEDFunction::read_us(){
    return PWMDuty;
}
    
void LEDFunction::OnOff(){
    if(_pin=0){_pin=1;}
    else _pin=0;
}
    
void LEDFunction::flash(int n){
    for(i=0;i<2*n;i++){
        _pin=!_pin;
        wait(0.5);
    }
}