A set of classes that mimic the behaviour of Mbed Ticker class but using TIMER0, TIMER1, TIMER2 and the RIT.
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 }
Generated on Wed Jul 13 2022 14:21:59 by
1.7.2
Andy K