Files
brnQuanFW/external/CMSIS_5/CMSIS/DoxyGen/SVD/src/ARM_ExampleT0Struct.h
2023-09-09 08:03:56 +01:00

69 lines
5.3 KiB
C

/* ================ TIMER0 ================ */
typedef struct { /*!< TIMER0 Structure */
union {
__IO uint32_t CR; /*!< Control Register */
struct {
__IO uint32_t EN : 1; /*!< Enable */
__O uint32_t RST : 1; /*!< Reset Timer */
__IO uint32_t CNT : 2; /*!< Counting direction */
__IO uint32_t MODE : 3; /*!< Operation Mode */
__IO uint32_t PSC : 1; /*!< Use Prescaler */
__IO uint32_t CNTSRC : 4; /*!< Timer / Counter Source Divider */
__IO uint32_t CAPSRC : 4; /*!< Timer / Counter Capture Source */
__IO uint32_t CAPEDGE : 2; /*!< Capture Edge, select which Edge should result in a counter increment
or decrement */
uint32_t : 2;
__IO uint32_t TRGEXT : 2; /*!< Triggers an other Peripheral */
uint32_t : 2;
__IO uint32_t RELOAD : 2; /*!< Select RELOAD Register n to reload Timer on condition */
__IO uint32_t IDR : 2; /*!< Selects, if Reload Register number is incremented, decremented
or not modified */
uint32_t : 3;
__IO uint32_t S : 1; /*!< Starts and Stops the Timer / Counter */
} CR_b; /*!< BitSize */
};
union {
__IO uint16_t SR; /*!< Status Register */
struct {
__I uint16_t RUN : 1; /*!< Shows if Timer is running or not */
uint16_t : 7;
__IO uint16_t MATCH : 1; /*!< Shows if the MATCH was hit */
__IO uint16_t UN : 1; /*!< Shows if an underflow occured. This flag is sticky */
__IO uint16_t OV : 1; /*!< Shows if an overflow occured. This flag is sticky */
uint16_t : 1;
__I uint16_t RST : 1; /*!< Shows if Timer is in RESET state */
uint16_t : 1;
__I uint16_t RELOAD : 2; /*!< Shows the currently active RELOAD Register */
} SR_b; /*!< BitSize */
};
__I uint16_t RESERVED0[5];
union {
__IO uint16_t INT; /*!< Interrupt Register */
struct {
__IO uint16_t EN : 1; /*!< Interrupt Enable */
uint16_t : 3;
__IO uint16_t MODE : 3; /*!< Interrupt Mode, selects on which condition the Timer should
generate an Interrupt */
} INT_b; /*!< BitSize */
};
__I uint16_t RESERVED1[7];
__IO uint32_t COUNT; /*!< The Counter Register reflects the actual Value of the Timer/Counter */
__IO uint32_t MATCH; /*!< The Match Register stores the compare Value for the MATCH condition */
union {
__O uint32_t PRESCALE_WR; /*!< The Prescale Register stores the Value for the prescaler. The
cont event gets divided by this value */
__I uint32_t PRESCALE_RD; /*!< The Prescale Register stores the Value for the prescaler. The
cont event gets divided by this value */
};
__I uint32_t RESERVED2[9];
__IO uint32_t RELOAD[4]; /*!< The Reload Register stores the Value the COUNT Register gets
reloaded on a when a condition was met. */
} TIMER0_Type;