/* ********************************************************************** *name: IE_stm32_timer.h *author: Samuel Igwe *date: 08/27/2013 *description: Igbo Embedded stm32_timer header ********************************************************************** */ #ifndef IE_STM32_TIMER #define IE_STM32_TIMER #define PTR_STM32_TIM2_BASE 0x40000000 #define PTR_STM32_TIM3_BASE 0x40000400 #define PTR_STM32_TIM4_BASE 0x40000800 #define PTR_STM32_TIM5_BASE 0x40000c00 /* ********************************************************************** *timer #defines *basic timers 6 and 7 arent supported on the stm32f103. but general *purpose timers 2 through 5 are supported * *these timers are driven off a 36Mhz clock (sysclk / 2) which is the *maximum on the APB1 bus ********************************************************************** ********************************************************************** *control register 1 ********************************************************************** */ #define PTR_STM32_TIM2_CR1 (volatile unsigned int *)(PTR_STM32_TIM2_BASE + 0x0) #define PTR_STM32_TIM3_CR1 (volatile unsigned int *)(PTR_STM32_TIM3_BASE + 0x0) #define PTR_STM32_TIM4_CR1 (volatile unsigned int *)(PTR_STM32_TIM4_BASE + 0x0) #define PTR_STM32_TIM5_CR1 (volatile unsigned int *)(PTR_STM32_TIM5_BASE + 0x0) #define STM32_TIM_CR1_CKD_MASK (0x3 << 8) #define STM32_TIM_CR1_CKD_TCK (0 << 8) #define STM32_TIM_CR1_CKD_2TCK (1 << 8) #define STM32_TIM_CR1_CKD_4TCK (2 << 8) #define STM32_TIM_CR1_ARPE (1 << 7) #define STM32_TIM_CR1_CMS_MASK (0x3 << 5) #define STM32_TIM_CR1_CMS_EDGE (0 << 5) #define STM32_TIM_CR1_CMS_MODE1 (1 << 5) #define STM32_TIM_CR1_CMS_MODE2 (2 << 5) #define STM32_TIM_CR1_CMS_MODE3 (3 << 5) #define STM32_TIM_CR1_DIR_MASK (1 << 4) #define STM32_TIM_CR1_DIR_UP (0 << 4) #define STM32_TIM_CR1_DIR_DOWN (1 << 4) #define STM32_TIM_CR1_OPM (1 << 3) #define STM32_TIM_CR1_URS (1 << 2) #define STM32_TIM_CR1_UDIS (1 << 1) #define STM32_TIM_CR1_CEN (1 << 0) /* ********************************************************************** *control register 2 ********************************************************************** */ #define PTR_STM32_TIM2_CR2 (volatile unsigned int *)(PTR_STM32_TIM2_BASE + 0x4) #define PTR_STM32_TIM3_CR2 (volatile unsigned int *)(PTR_STM32_TIM3_BASE + 0x4) #define PTR_STM32_TIM4_CR2 (volatile unsigned int *)(PTR_STM32_TIM4_BASE + 0x4) #define PTR_STM32_TIM5_CR2 (volatile unsigned int *)(PTR_STM32_TIM5_BASE + 0x4) #define STM32_TIM_CR2_MMS_TI1S (0x1 << 7) #define STM32_TIM_CR2_MMS_MASK (0x7 << 4) #define STM32_TIM_CR2_MMS_RESET (0x0 << 4) #define STM32_TIM_CR2_MMS_ENABLE (0x1 << 4) #define STM32_TIM_CR2_MMS_UPDATE (0x2 << 4) #define STM32_TIM_CR2_MMS_PULSE (0x3 << 4) #define STM32_TIM_CR2_CCDS (0x1 << 3) /* ********************************************************************** *dma interrupt enable register ********************************************************************** */ #define PTR_STM32_TIM2_DIER (volatile unsigned int *)(PTR_STM32_TIM2_BASE + 0xc) #define PTR_STM32_TIM3_DIER (volatile unsigned int *)(PTR_STM32_TIM3_BASE + 0xc) #define PTR_STM32_TIM4_DIER (volatile unsigned int *)(PTR_STM32_TIM4_BASE + 0xc) #define PTR_STM32_TIM5_DIER (volatile unsigned int *)(PTR_STM32_TIM5_BASE + 0xc) #define STM32_TIM_DIER_UDE (1 << 8) #define STM32_TIM_DIER_CC4IE (1 << 4) #define STM32_TIM_DIER_CC3IE (1 << 3) #define STM32_TIM_DIER_CC2IE (1 << 2) #define STM32_TIM_DIER_CC1IE (1 << 1) #define STM32_TIM_DIER_UIE (1 << 0) /* ********************************************************************** *status register ********************************************************************** */ #define PTR_STM32_TIM2_SR (volatile unsigned int *)(PTR_STM32_TIM2_BASE + 0x10) #define PTR_STM32_TIM3_SR (volatile unsigned int *)(PTR_STM32_TIM3_BASE + 0x10) #define PTR_STM32_TIM4_SR (volatile unsigned int *)(PTR_STM32_TIM4_BASE + 0x10) #define PTR_STM32_TIM5_SR (volatile unsigned int *)(PTR_STM32_TIM5_BASE + 0x10) #define STM32_TIM_SR_CC4IF (1 << 4) #define STM32_TIM_SR_CC3IF (1 << 3) #define STM32_TIM_SR_CC2IF (1 << 2) #define STM32_TIM_SR_CC1IF (1 << 1) #define STM32_TIM_SR_UIF (1 << 0) /* ********************************************************************** *event generation register ********************************************************************** */ #define PTR_STM32_TIM2_EGR (volatile unsigned int *)(PTR_STM32_TIM2_BASE + 0x14) #define PTR_STM32_TIM3_EGR (volatile unsigned int *)(PTR_STM32_TIM3_BASE + 0x14) #define PTR_STM32_TIM4_EGR (volatile unsigned int *)(PTR_STM32_TIM4_BASE + 0x14) #define PTR_STM32_TIM5_EGR (volatile unsigned int *)(PTR_STM32_TIM5_BASE + 0x14) #define STM32_TIM_EGR_CC4G (1 << 4) #define STM32_TIM_EGR_CC3G (1 << 3) #define STM32_TIM_EGR_CC2G (1 << 2) #define STM32_TIM_EGR_CC1G (1 << 1) #define STM32_TIM_EGR_UG (1 << 0) /* ********************************************************************** *capture/compare enable register ********************************************************************** */ #define PTR_STM32_TIM2_CCER (volatile unsigned int *)(PTR_STM32_TIM2_BASE + 0x20) #define PTR_STM32_TIM3_CCER (volatile unsigned int *)(PTR_STM32_TIM3_BASE + 0x20) #define PTR_STM32_TIM4_CCER (volatile unsigned int *)(PTR_STM32_TIM4_BASE + 0x20) #define PTR_STM32_TIM5_CCER (volatile unsigned int *)(PTR_STM32_TIM5_BASE + 0x20) #define STM32_TIM_CCER_CC4E (1 << 12) #define STM32_TIM_CCER_CC3E (1 << 8) #define STM32_TIM_CCER_CC2E (1 << 4) #define STM32_TIM_CCER_CC1E (1 << 0) /* ********************************************************************** *counter register ********************************************************************** */ #define PTR_STM32_TIM2_CNT (volatile unsigned int *)(PTR_STM32_TIM2_BASE + 0x24) #define PTR_STM32_TIM3_CNT (volatile unsigned int *)(PTR_STM32_TIM3_BASE + 0x24) #define PTR_STM32_TIM4_CNT (volatile unsigned int *)(PTR_STM32_TIM4_BASE + 0x24) #define PTR_STM32_TIM5_CNT (volatile unsigned int *)(PTR_STM32_TIM5_BASE + 0x24) /* ********************************************************************** *prescaler register ********************************************************************** */ #define PTR_STM32_TIM2_PSC (volatile unsigned int *)(PTR_STM32_TIM2_BASE + 0x28) #define PTR_STM32_TIM3_PSC (volatile unsigned int *)(PTR_STM32_TIM3_BASE + 0x28) #define PTR_STM32_TIM4_PSC (volatile unsigned int *)(PTR_STM32_TIM4_BASE + 0x28) #define PTR_STM32_TIM5_PSC (volatile unsigned int *)(PTR_STM32_TIM5_BASE + 0x28) /* ********************************************************************** *auto reload register ********************************************************************** */ #define PTR_STM32_TIM2_ARR (volatile unsigned int *)(PTR_STM32_TIM2_BASE + 0x2c) #define PTR_STM32_TIM3_ARR (volatile unsigned int *)(PTR_STM32_TIM3_BASE + 0x2c) #define PTR_STM32_TIM4_ARR (volatile unsigned int *)(PTR_STM32_TIM4_BASE + 0x2c) #define PTR_STM32_TIM5_ARR (volatile unsigned int *)(PTR_STM32_TIM5_BASE + 0x2c) /* ********************************************************************** *capture/compare register 1 ********************************************************************** */ #define PTR_STM32_TIM2_CCR1 (volatile unsigned int *)(PTR_STM32_TIM2_BASE + 0x34) #define PTR_STM32_TIM3_CCR1 (volatile unsigned int *)(PTR_STM32_TIM3_BASE + 0x34) #define PTR_STM32_TIM4_CCR1 (volatile unsigned int *)(PTR_STM32_TIM4_BASE + 0x34) #define PTR_STM32_TIM5_CCR1 (volatile unsigned int *)(PTR_STM32_TIM5_BASE + 0x34) /* ********************************************************************** *capture/compare register 2 ********************************************************************** */ #define PTR_STM32_TIM2_CCR2 (volatile unsigned int *)(PTR_STM32_TIM2_BASE + 0x38) #define PTR_STM32_TIM3_CCR2 (volatile unsigned int *)(PTR_STM32_TIM3_BASE + 0x38) #define PTR_STM32_TIM4_CCR2 (volatile unsigned int *)(PTR_STM32_TIM4_BASE + 0x38) #define PTR_STM32_TIM5_CCR2 (volatile unsigned int *)(PTR_STM32_TIM5_BASE + 0x38) /* ********************************************************************** *capture/compare register 3 ********************************************************************** */ #define PTR_STM32_TIM2_CCR3 (volatile unsigned int *)(PTR_STM32_TIM2_BASE + 0x3c) #define PTR_STM32_TIM3_CCR3 (volatile unsigned int *)(PTR_STM32_TIM3_BASE + 0x3c) #define PTR_STM32_TIM4_CCR3 (volatile unsigned int *)(PTR_STM32_TIM4_BASE + 0x3c) #define PTR_STM32_TIM5_CCR3 (volatile unsigned int *)(PTR_STM32_TIM5_BASE + 0x3c) /* ********************************************************************** *capture/compare register 4 ********************************************************************** */ #define PTR_STM32_TIM2_CCR4 (volatile unsigned int *)(PTR_STM32_TIM2_BASE + 0x40) #define PTR_STM32_TIM3_CCR4 (volatile unsigned int *)(PTR_STM32_TIM3_BASE + 0x40) #define PTR_STM32_TIM4_CCR4 (volatile unsigned int *)(PTR_STM32_TIM4_BASE + 0x40) #define PTR_STM32_TIM5_CCR4 (volatile unsigned int *)(PTR_STM32_TIM5_BASE + 0x40) #endif
Monday, August 26, 2013
IE_stm32_timer.h
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment