for DigitalOut toggling, Class "ticker" used.

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?

UserRevisionLine numberNew 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 }