coldfireTimer.h
上传用户:luoyougen
上传日期:2008-05-12
资源大小:23136k
文件大小:2k
源码类别:

VxWorks

开发平台:

C/C++

  1. /* coldfireTimer.h - ColdFire Timer header */
  2. /*
  3. modification history
  4. --------------------
  5. 01b,03apr01,dh  support for 5272 added (allows external definition of TER type)
  6. 01b,19oct01,dee  Merge from T2.1.0 release
  7. 01a,13apr98,mem written
  8. */
  9. #ifndef __INCcoldfireTimerh
  10. #define __INCcoldfireTimerh
  11. /*
  12. This file contains constants and typedefs for the timer contained in several
  13. of the Motorola ColdFire ports.
  14. */
  15. #ifdef __cplusplus
  16. extern "C" {
  17. #endif
  18. /* To change the size of the TER register, define the DEFINED_cfTer_t macro
  19.    and supply a typedef for cfTer_t.
  20. */
  21. #ifndef DEFINED_cfTer_t
  22. #define DEFINED_cfTer_t
  23. typedef UINT8 cfTer_t;
  24. #endif
  25. /* defines */
  26. #define COLDFIRE_TMR_CE_DIS (0 << 6) /* disable int on capture */
  27. #define COLDFIRE_TMR_CE_RISE (1 << 6) /* capture on rising edge */
  28. #define COLDFIRE_TMR_CE_FALL (2 << 6) /* capture on falling edge */
  29. #define COLDFIRE_TMR_CE_ANY (3 << 6) /* capture on any edge */
  30. #define COLDFIRE_TMR_OM (1 << 5) /* output mode */
  31. #define COLDFIRE_TMR_ORI (1 << 4) /* output ref int enable */
  32. #define COLDFIRE_TMR_FRR (1 << 3) /* free run/restart */
  33. #define COLDFIRE_TMR_CLK_STOP (0 << 1) /* stop count */
  34. #define COLDFIRE_TMR_CLK_BUS (1 << 1) /* system bus clock */
  35. #define COLDFIRE_TMR_CLK_BUS16 (2 << 1) /* system bus clock / 16 */
  36. #define COLDFIRE_TMR_CLK_TIN (3 << 1) /* TIN pin */
  37. #define COLDFIRE_TMR_EN (1 << 0) /* enable (reset) timer */
  38. #define COLDFIRE_TER_REF (1 << 1) /* output reference event */
  39. #define COLDFIRE_TER_CAP (1 << 0) /* capture event */
  40. /* typedefs */
  41. typedef struct
  42.     {
  43.     volatile UINT16 *tmr; /* timer mode register */
  44.     volatile cfTer_t *ter; /* timer event register */
  45.     volatile UINT16 *tcn; /* timer counter register */
  46.     volatile UINT16 *tcr; /* timer capture register */
  47.     volatile UINT16 *trr; /* timer reference register */
  48.     volatile void *imr; /* interrupt mask register */
  49.     int imrSize; /* size of IMR in bytes */
  50.     ULONG imrMask; /* mask bit in IMR register */
  51.     } COLDFIRE_TIMER;
  52. #ifdef __cplusplus
  53. }
  54. #endif
  55. #endif /* __INCcoldfireTimerh */