This repository has been archived on 2024-05-28. You can view files and clone it, but cannot push or open issues or pull requests.
2023-11-14 16:25:09 -05:00

243 lines
11 KiB
C
Executable File

#include <stdint.h>
typedef struct {
uint32_t cc1if : 1; // 0 Compare 1 interrupt flag
uint32_t arrm : 1; // 1 Autoreload match
uint32_t exttrig : 1; // 2 External trigger edge event
uint32_t cmp1ok : 1; // 3 Compare register 1 update OK
uint32_t arrok : 1; // 4 Autoreload register update OK
uint32_t up : 1; // 5 Counter direction change down to up
uint32_t down : 1; // 6 Counter direction change up to down
uint32_t ue : 1; // 7 LPTIM update event occurred
uint32_t repok : 1; // 8 Repetition register update Ok
uint32_t cc2if : 1; // 9 Compare 2 interrupt flag
uint32_t reserve0 : 9; // 10 Reserve
uint32_t cmp2ok : 1; // 19 Compare register 2 update OK
uint32_t reserve1 : 4; // 20 Reserve
uint32_t dierok : 1; // 24 Interrupt enable register update OK
uint32_t reserve2 : 7; // 25 Reserve
} reg_lptim_isr_output_t;
typedef struct {
uint32_t cc1if : 1; // 0 Compare 1 interrupt flag
uint32_t arrm : 1; // 1 Autoreload match
uint32_t exttrig : 1; // 2 External trigger edge event
uint32_t reserve0 : 1; // 3 Reserve
uint32_t arrok : 1; // 4 Autoreload register update OK
uint32_t up : 1; // 5 Counter direction change down to up
uint32_t down : 1; // 6 Counter direction change up to down
uint32_t ue : 1; // 7 LPTIM update event occurred
uint32_t repok : 1; // 8 Repetition register update Ok
uint32_t cc2if : 1; // 9 Capture 2 interrupt flag
uint32_t reserve1 : 2; // 10 Reserve
uint32_t cc1of : 1; // 12 Capture 1 over-capture flag
uint32_t cc2of : 1; // 13 Capture 2 over-capture flag
uint32_t reserve2 : 10; // 14 Reserve
uint32_t dierok : 1; // 24 Interrupt enable register update OK
uint32_t reserve3 : 7; // 25 Reserve
} reg_lptim_isr_intput_t;
typedef struct {
uint32_t cc1if : 1; // 0 Capture/compare 1 clear flag
uint32_t arrmcf : 1; // 1 Autoreload match Clear Flag
uint32_t exttrigcf : 1; // 2 External trigger valid edge Clear Flag
uint32_t cmp1okcf : 1; // 3 Compare register 1 update OK Clear Flag
uint32_t arrokcf : 1; // 4 Autoreload register update OK Clear Flag
uint32_t upcf : 1; // 5 Direction change to UP Clear Flag
uint32_t downcf : 1; // 6 Direction change to down Clear Flag
uint32_t uecf : 1; // 7 Update event clear flag
uint32_t repokcf : 1; // 8 Repetition register update OK clear flag
uint32_t cc2cf : 1; // 9 Capture/compare 2 clear flag
uint32_t reserve0 : 9; // 10 Reserve
uint32_t cmp2okcf : 1; // 19 Compare register 2 update OK clear flag
uint32_t reserve1 : 4; // 20 Reserve
uint32_t dierokcf : 1; // 24 Interrupt enable register update OK clear flag
uint32_t reserve2 : 7; // 25 Reserve
} reg_lptim_icr_output_t;
typedef struct {
uint32_t cc1if : 1; // 0 Capture/compare 1 clear flag
uint32_t arrmcf : 1; // 1 Autoreload match Clear Flag
uint32_t exttrigcf : 1; // 2 External trigger valid edge Clear Flag
uint32_t reserve0 : 1; // 3 Reserve
uint32_t arrokcf : 1; // 4 Autoreload register update OK Clear Flag
uint32_t upcf : 1; // 5 Direction change to UP Clear Flag
uint32_t downcf : 1; // 6 Direction change to down Clear Flag
uint32_t uecf : 1; // 7 Update event clear flag
uint32_t repokcf : 1; // 8 Repetition register update OK clear flag
uint32_t cc2cf : 1; // 9 Capture/compare 2 clear flag
uint32_t reserve1 : 2; // 10 Reserve
uint32_t cc1ocf : 1; // 12 Capture/compare 1 over-capture clear flag
uint32_t cc2ocf : 1; // 13 Capture/compare 2 over-capture clear flag
uint32_t reserve2 : 10; // 14 Reserve
uint32_t dierokcf : 1; // 24 Interrupt enable register update OK clear flag
uint32_t reserve3 : 7; // 25 Reserve
} reg_lptim_icr_intput_t;
typedef struct {
uint32_t cc1if : 1; // 0 Capture/compare 1 clear flag
uint32_t arrmie : 1; // 1 Autoreload match Interrupt Enable
uint32_t exttrigie : 1; // 2 External trigger valid edge Interrupt Enable
uint32_t cmp1okie : 1; // 3 Compare register 1 update OK Interrupt Enable
uint32_t arrokie : 1; // 4 Autoreload register update OK Interrupt Enable
uint32_t upie : 1; // 5 Direction change to UP Interrupt Enable
uint32_t downie : 1; // 6 Direction change to down Interrupt Enable
uint32_t ueie : 1; // 7 Update event interrupt enable
uint32_t repokie : 1; // 8 REPOKIE
uint32_t cc2ie : 1; // 9 Capture/compare 2 interrupt enable
uint32_t reserve0 : 9; // 10 Reserve
uint32_t cmp2okie : 1; // 19 Compare register 2 update OK interrupt enable
uint32_t reserve1 : 3; // 20 Reserve
uint32_t uede : 1; // 23 Update event DMA request enable
uint32_t reserve2 : 8; // 24 Reserve
} reg_lptim_dier_output_t;
typedef struct {
uint32_t cc1if : 1; // 0 Capture/compare 1 clear flag
uint32_t arrmie : 1; // 1 Autoreload match Interrupt Enable
uint32_t exttrigie : 1; // 2 External trigger valid edge Interrupt Enable
uint32_t reserve0 : 1; // 3 Reserve
uint32_t arrokie : 1; // 4 Autoreload register update OK Interrupt Enable
uint32_t upie : 1; // 5 Direction change to UP Interrupt Enable
uint32_t downie : 1; // 6 Direction change to down Interrupt Enable
uint32_t ueie : 1; // 7 Update event interrupt enable
uint32_t repokie : 1; // 8 REPOKIE
uint32_t cc2ie : 1; // 9 Capture/compare 2 interrupt enable
uint32_t reserve1 : 2; // 10 Reserve
uint32_t cc1oie : 1; // 12 Capture/compare 1 over-capture interrupt enable
uint32_t cc2oie : 1; // 13 Capture/compare 2 over-capture interrupt enable
uint32_t reserve2 : 2; // 14 Reserve
uint32_t cc1de : 1; // 16 Capture/compare 1 DMA request enable
uint32_t reserve3 : 8; // 17 Reserve
uint32_t cc2de : 1; // 25 Capture/compare 2 DMA request enable
uint32_t reserve4 : 6; // 26 Reserve
} reg_lptim_dier_intput_t;
typedef struct {
uint32_t cksel : 1; // 0 Clock selector
uint32_t ckpol : 2; // 1 Clock Polarity
uint32_t ckflt : 2; // 3 Configurable digital filter for external clock
uint32_t reserve0 : 1; // 5 Reserve
uint32_t trgflt : 2; // 6 Configurable digital filter for trigger
uint32_t reserve1 : 1; // 8 Reserve
uint32_t presc : 3; // 9 Clock prescaler
uint32_t reserve2 : 1; // 12 Reserve
uint32_t trigsel : 3; // 13 Trigger selector
uint32_t reserve3 : 1; // 16 Reserve
uint32_t trigen : 2; // 17 Trigger enable and polarity
uint32_t timout : 1; // 19 Timeout enable
uint32_t wave : 1; // 20 Waveform shape
uint32_t wavpol : 1; // 21 Waveform shape polarity
uint32_t preload : 1; // 22 Registers update mode
uint32_t countmode : 1; // 23 counter mode enabled
uint32_t enc : 1; // 24 Encoder mode enable
uint32_t reserve4 : 7; // 25 Reserve
} reg_lptim_cfgr_t;
typedef struct {
uint32_t enable : 1; // 0 LPTIM Enable
uint32_t sngstrt : 1; // 1 LPTIM start in single mode
uint32_t cntstrt : 1; // 2 Timer start in continuous mode
uint32_t countrst : 1; // 3 Counter reset
uint32_t rstare : 1; // 4 Reset after read enable
uint32_t reserve0 : 27; // 5 Reserve
} reg_lptim_cr_t;
typedef struct {
uint32_t ccr1 : 16; // 0 Capture/compare 1 value
uint32_t reserve0 : 16; // 16 Reserve
} reg_lptim_ccr1_t;
typedef struct {
uint32_t arr : 16; // 0 Auto reload value
uint32_t reserve0 : 16; // 16 Reserve
} reg_lptim_arr_t;
typedef struct {
uint32_t cnt : 16; // 0 Counter value
uint32_t reserve0 : 16; // 16 Reserve
} reg_lptim_cnt_t;
typedef struct {
uint32_t in1sel : 2; // 0 LPTIM input 1 selection
uint32_t reserve0 : 2; // 2 Reserve
uint32_t in2sel : 2; // 4 LPTIM input 2 selection
uint32_t reserve1 : 10; // 6 Reserve
uint32_t ic1sel : 2; // 16 LPTIM input capture 1 selection
uint32_t reserve2 : 2; // 18 Reserve
uint32_t ic2sel : 2; // 20 LPTIM input capture 2 selection
uint32_t reserve3 : 10; // 22 Reserve
} reg_lptim_cfgr2_t;
typedef struct {
uint32_t rep : 8; // 0 Repetition register value
uint32_t reserve0 : 24; // 8 Reserve
} reg_lptim_rcr_t;
typedef struct {
uint32_t cc1sel : 1; // 0 Capture/compare 1 selection
uint32_t cc1e : 1; // 1 Capture/compare 1 output enable
uint32_t cc1p : 2; // 2 Capture/compare 1 output polarity
uint32_t reserve0 : 4; // 4 Reserve
uint32_t ic1psc : 2; // 8 Input capture 1 prescaler
uint32_t reserve1 : 2; // 10 Reserve
uint32_t ic1f : 2; // 12 Input capture 1 filter
uint32_t reserve2 : 2; // 14 Reserve
uint32_t cc2sel : 1; // 16 Capture/compare 2 selection
uint32_t cc2e : 1; // 17 Capture/compare 2 output enable
uint32_t cc2p : 2; // 18 Capture/compare 2 output polarity
uint32_t reserve3 : 4; // 20 Reserve
uint32_t ic2psc : 2; // 24 Input capture 2 prescaler
uint32_t reserve4 : 2; // 26 Reserve
uint32_t ic2f : 2; // 28 Input capture 2 filter
uint32_t reserve5 : 2; // 30 Reserve
} reg_lptim_ccmr1_t;
typedef struct {
uint32_t ccr2 : 16; // 0 Capture/compare 2 value
uint32_t reserve0 : 16; // 16 Reserve
} reg_lptim_ccr2_t;
typedef struct {
uint32_t cfg1 : 4; // 0 peripheral hardware configuration 1
uint32_t reserve0 : 4; // 4 Reserve
uint32_t cfg2 : 8; // 8 peripheral hardware configuration 2
uint32_t cfg3 : 1; // 16 peripheral hardware configuration 3
uint32_t reserve1 : 15; // 17 Reserve
} reg_lptim_hwcfgr2_t;
typedef struct {
uint32_t cfg1 : 8; // 0 peripheral hardware configuration 1
uint32_t cfg2 : 8; // 8 peripheral hardware configuration 2
uint32_t cfg3 : 4; // 16 peripheral hardware configuration 3
uint32_t reserve0 : 4; // 20 Reserve
uint32_t cfg4 : 8; // 24 peripheral hardware configuration 4
} reg_lptim_hwcfgr1_t;
typedef struct {
volatile reg_lptim_isr_output_t isr_output;
volatile uint32_t reserve0[-1];
volatile reg_lptim_isr_intput_t isr_intput;
volatile reg_lptim_icr_output_t icr_output;
volatile uint32_t reserve1[-1];
volatile reg_lptim_icr_intput_t icr_intput;
volatile reg_lptim_dier_output_t dier_output;
volatile uint32_t reserve2[-1];
volatile reg_lptim_dier_intput_t dier_intput;
volatile reg_lptim_cfgr_t cfgr;
volatile reg_lptim_cr_t cr;
volatile reg_lptim_ccr1_t ccr1;
volatile reg_lptim_arr_t arr;
volatile reg_lptim_cnt_t cnt;
volatile uint32_t reserve3[1];
volatile reg_lptim_cfgr2_t cfgr2;
volatile reg_lptim_rcr_t rcr;
volatile reg_lptim_ccmr1_t ccmr1;
volatile uint32_t reserve4[1];
volatile reg_lptim_ccr2_t ccr2;
volatile uint32_t reserve5[237];
volatile reg_lptim_hwcfgr2_t hwcfgr2;
volatile reg_lptim_hwcfgr1_t hwcfgr1;
} reg_lptim_t;