timer.h 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #ifndef _TIMER_H_
  2. #define _TIMER_H_
  3. #ifndef TIMER
  4. #error you must define TIMER before calling timer.h !
  5. #endif
  6. //determine PIE/PIR/IPR number
  7. #if TIMER <= 2
  8. #define TIMER_PNUM 1
  9. #elif TIMER == 3
  10. #define TIMER_PNUM 2
  11. #else
  12. #define TIMER_PNUM 5
  13. #endif
  14. #define TIMER_ON_(Timer) T##Timer##CONbits.TMR##Timer##ON
  15. #define TIMER_ON CALL_FUN(TIMER_ON_,TIMER)
  16. #define TIMER_H_(Timer) TMR##Timer##H
  17. #define TIMER_H CALL_FUN(TIMER_H_,TIMER)
  18. #define TIMER_L_(Timer) TMR##Timer##L
  19. #define TIMER_L CALL_FUN(TIMER_L_,TIMER)
  20. #define TIMER_CON_(Timer) T##Timer##CON
  21. #define TIMER_CON CALL_FUN(TIMER_CON_,TIMER)
  22. #define TIMER_CONbits_(Timer) T##Timer##CONbits
  23. #define TIMER_CONbits CALL_FUN(TIMER_CONbits_,TIMER)
  24. #define TIMER_PS_(Timer, Bit) T##Timer##CONbits.T##Timer##CKPS##Bit
  25. #define TIMER_PS0 CALL_FUN2(TIMER_PS_,TIMER, 0)
  26. #define TIMER_PS1 CALL_FUN2(TIMER_PS_,TIMER, 1)
  27. #define TIMER_SRC_(Timer, Bit) T##Timer##CONbits.TMR##Timer##CS##Bit
  28. #define TIMER_SRC0 CALL_FUN2(TIMER_SRC_,TIMER, 0)
  29. #define TIMER_SRC1 CALL_FUN2(TIMER_SRC_,TIMER, 1)
  30. #define TIMER_16BIT_(Timer) T##Timer##CONbits.T##Timer##RD16
  31. #define TIMER_16BIT CALL_FUN(TIMER_16BIT_,TIMER)
  32. #define TIMER_IF_(Timer,TimerPNum) PIR##TimerPNum##bits.TMR##Timer##IF
  33. #define TIMER_IF CALL_FUN2(TIMER_IF_,TIMER,TIMER_PNUM)
  34. #define TIMER_IE_(Timer,TimerPNum) PIE##TimerPNum##bits.TMR##Timer##IE
  35. #define TIMER_IE CALL_FUN2(TIMER_IE_,TIMER,TIMER_PNUM)
  36. #define TIMER_IP_(Timer,TimerPNum) IPR##TimerPNum##bits.TMR##Timer##IP
  37. #define TIMER_IP CALL_FUN2(TIMER_IP_,TIMER,TIMER_PNUM)
  38. #endif // _TIMER_H