A set of classes that mimic the behaviour of Mbed Ticker class but using TIMER0, TIMER1, TIMER2 and the RIT.

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers Tickers.cpp Source File

Tickers.cpp

00001 /*
00002     Copyright (c) 2011 Andy Kirkham
00003  
00004     Permission is hereby granted, free of charge, to any person obtaining a copy
00005     of this software and associated documentation files (the "Software"), to deal
00006     in the Software without restriction, including without limitation the rights
00007     to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
00008     copies of the Software, and to permit persons to whom the Software is
00009     furnished to do so, subject to the following conditions:
00010  
00011     The above copyright notice and this permission notice shall be included in
00012     all copies or substantial portions of the Software.
00013  
00014     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
00015     IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
00016     FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
00017     AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
00018     LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
00019     OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
00020     THE SOFTWARE.
00021 */
00022 
00023 #include "Tickers.h"
00024 
00025 Ticker0::Ticker0() { 
00026     counter = 0;
00027     _ticker0Sys.addTicker(this);
00028 }
00029 
00030 Ticker0::~Ticker0() { 
00031     _ticker0Sys.delTicker(this);
00032 }
00033     
00034 void 
00035 Ticker0::tick(void) {
00036     if (counter) {
00037         counter--;
00038         if (counter == 0) {
00039             counter = reload;
00040             callback.call();
00041         }        
00042     }
00043 }
00044 
00045 Ticker1::Ticker1() { 
00046     counter = 0;
00047     _ticker1Sys.addTicker(this);
00048 }
00049 
00050 Ticker1::~Ticker1() { 
00051     _ticker1Sys.delTicker(this);
00052 }
00053     
00054 void 
00055 Ticker1::tick(void) {
00056     if (counter) {
00057         counter--;
00058         if (counter == 0) {
00059             counter = reload;
00060             callback.call();
00061         }        
00062     }
00063 }
00064 
00065 Ticker2::Ticker2() { 
00066     counter = 0;
00067     _ticker2Sys.addTicker(this);
00068 }
00069 
00070 Ticker2::~Ticker2() { 
00071     _ticker2Sys.delTicker(this);
00072 }
00073     
00074 void 
00075 Ticker2::tick(void) {
00076     if (counter) {
00077         counter--;
00078         if (counter == 0) {
00079             counter = reload;
00080             callback.call();
00081         }        
00082     }
00083 }
00084 
00085 Ticker4::Ticker4() { 
00086     counter = 0;
00087     _tickerRSys.addTicker(this);
00088 }
00089 
00090 Ticker4::~Ticker4() { 
00091     _tickerRSys.delTicker(this);
00092 }
00093     
00094 void 
00095 Ticker4::tick(void) {
00096     if (counter) {
00097         counter--;
00098         if (counter == 0) {
00099             counter = reload;
00100             callback.call();
00101         }        
00102     }
00103 }