Function on LEDs

LEDFunction.cpp

Committer:
PA
Date:
2012-05-28
Revision:
0:38ffbf6895c1
Child:
1:7fd22984c201

File content as of revision 0:38ffbf6895c1:

#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::OnOff(){
    if(_pin == 0){
        _pin = 1;
    }
    else _pin = 0;
}

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