| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 | 
							- /**
 
-  * @file
 
-  * @author Marek Bel
 
-  */
 
- #ifndef TIMER_H
 
- #define TIMER_H
 
- /**
 
-  * @brief simple timer
 
-  *
 
-  * Simple and memory saving implementation. Should handle timer register wrap around well.
 
-  * Resolution is one millisecond. To save memory, doesn't store timer period.
 
-  * If you wish timer which is storing period, derive from this.
 
-  */
 
- template <class T>
 
- class Timer
 
- {
 
- public:
 
-     Timer();
 
-     void start();
 
-     void stop(){m_isRunning = false;}
 
-     bool running()const {return m_isRunning;}
 
-     bool expired(T msPeriod); // returns true only once after expiration, then stops running
 
-     T elapsed(); // returns the time in milliseconds since the timer was started or 0 otherwise
 
-     bool expired_cont(T msPeriod); // return true when continuosly when expired / not running
 
- protected:
 
-     T started()const {return m_started;}
 
- private:
 
-     bool m_isRunning;
 
-     T m_started;
 
- };
 
- /**
 
-  * @brief Timer unsigned long specialization
 
-  *
 
-  * Maximum period is at least 49 days.
 
-  */
 
- #if __cplusplus>=201103L
 
- using LongTimer = Timer<unsigned long>;
 
- #else
 
- typedef Timer<unsigned long> LongTimer;
 
- #endif
 
- /**
 
-  * @brief Timer unsigned short specialization
 
-  *
 
-  * Maximum period is at least 65 seconds.
 
-  */
 
- #if __cplusplus>=201103L
 
- using ShortTimer = Timer<unsigned short>;
 
- #else
 
- typedef Timer<unsigned short> ShortTimer;
 
- #endif
 
- #endif /* TIMER_H */
 
 
  |