Fix setFailafe SF
[opentx.git] / radio / src / timers.h
blob6e04102a295111fc20f27e89b40fa6ba37d83b9e
1 /*
2 * Copyright (C) OpenTX
4 * Based on code named
5 * th9x - http://code.google.com/p/th9x
6 * er9x - http://code.google.com/p/er9x
7 * gruvin9x - http://code.google.com/p/gruvin9x
9 * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
11 * This program is free software; you can redistribute it and/or modify
12 * it under the terms of the GNU General Public License version 2 as
13 * published by the Free Software Foundation.
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
21 #ifndef _TIMERS_H_
22 #define _TIMERS_H_
24 #define TMR_OFF 0
25 #define TMR_RUNNING 1
26 #define TMR_NEGATIVE 2
27 #define TMR_STOPPED 3
29 #if defined(CPUARM)
30 typedef int32_t tmrval_t;
31 typedef uint32_t tmrstart_t;
32 typedef int16_t tmrmode_t;
33 #define TIMER_MAX (0xffffff/2)
34 #else
35 typedef int16_t tmrval_t;
36 typedef uint16_t tmrstart_t;
37 typedef int8_t tmrmode_t;
38 #define TIMER_MAX (0xffff/2)
39 #endif
41 #define TIMER_MIN (tmrval_t(-TIMER_MAX-1))
43 struct TimerState {
44 uint16_t cnt;
45 uint16_t sum;
46 uint8_t state;
47 tmrval_t val;
48 uint8_t val_10ms;
51 extern TimerState timersStates[TIMERS];
53 void timerReset(uint8_t idx);
55 #if defined(CPUARM)
56 void timerSet(int idx, int val);
57 #endif // #if defined(CPUARM)
59 #if defined(CPUARM) || defined(CPUM2560)
60 void saveTimers();
61 void restoreTimers();
62 #else
63 #define saveTimers()
64 #define restoreTimers()
65 #endif
67 void evalTimers(int16_t throttle, uint8_t tick10ms);
69 #endif // _TIMERS_H_