Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of BlinkLed by
Diff: BlinkLed.cpp
- Revision:
- 3:f317d057edde
- Parent:
- 2:1d0c09c1a8b4
diff -r 1d0c09c1a8b4 -r f317d057edde BlinkLed.cpp
--- a/BlinkLed.cpp Mon Dec 24 06:38:42 2012 +0000
+++ b/BlinkLed.cpp Tue May 24 06:38:16 2016 +0000
@@ -1,10 +1,8 @@
#include "BlinkLed.h"
-BlinkLed::BlinkLed(PinName pin, float dutyChangeStep) :
+BlinkLed::BlinkLed(PinName pin, int n) :
led(pin),
- dutyChangeStep(dutyChangeStep),
- pause(true),
- thread(0)
+ n(n)
{
}
@@ -14,39 +12,16 @@
void BlinkLed::startBlink()
{
- pause = false;
- if(!thread)
- {
- thread = new Thread(blink, this, osPriorityNormal, 128, NULL);
- }
- thread->signal_set(1);
-}
-
-void BlinkLed::finishBlink()
-{
- pause = true;
-}
-
-bool BlinkLed::isBlinking()
-{
- return !pause;
+ thread = new Thread(blink, this);
}
void BlinkLed::blink(void const *argument)
{
BlinkLed* self = (BlinkLed*)argument;
- bool sign = false;
while(1)
{
- if(self->pause)
- {
- self->led = 0.0F;
- Thread::signal_wait(1);
- }
- float brightness = self->led;
- sign = (brightness <= 0.0F) ? true : (1.0F <= brightness) ? false : sign;
- self->led = sign ? brightness + self->dutyChangeStep : brightness - self->dutyChangeStep;
- Thread::wait(20);
+ self->led = !self->led;
+ Thread::wait(self->n);
}
}
