1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- //! @file
- #ifndef FIRMWARE_SYSTEM_TIMER_H_
- #define FIRMWARE_SYSTEM_TIMER_H_
- #include "Arduino.h"
- #include "macros.h"
- #define SYSTEM_TIMER_2
- #ifdef SYSTEM_TIMER_2
- #include "timer02.h"
- #include "tone04.h"
- #define _millis millis2
- #define _micros micros2
- #define _delay delay2
- #define _tone tone4
- #define _noTone noTone4
- #define timer02_set_pwm0(pwm0)
- #else //SYSTEM_TIMER_2
- #define _millis millis
- #define _micros micros
- #define _delay delay
- #define _tone tone
- #define _noTone noTone
- #define timer02_set_pwm0(pwm0)
- #endif //SYSTEM_TIMER_2
- // Timer counter, incremented by the 1ms Arduino timer.
- // The standard Arduino timer() function returns this value atomically
- // by disabling / enabling interrupts. This is costly, if the interrupts are known
- // to be disabled.
- #ifdef SYSTEM_TIMER_2
- extern volatile unsigned long timer2_millis;
- #else //SYSTEM_TIMER_2
- extern volatile unsigned long timer0_millis;
- #endif //SYSTEM_TIMER_2
- // An unsynchronized equivalent to a standard Arduino _millis() function.
- // To be used inside an interrupt routine.
- FORCE_INLINE unsigned long millis_nc() {
- #ifdef SYSTEM_TIMER_2
- return timer2_millis;
- #else //SYSTEM_TIMER_2
- return timer0_millis;
- #endif //SYSTEM_TIMER_2
- }
- #endif /* FIRMWARE_SYSTEM_TIMER_H_ */
|