for DigitalOut toggling, Class "ticker" used.
ToggleDigitalOut.cpp@0:d4dad8ffa192, 2013-05-15 (annotated)
- Committer:
- KentaShimizu
- Date:
- Wed May 15 14:59:36 2013 +0000
- Revision:
- 0:d4dad8ffa192
for DigitalOut Toggling, Class "ticker" used.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
KentaShimizu | 0:d4dad8ffa192 | 1 | #include "mbed.h" |
KentaShimizu | 0:d4dad8ffa192 | 2 | #include "ToggleDigitalOut.h" |
KentaShimizu | 0:d4dad8ffa192 | 3 | |
KentaShimizu | 0:d4dad8ffa192 | 4 | ToggleDigitalOut :: ToggleDigitalOut(PinName pin) : DigitalOut(pin){ |
KentaShimizu | 0:d4dad8ffa192 | 5 | ticker = 0; |
KentaShimizu | 0:d4dad8ffa192 | 6 | } |
KentaShimizu | 0:d4dad8ffa192 | 7 | ToggleDigitalOut :: ~ToggleDigitalOut(){ |
KentaShimizu | 0:d4dad8ffa192 | 8 | stopToggling(); |
KentaShimizu | 0:d4dad8ffa192 | 9 | } |
KentaShimizu | 0:d4dad8ffa192 | 10 | void ToggleDigitalOut :: toggle(void){ |
KentaShimizu | 0:d4dad8ffa192 | 11 | write(!read()); |
KentaShimizu | 0:d4dad8ffa192 | 12 | } |
KentaShimizu | 0:d4dad8ffa192 | 13 | void ToggleDigitalOut :: toggling(float span){ |
KentaShimizu | 0:d4dad8ffa192 | 14 | stopToggling(); |
KentaShimizu | 0:d4dad8ffa192 | 15 | ticker = new Ticker(); |
KentaShimizu | 0:d4dad8ffa192 | 16 | ticker->attach(this,&ToggleDigitalOut::toggle,span); |
KentaShimizu | 0:d4dad8ffa192 | 17 | } |
KentaShimizu | 0:d4dad8ffa192 | 18 | void ToggleDigitalOut :: stopToggling(void){ |
KentaShimizu | 0:d4dad8ffa192 | 19 | if(ticker){ |
KentaShimizu | 0:d4dad8ffa192 | 20 | ticker->detach(); |
KentaShimizu | 0:d4dad8ffa192 | 21 | delete ticker; |
KentaShimizu | 0:d4dad8ffa192 | 22 | } |
KentaShimizu | 0:d4dad8ffa192 | 23 | ticker = 0; |
KentaShimizu | 0:d4dad8ffa192 | 24 | } |