Files
m241Neelima/vxworks-6.9/target/h/hwif/timer/vxbStm32fTimer.h
T
2026-07-30 11:19:44 +05:30

135 lines
5.7 KiB
C

/* vxbStm32fTimer.h - vxbus STM32F20x/STM32F21x timer header file */
/*
* Copyright (c) 2012 Wind River Systems, Inc.
*
* The right to copy, distribute or otherwise make use of this software
* may be licensed only pursuant to the terms of an applicable Wind River
* license agreement.
*/
/*
modification history
--------------------
01a,26apr12,rec written.
*/
/*
DESCRIPTION
This file provides the ARM Cortex-M STM32F20x/STM32F21x General Purpose timer
specific definitions
*/
#ifndef __INCvxbStm32fTimerh
#define __INCvxbStm32fTimerh
#ifdef __cplusplus
extern "C" {
#endif
#define STM32F_TIMER_NAME "vxbStm32fTimer"
/* Control Register 1 */
#define STM32FTIM_CR1 0x0000 /* Register offset */
#define STM32FTIM_CR1CEN 0x00000001 /* Counter enable */
#define STM32FTIM_CR1UDIS 0x00000002 /* Update disable */
#define STM32FTIM_CR1URS 0x00000004 /* Update request src, 1=overflow only*/
#define STM32FTIM_CR1OPM 0x00000008 /* One pules mode */
#define STM32FTIM_CR1DIR 0x00000010 /* Direction, 1=down */
#define STM32FTIM_CR1CMSMSK 0x00000060 /* Center-aligned mask (leave zero) */
#define STM32FTIM_CR1ARPE 0x00000080 /* Auto-reload preload enable */
#define STM32FTIM_CR1CKDMSK 0x00000300 /* Clock division mask */
#define STM32FTIM_CR1CKD1X 0x00000000 /* Clock division 1x */
#define STM32FTIM_CR1CKD2X 0x00000100 /* Clock division 2x */
#define STM32FTIM_CR1CKD4x 0x00000200 /* Clock division 4x */
/* Control Register 2 */
#define STM32FTIM_CR2 0x0004 /* Register offset */
#define STM32FTIM_CR2CCDS 0x00000008 /* Capture/compare DMA selection */
#define STM32FTIM_CR2MMSMSK 0x00000070 /* Master mode selection mask */
#define STM32FTIM_CR2TI1S 0x00000080 /* TI1 selection */
/* Slave Mode Control Register */
#define STM32FTIM_SMCR 0x0008 /* Register offset */
#define STM32FTIM_SMCRSMSMSK 0x00000003 /* Slave mode select mask */
#define STM32FTIM_SMCRTSMSK 0x00000070 /* Trigger selection mask */
#define STM32FTIM_SMCRMSMMSK 0x00000080 /* Master/slave mode */
#define STM32FTIM_SMCRETFMSK 0x00000F00 /* External trigger filter mask */
#define STM32FTIM_SMCRETPSOFF 0x00000000 /* External trigger prescaler OFF */
#define STM32FTIM_SMCRETPS2 0x00001000 /* External trigger prescale /2 */
#define STM32FTIM_SMCRETPS4 0x00002000 /* External trigger prescale /4 */
#define STM32FTIM_SMCRETPS8 0x00003000 /* External trigger prescale /8 */
#define STM32FTIM_SMCRECE 0x00004000 /* External clock enable */
#define STM32FTIM_SMCRETP 0x00008000 /* External trigger polarity 1=low>hi */
/* DMA/Interrupt Enable Register */
#define STM32FTIM_DIER 0x0000C /* Register offset */
#define STM32FTIM_DIERUIE 0x00000001 /* Update interrupt enable */
#define STM32FTIM_DIERCC1IE 0x00000002 /* Capture/Compare 1 interrupt enable */
#define STM32FTIM_DIERCC2IE 0x00000004 /* Capture/Compare 2 interrupt enable */
#define STM32FTIM_DIERCC3IE 0x00000008 /* Capture/Compare 3 interrupt enable */
#define STM32FTIM_DIERCC4IE 0x00000010 /* Capture/Compare 4 interrupt enable */
#define STM32FTIM_DIERTIE 0x00000040 /* Trigger interrupt enable */
#define STM32FTIM_DIERUDE 0x00000100 /* Update DMA request enble */
#define STM32FTIM_DIERCC1DE 0x00000200 /* Capture/Compare 1 DMA req enable */
#define STM32FTIM_DIERCC2DE 0x00000400 /* Capture/Compare 2 DMA req enable */
#define STM32FTIM_DIERCC3DE 0x00000800 /* Capture/Compare 3 DMA req enable */
#define STM32FTIM_DIERCC4DE 0x00001000 /* Capture/Compare 4 DMA req enable */
#define STM32FTIM_DIERTDE 0x00004000 /* Trigger DMA request enable */
/* Timer Status Register */
#define STM32FTIM_SR 0x0010 /* Register offset */
#define STM32FTIM_SRUIF 0x00000001 /* Update interrupt flag */
#define STM32FTIM_SRCC1IF 0x00000002 /* Capture/compare 1 interrupt flag */
#define STM32FTIM_SRCC2IF 0x00000004 /* Capture/compare 2 interrupt flag */
#define STM32FTIM_SRCC3IF 0x00000008 /* Capture/compare 3 interrupt flag */
#define STM32FTIM_SRCC4IF 0x00000010 /* Capture/compare 4 interrupt flag */
#define STM32FTIM_SRTIF 0x00000040 /* Trigger interrupt flag */
#define STM32FTIM_SRCC1OF 0x00000200 /* Capture/compare 1 overcapture flag */
#define STM32FTIM_SRCC2OF 0x00000400 /* Capture/compare 2 overcapture flag */
#define STM32FTIM_SRCC3OF 0x00000800 /* Capture/compare 3 overcapture flag */
#define STM32FTIM_SRCC4OF 0x00001000 /* Capture/compare 4 overcapture flag */
/* Event Generation Register */
#define STM32FTIM_EGR 0x0014 /* Register offset */
#define STM32FTIM_EGRUG 0x00000001 /* Update generation */
#define STM32FTIM_EGRCC1G 0x00000002 /* Capture/comare 1 generation */
#define STM32FTIM_EGRCC2G 0x00000004 /* Capture/comare 2 generation */
#define STM32FTIM_EGRCC3G 0x00000008 /* Capture/comare 3 generation */
#define STM32FTIM_EGRCC4G 0x00000010 /* Capture/comare 4 generation */
#define STM32FTIM_EGRTG 0x00000040 /* Trigger generation */
/* Timer Count Register (32-bit) */
#define STM32FTIM_CNT 0x0024 /* Register offset */
/* Prescaler Register */
#define STM32FTIM_PSC 0x0028 /* Register offset */
#define STM32FTIM_PSCMSK 0x0000FFFF /* Prescaler mask */
/* Auto-reload Register (32-bits) */
#define STM32FTIM_ARR 0x002C /* Register offset */
/*
* The following registers are used in capture/compare mode only.
* This feature is unsupported.
*/
/* Capture Compare Mode Register 1 */
#define STM32FTIM_CCMR1 0x0018 /* Register offset */
/* Capture Compare Mode Register 2 */
#define STM32FTIM_CCMR2 0x001C /* Register offset */
/* Capture Compare Mode Interrupt Enable Register */
#define STM32FTIM_CCER 0x0020 /* Register offset */
#ifdef __cplusplus
}
#endif
#endif /* __INCvxbStm32fTimerh */