Function on LEDs

Revision:
0:38ffbf6895c1
Child:
1:7fd22984c201
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/LEDFunction.cpp	Mon May 28 02:58:18 2012 +0000
@@ -0,0 +1,42 @@
+#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;
+} 
\ No newline at end of file