K.I.T.T. Scanner (Knight Rider) http://mbed.org/users/okini3939/programs/KittScanner_sample/latest
Revision 0:9d29ea3f1886, committed 2010-10-18
- Comitter:
- okini3939
- Date:
- Mon Oct 18 14:27:30 2010 +0000
- Child:
- 1:bb116abfe905
- Commit message:
Changed in this revision
KITTScanner.cpp | Show annotated file Show diff for this revision Revisions of this file |
KITTScanner.h | Show annotated file Show diff for this revision Revisions of this file |
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/KITTScanner.cpp Mon Oct 18 14:27:30 2010 +0000 @@ -0,0 +1,78 @@ +/* + * mbed library for K.I.T.T. Scanner + * Copyright (c) 2010 Hiroshi Suga + * Released under the MIT License: http://mbed.org/license/mit + */ + +#include "mbed.h" +#include "KITTScanner.h" + +PwmOut led[] = { + PwmOut(LED1), + PwmOut(LED2), + PwmOut(LED3), + PwmOut(LED4) +}; + +//KITTScanner::KITTScanner () : led{LED1, LED2, LED3, LED4} { +/* +KITTScanner::KITTScanner () { + new(led + 0) PwmOut(LED1); + new(led + 1) PwmOut(LED2); + new(led + 2) PwmOut(LED3); + new(led + 3) PwmOut(LED4); +*/ +KITTScanner::KITTScanner () { +} + +void KITTScanner::start (float speed) { + int i; + + for (i = 0; i < 4; i ++) + bright[i] = 0.0; + num = 0; + kill = 0; + ticker.attach(this, &KITTScanner::int_KITTScanner, speed / 6.0); +} + +void KITTScanner::stop (int flg) { + int i; + + if (flg) { + ticker.detach(); + for (i = 0; i < 4; i ++) + led[i] = 0.0; + } else { + kill = 1; + } +} + +void KITTScanner::int_KITTScanner () { + int i, flg; + + for (i = 0; i < 4; i ++) { + led[i] = bright[i]; + bright[i] = bright[i] / 3.0; + if (bright[i] < (1.0 / 3.0 / 3.0)) bright[i] = 0.0; + } + + if (! kill) { + if (num >= 0) { + bright[num] = 1.0; + num ++; + if (num > 3) num = -2; + } else { + bright[- num] = 1.0; + num ++; + } + } else { + flg = 0; + for (i = 0; i < 4; i ++) + if (bright[i] > 0) flg = 1; + if (! flg) { + ticker.detach(); + for (i = 0; i < 4; i ++) + led[i] = 0.0; + } + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/KITTScanner.h Mon Oct 18 14:27:30 2010 +0000 @@ -0,0 +1,29 @@ +/* + * mbed library for K.I.T.T. Scanner + * Copyright (c) 2010 Hiroshi Suga + * Released under the MIT License: http://mbed.org/license/mit + */ + +#ifndef KITTScanner_H +#define KITTScanner_H + +#include "mbed.h" +#include <new> + +class KITTScanner : public Base { +public: + KITTScanner (); + + void start (float speed = 1.0); + void stop (int flg = 0); + +private: + Ticker ticker; +// PwmOut led[]; + int num, kill; + float bright[4]; + + void int_KITTScanner(); +}; + +#endif \ No newline at end of file