Browse Source

Merge pull request #402 from mjs513/Update-imxrt.h-for-Encoder-structure

Update imxrt.h for encoder structure
teensy4-core
Paul Stoffregen 5 years ago
parent
commit
b98907f076
No account linked to committer's email address
1 changed files with 109 additions and 85 deletions
  1. +109
    -85
      teensy4/imxrt.h

+ 109
- 85
teensy4/imxrt.h View File

@@ -2427,90 +2427,114 @@ typedef struct {


// 23.7.1: page 1023
#define IMXRT_ENC1 (*(IMXRT_REGISTER16_t *)0x403C8000)
#define ENC1_CTRL (IMXRT_ENC1.offset000)
#define ENC1_FILT (IMXRT_ENC1.offset002)
#define ENC1_WTR (IMXRT_ENC1.offset004)
#define ENC1_POSD (IMXRT_ENC1.offset006)
#define ENC1_POSDH (IMXRT_ENC1.offset008)
#define ENC1_REV (IMXRT_ENC1.offset00A)
#define ENC1_REVH (IMXRT_ENC1.offset00C)
#define ENC1_UPOS (IMXRT_ENC1.offset00E)
#define ENC1_LPOS (IMXRT_ENC1.offset010)
#define ENC1_UPOSH (IMXRT_ENC1.offset012)
#define ENC1_LPOSH (IMXRT_ENC1.offset014)
#define ENC1_UINIT (IMXRT_ENC1.offset016)
#define ENC1_LINIT (IMXRT_ENC1.offset018)
#define ENC1_IMR (IMXRT_ENC1.offset01A)
#define ENC1_TST (IMXRT_ENC1.offset01C)
#define ENC1_CTRL2 (IMXRT_ENC1.offset01E)
#define ENC1_UMOD (IMXRT_ENC1.offset020)
#define ENC1_LMOD (IMXRT_ENC1.offset022)
#define ENC1_UCOMP (IMXRT_ENC1.offset024)
#define ENC1_LCOMP (IMXRT_ENC1.offset026)
#define IMXRT_ENC2 (*(IMXRT_REGISTER16_t *)0x403CC000)
#define ENC2_CTRL (IMXRT_ENC2.offset000)
#define ENC2_FILT (IMXRT_ENC2.offset002)
#define ENC2_WTR (IMXRT_ENC2.offset004)
#define ENC2_POSD (IMXRT_ENC2.offset006)
#define ENC2_POSDH (IMXRT_ENC2.offset008)
#define ENC2_REV (IMXRT_ENC2.offset00A)
#define ENC2_REVH (IMXRT_ENC2.offset00C)
#define ENC2_UPOS (IMXRT_ENC2.offset00E)
#define ENC2_LPOS (IMXRT_ENC2.offset010)
#define ENC2_UPOSH (IMXRT_ENC2.offset012)
#define ENC2_LPOSH (IMXRT_ENC2.offset014)
#define ENC2_UINIT (IMXRT_ENC2.offset016)
#define ENC2_LINIT (IMXRT_ENC2.offset018)
#define ENC2_IMR (IMXRT_ENC2.offset01A)
#define ENC2_TST (IMXRT_ENC2.offset01C)
#define ENC2_CTRL2 (IMXRT_ENC2.offset01E)
#define ENC2_UMOD (IMXRT_ENC2.offset020)
#define ENC2_LMOD (IMXRT_ENC2.offset022)
#define ENC2_UCOMP (IMXRT_ENC2.offset024)
#define ENC2_LCOMP (IMXRT_ENC2.offset026)
#define IMXRT_ENC3 (*(IMXRT_REGISTER16_t *)0x403D0000)
#define ENC3_CTRL (IMXRT_ENC3.offset000)
#define ENC3_FILT (IMXRT_ENC3.offset002)
#define ENC3_WTR (IMXRT_ENC3.offset004)
#define ENC3_POSD (IMXRT_ENC3.offset006)
#define ENC3_POSDH (IMXRT_ENC3.offset008)
#define ENC3_REV (IMXRT_ENC3.offset00A)
#define ENC3_REVH (IMXRT_ENC3.offset00C)
#define ENC3_UPOS (IMXRT_ENC3.offset00E)
#define ENC3_LPOS (IMXRT_ENC3.offset010)
#define ENC3_UPOSH (IMXRT_ENC3.offset012)
#define ENC3_LPOSH (IMXRT_ENC3.offset014)
#define ENC3_UINIT (IMXRT_ENC3.offset016)
#define ENC3_LINIT (IMXRT_ENC3.offset018)
#define ENC3_IMR (IMXRT_ENC3.offset01A)
#define ENC3_TST (IMXRT_ENC3.offset01C)
#define ENC3_CTRL2 (IMXRT_ENC3.offset01E)
#define ENC3_UMOD (IMXRT_ENC3.offset020)
#define ENC3_LMOD (IMXRT_ENC3.offset022)
#define ENC3_UCOMP (IMXRT_ENC3.offset024)
#define ENC3_LCOMP (IMXRT_ENC3.offset026)
#define IMXRT_ENC4 (*(IMXRT_REGISTER16_t *)0x403D4000)
#define ENC4_CTRL (IMXRT_ENC4.offset000)
#define ENC4_FILT (IMXRT_ENC4.offset002)
#define ENC4_WTR (IMXRT_ENC4.offset004)
#define ENC4_POSD (IMXRT_ENC4.offset006)
#define ENC4_POSDH (IMXRT_ENC4.offset008)
#define ENC4_REV (IMXRT_ENC4.offset00A)
#define ENC4_REVH (IMXRT_ENC4.offset00C)
#define ENC4_UPOS (IMXRT_ENC4.offset00E)
#define ENC4_LPOS (IMXRT_ENC4.offset010)
#define ENC4_UPOSH (IMXRT_ENC4.offset012)
#define ENC4_LPOSH (IMXRT_ENC4.offset014)
#define ENC4_UINIT (IMXRT_ENC4.offset016)
#define ENC4_LINIT (IMXRT_ENC4.offset018)
#define ENC4_IMR (IMXRT_ENC4.offset01A)
#define ENC4_TST (IMXRT_ENC4.offset01C)
#define ENC4_CTRL2 (IMXRT_ENC4.offset01E)
#define ENC4_UMOD (IMXRT_ENC4.offset020)
#define ENC4_LMOD (IMXRT_ENC4.offset022)
#define ENC4_UCOMP (IMXRT_ENC4.offset024)
#define ENC4_LCOMP (IMXRT_ENC4.offset026)
typedef struct {
volatile uint16_t CTRL; /**< Control Register, offset: 0x0 */
volatile uint16_t FILT; /**< Input Filter Register, offset: 0x2 */
volatile uint16_t WTR; /**< Watchdog Timeout Register, offset: 0x4 */
volatile uint16_t POSD; /**< Position Difference Counter Register, offset: 0x6 */
volatile uint16_t POSDH; /**< Position Difference Hold Register, offset: 0x8 */
volatile uint16_t REV; /**< Revolution Counter Register, offset: 0xA */
volatile uint16_t REVH; /**< Revolution Hold Register, offset: 0xC */
volatile uint16_t UPOS; /**< Upper Position Counter Register, offset: 0xE */
volatile uint16_t LPOS; /**< Lower Position Counter Register, offset: 0x10 */
volatile uint16_t UPOSH; /**< Upper Position Hold Register, offset: 0x12 */
volatile uint16_t LPOSH; /**< Lower Position Hold Register, offset: 0x14 */
volatile uint16_t UINIT; /**< Upper Initialization Register, offset: 0x16 */
volatile uint16_t LINIT; /**< Lower Initialization Register, offset: 0x18 */
volatile uint16_t IMR; /**< Input Monitor Register, offset: 0x1A */
volatile uint16_t TST; /**< Test Register, offset: 0x1C */
volatile uint16_t CTRL2; /**< Control 2 Register, offset: 0x1E */
volatile uint16_t UMOD; /**< Upper Modulus Register, offset: 0x20 */
volatile uint16_t LMOD; /**< Lower Modulus Register, offset: 0x22 */
volatile uint16_t UCOMP; /**< Upper Position Compare Register, offset: 0x24 */
volatile uint16_t LCOMP; /**< Lower Position Compare Register, offset: 0x26 */
} IMXRT_ENC_t;


#define IMXRT_ENC1 (*(IMXRT_ENC_t *)0x403C8000)
#define ENC1_CTRL (IMXRT_ENC1.CTRL)
#define ENC1_FILT (IMXRT_ENC1.FILT)
#define ENC1_WTR (IMXRT_ENC1.WTR)
#define ENC1_POSD (IMXRT_ENC1.POSD)
#define ENC1_POSDH (IMXRT_ENC1.POSDH)
#define ENC1_REV (IMXRT_ENC1.REV)
#define ENC1_REVH (IMXRT_ENC1.REVH)
#define ENC1_UPOS (IMXRT_ENC1.UPOS)
#define ENC1_LPOS (IMXRT_ENC1.LPOS)
#define ENC1_UPOSH (IMXRT_ENC1.UPOSH)
#define ENC1_LPOSH (IMXRT_ENC1.LPOSH)
#define ENC1_UINIT (IMXRT_ENC1.UINIT)
#define ENC1_LINIT (IMXRT_ENC1.LINIT)
#define ENC1_IMR (IMXRT_ENC1.IMR)
#define ENC1_TST (IMXRT_ENC1.TST)
#define ENC1_CTRL2 (IMXRT_ENC1.CTRL2)
#define ENC1_UMOD (IMXRT_ENC1.UMOD)
#define ENC1_LMOD (IMXRT_ENC1.LMOD)
#define ENC1_UCOMP (IMXRT_ENC1.UCOMP)
#define ENC1_LCOMP (IMXRT_ENC1.LCOMP)
#define IMXRT_ENC2 (*(IMXRT_ENC_t *)0x403CC000)
#define ENC2_CTRL (IMXRT_ENC2.CTRL)
#define ENC2_FILT (IMXRT_ENC2.FILT)
#define ENC2_WTR (IMXRT_ENC2.WTR)
#define ENC2_POSD (IMXRT_ENC2.POSD)
#define ENC2_POSDH (IMXRT_ENC2.POSDH)
#define ENC2_REV (IMXRT_ENC2.REV)
#define ENC2_REVH (IMXRT_ENC2.REVH)
#define ENC2_UPOS (IMXRT_ENC2.UPOS)
#define ENC2_LPOS (IMXRT_ENC2.LPOS)
#define ENC2_UPOSH (IMXRT_ENC2.UPOSH)
#define ENC2_LPOSH (IMXRT_ENC2.LPOSH)
#define ENC2_UINIT (IMXRT_ENC2.UINIT)
#define ENC2_LINIT (IMXRT_ENC2.LINIT)
#define ENC2_IMR (IMXRT_ENC2.IMR)
#define ENC2_TST (IMXRT_ENC2.TST)
#define ENC2_CTRL2 (IMXRT_ENC2.CTRL2)
#define ENC2_UMOD (IMXRT_ENC2.UMOD)
#define ENC2_LMOD (IMXRT_ENC2.LMOD)
#define ENC2_UCOMP (IMXRT_ENC2.UCOMP)
#define ENC2_LCOMP (IMXRT_ENC2.LCOMP)
#define IMXRT_ENC3 (*(IMXRT_ENC_t *)0x403D0000)
#define ENC3_CTRL (IMXRT_ENC3.CTRL)
#define ENC3_FILT (IMXRT_ENC3.FILT)
#define ENC3_WTR (IMXRT_ENC3.WTR)
#define ENC3_POSD (IMXRT_ENC3.POSD)
#define ENC3_POSDH (IMXRT_ENC3.POSDH)
#define ENC3_REV (IMXRT_ENC3.REV)
#define ENC3_REVH (IMXRT_ENC3.REVH)
#define ENC3_UPOS (IMXRT_ENC3.UPOS)
#define ENC3_LPOS (IMXRT_ENC3.LPOS)
#define ENC3_UPOSH (IMXRT_ENC3.UPOSH)
#define ENC3_LPOSH (IMXRT_ENC3.LPOSH)
#define ENC3_UINIT (IMXRT_ENC3.UINIT)
#define ENC3_LINIT (IMXRT_ENC3.LINIT)
#define ENC3_IMR (IMXRT_ENC3.IMR)
#define ENC3_TST (IMXRT_ENC3.TST)
#define ENC3_CTRL2 (IMXRT_ENC3.CTRL2)
#define ENC3_UMOD (IMXRT_ENC3.UMOD)
#define ENC3_LMOD (IMXRT_ENC3.LMOD)
#define ENC3_UCOMP (IMXRT_ENC3.UCOMP)
#define ENC3_LCOMP (IMXRT_ENC3.LCOMP)
#define IMXRT_ENC4 (*(IMXRT_ENC_t *)0x403D4000)
#define ENC4_CTRL (IMXRT_ENC4.CTRL)
#define ENC4_FILT (IMXRT_ENC4.FILT)
#define ENC4_WTR (IMXRT_ENC4.WTR)
#define ENC4_POSD (IMXRT_ENC4.POSD)
#define ENC4_POSDH (IMXRT_ENC4.POSDH)
#define ENC4_REV (IMXRT_ENC4.REV)
#define ENC4_REVH (IMXRT_ENC4.REVH)
#define ENC4_UPOS (IMXRT_ENC4.UPOS)
#define ENC4_LPOS (IMXRT_ENC4.LPOS)
#define ENC4_UPOSH (IMXRT_ENC4.UPOSH)
#define ENC4_LPOSH (IMXRT_ENC4.LPOSH)
#define ENC4_UINIT (IMXRT_ENC4.UINIT)
#define ENC4_LINIT (IMXRT_ENC4.LINIT)
#define ENC4_IMR (IMXRT_ENC4.IMR)
#define ENC4_TST (IMXRT_ENC4.TST)
#define ENC4_CTRL2 (IMXRT_ENC4.CTRL2)
#define ENC4_UMOD (IMXRT_ENC4.UMOD)
#define ENC4_LMOD (IMXRT_ENC4.LMOD)
#define ENC4_UCOMP (IMXRT_ENC4.UCOMP)
#define ENC4_LCOMP (IMXRT_ENC4.LCOMP)

// 24.5: page 1060
#define IMXRT_ENET (*(IMXRT_REGISTER32_t *)0x402D8000)
@@ -8405,4 +8429,4 @@ static inline void arm_dcache_flush_delete(void *addr, uint32_t size)
} while (location < end_addr);
asm("dsb");
asm("isb");
}
}

Loading…
Cancel
Save