| 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_2extern volatile unsigned long timer2_millis;#else //SYSTEM_TIMER_2extern 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_ */
 |