]> git.friedersdorff.com Git - max/tmk_keyboard.git/blobdiff - tmk_core/common/timer.h
core: Update comments in keycode.h
[max/tmk_keyboard.git] / tmk_core / common / timer.h
index fe23f87aecd6c684bdf9f23e2a6a86669efb91d7..3bd72e4a254abcb84a6249144a3ef719c23498eb 100644 (file)
@@ -25,7 +25,10 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #endif
 
 
-#define TIMER_DIFF(a, b, max)   ((a) >= (b) ?  (a) - (b) : (max) - (b) + (a))
+#define TIMER_DIFF(a, b, max)   ((max == UINT8_MAX) ? ((uint8_t)((a)-(b))) : ( \
+                                 (max == UINT16_MAX) ? ((uint16_t)((a)-(b))) : ( \
+                                 (max == UINT32_MAX) ? ((uint32_t)((a)-(b))) : ( \
+                                 (a) >= (b) ? (a) - (b) : (max) + 1 - (b) + (a) ))))
 #define TIMER_DIFF_8(a, b)      TIMER_DIFF(a, b, UINT8_MAX)
 #define TIMER_DIFF_16(a, b)     TIMER_DIFF(a, b, UINT16_MAX)
 #define TIMER_DIFF_32(a, b)     TIMER_DIFF(a, b, UINT32_MAX)