You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
492 lines
31 KiB
492 lines
31 KiB
#pragma once
|
|
#include "common.h"
|
|
|
|
// AUTHOR : Ondrej Hruska
|
|
// DATE : 12/2015
|
|
// DESCR : Control registers and bit masks for TIM (timers)
|
|
|
|
|
|
//****************************************************************************
|
|
//*
|
|
//* REGISTERS
|
|
//*
|
|
//****************************************************************************
|
|
|
|
// offsets
|
|
#define TIM_CR1_offs 0x00 // TIM control register 1
|
|
#define TIM_CR2_offs 0x04 // TIM control register 2
|
|
#define TIM_SMCR_offs 0x08 // TIM slave mode control register
|
|
#define TIM_DIER_offs 0x0C // TIM DMA/interrupt enable register
|
|
#define TIM_SR_offs 0x10 // TIM status register
|
|
#define TIM_EGR_offs 0x14 // TIM event generation register
|
|
#define TIM_CCMR1_offs 0x18 // TIM capture/compare mode register 1
|
|
#define TIM_CCMR2_offs 0x1C // TIM capture/compare mode register 2
|
|
#define TIM_CCER_offs 0x20 // TIM capture/compare enable register
|
|
#define TIM_CNT_offs 0x24 // TIM counter register
|
|
#define TIM_PSC_offs 0x28 // TIM prescaler
|
|
#define TIM_ARR_offs 0x2C // TIM auto-reload register
|
|
#define TIM_CCR1_offs 0x34 // TIM capture/compare register 1
|
|
#define TIM_CCR2_offs 0x38 // TIM capture/compare register 2
|
|
#define TIM_CCR3_offs 0x3C // TIM capture/compare register 3
|
|
#define TIM_CCR4_offs 0x40 // TIM capture/compare register 4
|
|
#define TIM_DCR_offs 0x48 // TIM DMA control register
|
|
#define TIM_DMAR_offs 0x4C // TIM DMA address for full transfer
|
|
#define TIM_OR_offs 0x50 // TIM option register
|
|
|
|
|
|
|
|
// Timer 2
|
|
|
|
#define TIM2_CR1 MMIO32(TIM2 + 0x00) // TIM control register 1,
|
|
#define TIM2_CR2 MMIO32(TIM2 + 0x04) // TIM control register 2,
|
|
#define TIM2_SMCR MMIO32(TIM2 + 0x08) // TIM slave mode control register,
|
|
#define TIM2_DIER MMIO32(TIM2 + 0x0C) // TIM DMA/interrupt enable register,
|
|
#define TIM2_SR MMIO32(TIM2 + 0x10) // TIM status register,
|
|
#define TIM2_EGR MMIO32(TIM2 + 0x14) // TIM event generation register,
|
|
#define TIM2_CCMR1 MMIO32(TIM2 + 0x18) // TIM capture/compare mode register 1,
|
|
#define TIM2_CCMR2 MMIO32(TIM2 + 0x1C) // TIM capture/compare mode register 2,
|
|
#define TIM2_CCER MMIO32(TIM2 + 0x20) // TIM capture/compare enable register,
|
|
#define TIM2_CNT MMIO32(TIM2 + 0x24) // TIM counter register,
|
|
#define TIM2_PSC MMIO32(TIM2 + 0x28) // TIM prescaler,
|
|
#define TIM2_ARR MMIO32(TIM2 + 0x2C) // TIM auto-reload register,
|
|
#define TIM2_CCR1 MMIO32(TIM2 + 0x34) // TIM capture/compare register 1,
|
|
#define TIM2_CCR2 MMIO32(TIM2 + 0x38) // TIM capture/compare register 2,
|
|
#define TIM2_CCR3 MMIO32(TIM2 + 0x3C) // TIM capture/compare register 3,
|
|
#define TIM2_CCR4 MMIO32(TIM2 + 0x40) // TIM capture/compare register 4,
|
|
#define TIM2_DCR MMIO32(TIM2 + 0x48) // TIM DMA control register,
|
|
#define TIM2_DMAR MMIO32(TIM2 + 0x4C) // TIM DMA address for full transfer,
|
|
#define TIM2_OR MMIO32(TIM2 + 0x50) // TIM option register,
|
|
|
|
// Timer 3
|
|
|
|
#define TIM3_CR1 MMIO32(TIM3 + 0x00) // TIM control register 1,
|
|
#define TIM3_CR2 MMIO32(TIM3 + 0x04) // TIM control register 2,
|
|
#define TIM3_SMCR MMIO32(TIM3 + 0x08) // TIM slave mode control register,
|
|
#define TIM3_DIER MMIO32(TIM3 + 0x0C) // TIM DMA/interrupt enable register,
|
|
#define TIM3_SR MMIO32(TIM3 + 0x10) // TIM status register,
|
|
#define TIM3_EGR MMIO32(TIM3 + 0x14) // TIM event generation register,
|
|
#define TIM3_CCMR1 MMIO32(TIM3 + 0x18) // TIM capture/compare mode register 1,
|
|
#define TIM3_CCMR2 MMIO32(TIM3 + 0x1C) // TIM capture/compare mode register 2,
|
|
#define TIM3_CCER MMIO32(TIM3 + 0x20) // TIM capture/compare enable register,
|
|
#define TIM3_CNT MMIO32(TIM3 + 0x24) // TIM counter register,
|
|
#define TIM3_PSC MMIO32(TIM3 + 0x28) // TIM prescaler,
|
|
#define TIM3_ARR MMIO32(TIM3 + 0x2C) // TIM auto-reload register,
|
|
#define TIM3_CCR1 MMIO32(TIM3 + 0x34) // TIM capture/compare register 1,
|
|
#define TIM3_CCR2 MMIO32(TIM3 + 0x38) // TIM capture/compare register 2,
|
|
#define TIM3_CCR3 MMIO32(TIM3 + 0x3C) // TIM capture/compare register 3,
|
|
#define TIM3_CCR4 MMIO32(TIM3 + 0x40) // TIM capture/compare register 4,
|
|
#define TIM3_DCR MMIO32(TIM3 + 0x48) // TIM DMA control register,
|
|
#define TIM3_DMAR MMIO32(TIM3 + 0x4C) // TIM DMA address for full transfer,
|
|
#define TIM3_OR MMIO32(TIM3 + 0x50) // TIM option register,
|
|
|
|
// Timer 4
|
|
|
|
#define TIM4_CR1 MMIO32(TIM4 + 0x00) // TIM control register 1,
|
|
#define TIM4_CR2 MMIO32(TIM4 + 0x04) // TIM control register 2,
|
|
#define TIM4_SMCR MMIO32(TIM4 + 0x08) // TIM slave mode control register,
|
|
#define TIM4_DIER MMIO32(TIM4 + 0x0C) // TIM DMA/interrupt enable register,
|
|
#define TIM4_SR MMIO32(TIM4 + 0x10) // TIM status register,
|
|
#define TIM4_EGR MMIO32(TIM4 + 0x14) // TIM event generation register,
|
|
#define TIM4_CCMR1 MMIO32(TIM4 + 0x18) // TIM capture/compare mode register 1,
|
|
#define TIM4_CCMR2 MMIO32(TIM4 + 0x1C) // TIM capture/compare mode register 2,
|
|
#define TIM4_CCER MMIO32(TIM4 + 0x20) // TIM capture/compare enable register,
|
|
#define TIM4_CNT MMIO32(TIM4 + 0x24) // TIM counter register,
|
|
#define TIM4_PSC MMIO32(TIM4 + 0x28) // TIM prescaler,
|
|
#define TIM4_ARR MMIO32(TIM4 + 0x2C) // TIM auto-reload register,
|
|
#define TIM4_CCR1 MMIO32(TIM4 + 0x34) // TIM capture/compare register 1,
|
|
#define TIM4_CCR2 MMIO32(TIM4 + 0x38) // TIM capture/compare register 2,
|
|
#define TIM4_CCR3 MMIO32(TIM4 + 0x3C) // TIM capture/compare register 3,
|
|
#define TIM4_CCR4 MMIO32(TIM4 + 0x40) // TIM capture/compare register 4,
|
|
#define TIM4_DCR MMIO32(TIM4 + 0x48) // TIM DMA control register,
|
|
#define TIM4_DMAR MMIO32(TIM4 + 0x4C) // TIM DMA address for full transfer,
|
|
#define TIM4_OR MMIO32(TIM4 + 0x50) // TIM option register,
|
|
|
|
// Timer 5
|
|
|
|
#define TIM5_CR1 MMIO32(TIM5 + 0x00) // TIM control register 1,
|
|
#define TIM5_CR2 MMIO32(TIM5 + 0x04) // TIM control register 2,
|
|
#define TIM5_SMCR MMIO32(TIM5 + 0x08) // TIM slave mode control register,
|
|
#define TIM5_DIER MMIO32(TIM5 + 0x0C) // TIM DMA/interrupt enable register,
|
|
#define TIM5_SR MMIO32(TIM5 + 0x10) // TIM status register,
|
|
#define TIM5_EGR MMIO32(TIM5 + 0x14) // TIM event generation register,
|
|
#define TIM5_CCMR1 MMIO32(TIM5 + 0x18) // TIM capture/compare mode register 1,
|
|
#define TIM5_CCMR2 MMIO32(TIM5 + 0x1C) // TIM capture/compare mode register 2,
|
|
#define TIM5_CCER MMIO32(TIM5 + 0x20) // TIM capture/compare enable register,
|
|
#define TIM5_CNT MMIO32(TIM5 + 0x24) // TIM counter register,
|
|
#define TIM5_PSC MMIO32(TIM5 + 0x28) // TIM prescaler,
|
|
#define TIM5_ARR MMIO32(TIM5 + 0x2C) // TIM auto-reload register,
|
|
#define TIM5_CCR1 MMIO32(TIM5 + 0x34) // TIM capture/compare register 1,
|
|
#define TIM5_CCR2 MMIO32(TIM5 + 0x38) // TIM capture/compare register 2,
|
|
#define TIM5_CCR3 MMIO32(TIM5 + 0x3C) // TIM capture/compare register 3,
|
|
#define TIM5_CCR4 MMIO32(TIM5 + 0x40) // TIM capture/compare register 4,
|
|
#define TIM5_DCR MMIO32(TIM5 + 0x48) // TIM DMA control register,
|
|
#define TIM5_DMAR MMIO32(TIM5 + 0x4C) // TIM DMA address for full transfer,
|
|
#define TIM5_OR MMIO32(TIM5 + 0x50) // TIM option register,
|
|
|
|
// Timer 6
|
|
|
|
#define TIM6_CR1 MMIO32(TIM6 + 0x00) // TIM control register 1,
|
|
#define TIM6_CR2 MMIO32(TIM6 + 0x04) // TIM control register 2,
|
|
#define TIM6_SMCR MMIO32(TIM6 + 0x08) // TIM slave mode control register,
|
|
#define TIM6_DIER MMIO32(TIM6 + 0x0C) // TIM DMA/interrupt enable register,
|
|
#define TIM6_SR MMIO32(TIM6 + 0x10) // TIM status register,
|
|
#define TIM6_EGR MMIO32(TIM6 + 0x14) // TIM event generation register,
|
|
#define TIM6_CCMR1 MMIO32(TIM6 + 0x18) // TIM capture/compare mode register 1,
|
|
#define TIM6_CCMR2 MMIO32(TIM6 + 0x1C) // TIM capture/compare mode register 2,
|
|
#define TIM6_CCER MMIO32(TIM6 + 0x20) // TIM capture/compare enable register,
|
|
#define TIM6_CNT MMIO32(TIM6 + 0x24) // TIM counter register,
|
|
#define TIM6_PSC MMIO32(TIM6 + 0x28) // TIM prescaler,
|
|
#define TIM6_ARR MMIO32(TIM6 + 0x2C) // TIM auto-reload register,
|
|
#define TIM6_CCR1 MMIO32(TIM6 + 0x34) // TIM capture/compare register 1,
|
|
#define TIM6_CCR2 MMIO32(TIM6 + 0x38) // TIM capture/compare register 2,
|
|
#define TIM6_CCR3 MMIO32(TIM6 + 0x3C) // TIM capture/compare register 3,
|
|
#define TIM6_CCR4 MMIO32(TIM6 + 0x40) // TIM capture/compare register 4,
|
|
#define TIM6_DCR MMIO32(TIM6 + 0x48) // TIM DMA control register,
|
|
#define TIM6_DMAR MMIO32(TIM6 + 0x4C) // TIM DMA address for full transfer,
|
|
#define TIM6_OR MMIO32(TIM6 + 0x50) // TIM option register,
|
|
|
|
// Timer 7
|
|
|
|
#define TIM7_CR1 MMIO32(TIM7 + 0x00) // TIM control register 1,
|
|
#define TIM7_CR2 MMIO32(TIM7 + 0x04) // TIM control register 2,
|
|
#define TIM7_SMCR MMIO32(TIM7 + 0x08) // TIM slave mode control register,
|
|
#define TIM7_DIER MMIO32(TIM7 + 0x0C) // TIM DMA/interrupt enable register,
|
|
#define TIM7_SR MMIO32(TIM7 + 0x10) // TIM status register,
|
|
#define TIM7_EGR MMIO32(TIM7 + 0x14) // TIM event generation register,
|
|
#define TIM7_CCMR1 MMIO32(TIM7 + 0x18) // TIM capture/compare mode register 1,
|
|
#define TIM7_CCMR2 MMIO32(TIM7 + 0x1C) // TIM capture/compare mode register 2,
|
|
#define TIM7_CCER MMIO32(TIM7 + 0x20) // TIM capture/compare enable register,
|
|
#define TIM7_CNT MMIO32(TIM7 + 0x24) // TIM counter register,
|
|
#define TIM7_PSC MMIO32(TIM7 + 0x28) // TIM prescaler,
|
|
#define TIM7_ARR MMIO32(TIM7 + 0x2C) // TIM auto-reload register,
|
|
#define TIM7_CCR1 MMIO32(TIM7 + 0x34) // TIM capture/compare register 1,
|
|
#define TIM7_CCR2 MMIO32(TIM7 + 0x38) // TIM capture/compare register 2,
|
|
#define TIM7_CCR3 MMIO32(TIM7 + 0x3C) // TIM capture/compare register 3,
|
|
#define TIM7_CCR4 MMIO32(TIM7 + 0x40) // TIM capture/compare register 4,
|
|
#define TIM7_DCR MMIO32(TIM7 + 0x48) // TIM DMA control register,
|
|
#define TIM7_DMAR MMIO32(TIM7 + 0x4C) // TIM DMA address for full transfer,
|
|
#define TIM7_OR MMIO32(TIM7 + 0x50) // TIM option register,
|
|
|
|
// Timer 9
|
|
|
|
#define TIM9_CR1 MMIO32(TIM9 + 0x00) // TIM control register 1,
|
|
#define TIM9_CR2 MMIO32(TIM9 + 0x04) // TIM control register 2,
|
|
#define TIM9_SMCR MMIO32(TIM9 + 0x08) // TIM slave mode control register,
|
|
#define TIM9_DIER MMIO32(TIM9 + 0x0C) // TIM DMA/interrupt enable register,
|
|
#define TIM9_SR MMIO32(TIM9 + 0x10) // TIM status register,
|
|
#define TIM9_EGR MMIO32(TIM9 + 0x14) // TIM event generation register,
|
|
#define TIM9_CCMR1 MMIO32(TIM9 + 0x18) // TIM capture/compare mode register 1,
|
|
#define TIM9_CCMR2 MMIO32(TIM9 + 0x1C) // TIM capture/compare mode register 2,
|
|
#define TIM9_CCER MMIO32(TIM9 + 0x20) // TIM capture/compare enable register,
|
|
#define TIM9_CNT MMIO32(TIM9 + 0x24) // TIM counter register,
|
|
#define TIM9_PSC MMIO32(TIM9 + 0x28) // TIM prescaler,
|
|
#define TIM9_ARR MMIO32(TIM9 + 0x2C) // TIM auto-reload register,
|
|
#define TIM9_CCR1 MMIO32(TIM9 + 0x34) // TIM capture/compare register 1,
|
|
#define TIM9_CCR2 MMIO32(TIM9 + 0x38) // TIM capture/compare register 2,
|
|
#define TIM9_CCR3 MMIO32(TIM9 + 0x3C) // TIM capture/compare register 3,
|
|
#define TIM9_CCR4 MMIO32(TIM9 + 0x40) // TIM capture/compare register 4,
|
|
#define TIM9_DCR MMIO32(TIM9 + 0x48) // TIM DMA control register,
|
|
#define TIM9_DMAR MMIO32(TIM9 + 0x4C) // TIM DMA address for full transfer,
|
|
#define TIM9_OR MMIO32(TIM9 + 0x50) // TIM option register,
|
|
|
|
// Timer 10
|
|
|
|
#define TIM10_CR1 MMIO32(TIM10 + 0x00) // TIM control register 1,
|
|
#define TIM10_CR2 MMIO32(TIM10 + 0x04) // TIM control register 2,
|
|
#define TIM10_SMCR MMIO32(TIM10 + 0x08) // TIM slave mode control register,
|
|
#define TIM10_DIER MMIO32(TIM10 + 0x0C) // TIM DMA/interrupt enable register,
|
|
#define TIM10_SR MMIO32(TIM10 + 0x10) // TIM status register,
|
|
#define TIM10_EGR MMIO32(TIM10 + 0x14) // TIM event generation register,
|
|
#define TIM10_CCMR1 MMIO32(TIM10 + 0x18) // TIM capture/compare mode register 1,
|
|
#define TIM10_CCMR2 MMIO32(TIM10 + 0x1C) // TIM capture/compare mode register 2,
|
|
#define TIM10_CCER MMIO32(TIM10 + 0x20) // TIM capture/compare enable register,
|
|
#define TIM10_CNT MMIO32(TIM10 + 0x24) // TIM counter register,
|
|
#define TIM10_PSC MMIO32(TIM10 + 0x28) // TIM prescaler,
|
|
#define TIM10_ARR MMIO32(TIM10 + 0x2C) // TIM auto-reload register,
|
|
#define TIM10_CCR1 MMIO32(TIM10 + 0x34) // TIM capture/compare register 1,
|
|
#define TIM10_CCR2 MMIO32(TIM10 + 0x38) // TIM capture/compare register 2,
|
|
#define TIM10_CCR3 MMIO32(TIM10 + 0x3C) // TIM capture/compare register 3,
|
|
#define TIM10_CCR4 MMIO32(TIM10 + 0x40) // TIM capture/compare register 4,
|
|
#define TIM10_DCR MMIO32(TIM10 + 0x48) // TIM DMA control register,
|
|
#define TIM10_DMAR MMIO32(TIM10 + 0x4C) // TIM DMA address for full transfer,
|
|
#define TIM10_OR MMIO32(TIM10 + 0x50) // TIM option register,
|
|
|
|
// Timer 11
|
|
|
|
#define TIM11_CR1 MMIO32(TIM11 + 0x00) // TIM control register 1,
|
|
#define TIM11_CR2 MMIO32(TIM11 + 0x04) // TIM control register 2,
|
|
#define TIM11_SMCR MMIO32(TIM11 + 0x08) // TIM slave mode control register,
|
|
#define TIM11_DIER MMIO32(TIM11 + 0x0C) // TIM DMA/interrupt enable register,
|
|
#define TIM11_SR MMIO32(TIM11 + 0x10) // TIM status register,
|
|
#define TIM11_EGR MMIO32(TIM11 + 0x14) // TIM event generation register,
|
|
#define TIM11_CCMR1 MMIO32(TIM11 + 0x18) // TIM capture/compare mode register 1,
|
|
#define TIM11_CCMR2 MMIO32(TIM11 + 0x1C) // TIM capture/compare mode register 2,
|
|
#define TIM11_CCER MMIO32(TIM11 + 0x20) // TIM capture/compare enable register,
|
|
#define TIM11_CNT MMIO32(TIM11 + 0x24) // TIM counter register,
|
|
#define TIM11_PSC MMIO32(TIM11 + 0x28) // TIM prescaler,
|
|
#define TIM11_ARR MMIO32(TIM11 + 0x2C) // TIM auto-reload register,
|
|
#define TIM11_CCR1 MMIO32(TIM11 + 0x34) // TIM capture/compare register 1,
|
|
#define TIM11_CCR2 MMIO32(TIM11 + 0x38) // TIM capture/compare register 2,
|
|
#define TIM11_CCR3 MMIO32(TIM11 + 0x3C) // TIM capture/compare register 3,
|
|
#define TIM11_CCR4 MMIO32(TIM11 + 0x40) // TIM capture/compare register 4,
|
|
#define TIM11_DCR MMIO32(TIM11 + 0x48) // TIM DMA control register,
|
|
#define TIM11_DMAR MMIO32(TIM11 + 0x4C) // TIM DMA address for full transfer,
|
|
#define TIM11_OR MMIO32(TIM11 + 0x50) // TIM option register,
|
|
|
|
|
|
|
|
//****************************************************************************
|
|
//*
|
|
//* BIT MASKS AND DEFINITIONS
|
|
//*
|
|
//****************************************************************************
|
|
|
|
|
|
//****************** Bit definition for TIM_CR1 register *******************
|
|
#define TIM_CR1_CEN 0x0001 // Counter enable
|
|
#define TIM_CR1_UDIS 0x0002 // Update disable
|
|
#define TIM_CR1_URS 0x0004 // Update request source
|
|
#define TIM_CR1_OPM 0x0008 // One pulse mode
|
|
#define TIM_CR1_DIR 0x0010 // Direction
|
|
|
|
#define TIM_CR1_CMS 0x0060 // CMS[1:0] bits (Center-aligned mode selection)
|
|
#define TIM_CR1_CMS_0 0x0020 // Bit 0
|
|
#define TIM_CR1_CMS_1 0x0040 // Bit 1
|
|
|
|
#define TIM_CR1_ARPE 0x0080 // Auto-reload preload enable
|
|
|
|
#define TIM_CR1_CKD 0x0300 // CKD[1:0] bits (clock division)
|
|
#define TIM_CR1_CKD_0 0x0100 // Bit 0
|
|
#define TIM_CR1_CKD_1 0x0200 // Bit 1
|
|
|
|
//****************** Bit definition for TIM_CR2 register *******************
|
|
#define TIM_CR2_CCDS 0x0008 // Capture/Compare DMA Selection
|
|
|
|
#define TIM_CR2_MMS 0x0070 // MMS[2:0] bits (Master Mode Selection)
|
|
#define TIM_CR2_MMS_0 0x0010 // Bit 0
|
|
#define TIM_CR2_MMS_1 0x0020 // Bit 1
|
|
#define TIM_CR2_MMS_2 0x0040 // Bit 2
|
|
|
|
#define TIM_CR2_TI1S 0x0080 // TI1 Selection
|
|
|
|
//****************** Bit definition for TIM_SMCR register ******************
|
|
#define TIM_SMCR_SMS 0x0007 // SMS[2:0] bits (Slave mode selection)
|
|
#define TIM_SMCR_SMS_0 0x0001 // Bit 0
|
|
#define TIM_SMCR_SMS_1 0x0002 // Bit 1
|
|
#define TIM_SMCR_SMS_2 0x0004 // Bit 2
|
|
|
|
#define TIM_SMCR_OCCS 0x0008 // OCCS bits (OCref Clear Selection)
|
|
|
|
#define TIM_SMCR_TS 0x0070 // TS[2:0] bits (Trigger selection)
|
|
#define TIM_SMCR_TS_0 0x0010 // Bit 0
|
|
#define TIM_SMCR_TS_1 0x0020 // Bit 1
|
|
#define TIM_SMCR_TS_2 0x0040 // Bit 2
|
|
|
|
#define TIM_SMCR_MSM 0x0080 // Master/slave mode
|
|
|
|
#define TIM_SMCR_ETF 0x0F00 // ETF[3:0] bits (External trigger filter)
|
|
#define TIM_SMCR_ETF_0 0x0100 // Bit 0
|
|
#define TIM_SMCR_ETF_1 0x0200 // Bit 1
|
|
#define TIM_SMCR_ETF_2 0x0400 // Bit 2
|
|
#define TIM_SMCR_ETF_3 0x0800 // Bit 3
|
|
|
|
#define TIM_SMCR_ETPS 0x3000 // ETPS[1:0] bits (External trigger prescaler)
|
|
#define TIM_SMCR_ETPS_0 0x1000 // Bit 0
|
|
#define TIM_SMCR_ETPS_1 0x2000 // Bit 1
|
|
|
|
#define TIM_SMCR_ECE 0x4000 // External clock enable
|
|
#define TIM_SMCR_ETP 0x8000 // External trigger polarity
|
|
|
|
//****************** Bit definition for TIM_DIER register ******************
|
|
#define TIM_DIER_UIE 0x0001 // Update interrupt enable
|
|
#define TIM_DIER_CC1IE 0x0002 // Capture/Compare 1 interrupt enable
|
|
#define TIM_DIER_CC2IE 0x0004 // Capture/Compare 2 interrupt enable
|
|
#define TIM_DIER_CC3IE 0x0008 // Capture/Compare 3 interrupt enable
|
|
#define TIM_DIER_CC4IE 0x0010 // Capture/Compare 4 interrupt enable
|
|
#define TIM_DIER_TIE 0x0040 // Trigger interrupt enable
|
|
#define TIM_DIER_UDE 0x0100 // Update DMA request enable
|
|
#define TIM_DIER_CC1DE 0x0200 // Capture/Compare 1 DMA request enable
|
|
#define TIM_DIER_CC2DE 0x0400 // Capture/Compare 2 DMA request enable
|
|
#define TIM_DIER_CC3DE 0x0800 // Capture/Compare 3 DMA request enable
|
|
#define TIM_DIER_CC4DE 0x1000 // Capture/Compare 4 DMA request enable
|
|
#define TIM_DIER_TDE 0x4000 // Trigger DMA request enable
|
|
|
|
//******************* Bit definition for TIM_SR register *******************
|
|
#define TIM_SR_UIF 0x0001 // Update interrupt Flag
|
|
#define TIM_SR_CC1IF 0x0002 // Capture/Compare 1 interrupt Flag
|
|
#define TIM_SR_CC2IF 0x0004 // Capture/Compare 2 interrupt Flag
|
|
#define TIM_SR_CC3IF 0x0008 // Capture/Compare 3 interrupt Flag
|
|
#define TIM_SR_CC4IF 0x0010 // Capture/Compare 4 interrupt Flag
|
|
#define TIM_SR_TIF 0x0040 // Trigger interrupt Flag
|
|
#define TIM_SR_CC1OF 0x0200 // Capture/Compare 1 Overcapture Flag
|
|
#define TIM_SR_CC2OF 0x0400 // Capture/Compare 2 Overcapture Flag
|
|
#define TIM_SR_CC3OF 0x0800 // Capture/Compare 3 Overcapture Flag
|
|
#define TIM_SR_CC4OF 0x1000 // Capture/Compare 4 Overcapture Flag
|
|
|
|
//****************** Bit definition for TIM_EGR register *******************
|
|
#define TIM_EGR_UG 0x01 // Update Generation
|
|
#define TIM_EGR_CC1G 0x02 // Capture/Compare 1 Generation
|
|
#define TIM_EGR_CC2G 0x04 // Capture/Compare 2 Generation
|
|
#define TIM_EGR_CC3G 0x08 // Capture/Compare 3 Generation
|
|
#define TIM_EGR_CC4G 0x10 // Capture/Compare 4 Generation
|
|
#define TIM_EGR_TG 0x40 // Trigger Generation
|
|
|
|
//***************** Bit definition for TIM_CCMR1 register ******************
|
|
#define TIM_CCMR1_CC1S 0x0003 // CC1S[1:0] bits (Capture/Compare 1 Selection)
|
|
#define TIM_CCMR1_CC1S_0 0x0001 // Bit 0
|
|
#define TIM_CCMR1_CC1S_1 0x0002 // Bit 1
|
|
|
|
#define TIM_CCMR1_OC1FE 0x0004 // Output Compare 1 Fast enable
|
|
#define TIM_CCMR1_OC1PE 0x0008 // Output Compare 1 Preload enable
|
|
|
|
#define TIM_CCMR1_OC1M 0x0070 // OC1M[2:0] bits (Output Compare 1 Mode)
|
|
#define TIM_CCMR1_OC1M_0 0x0010 // Bit 0
|
|
#define TIM_CCMR1_OC1M_1 0x0020 // Bit 1
|
|
#define TIM_CCMR1_OC1M_2 0x0040 // Bit 2
|
|
|
|
#define TIM_CCMR1_OC1CE 0x0080 // Output Compare 1Clear Enable
|
|
|
|
#define TIM_CCMR1_CC2S 0x0300 // CC2S[1:0] bits (Capture/Compare 2 Selection)
|
|
#define TIM_CCMR1_CC2S_0 0x0100 // Bit 0
|
|
#define TIM_CCMR1_CC2S_1 0x0200 // Bit 1
|
|
|
|
#define TIM_CCMR1_OC2FE 0x0400 // Output Compare 2 Fast enable
|
|
#define TIM_CCMR1_OC2PE 0x0800 // Output Compare 2 Preload enable
|
|
|
|
#define TIM_CCMR1_OC2M 0x7000 // OC2M[2:0] bits (Output Compare 2 Mode)
|
|
#define TIM_CCMR1_OC2M_0 0x1000 // Bit 0
|
|
#define TIM_CCMR1_OC2M_1 0x2000 // Bit 1
|
|
#define TIM_CCMR1_OC2M_2 0x4000 // Bit 2
|
|
|
|
#define TIM_CCMR1_OC2CE 0x8000 // Output Compare 2 Clear Enable
|
|
|
|
//----------------------------------------------------------------------------
|
|
|
|
#define TIM_CCMR1_IC1PSC 0x000C // IC1PSC[1:0] bits (Input Capture 1 Prescaler)
|
|
#define TIM_CCMR1_IC1PSC_0 0x0004 // Bit 0
|
|
#define TIM_CCMR1_IC1PSC_1 0x0008 // Bit 1
|
|
|
|
#define TIM_CCMR1_IC1F 0x00F0 // IC1F[3:0] bits (Input Capture 1 Filter)
|
|
#define TIM_CCMR1_IC1F_0 0x0010 // Bit 0
|
|
#define TIM_CCMR1_IC1F_1 0x0020 // Bit 1
|
|
#define TIM_CCMR1_IC1F_2 0x0040 // Bit 2
|
|
#define TIM_CCMR1_IC1F_3 0x0080 // Bit 3
|
|
|
|
#define TIM_CCMR1_IC2PSC 0x0C00 // IC2PSC[1:0] bits (Input Capture 2 Prescaler)
|
|
#define TIM_CCMR1_IC2PSC_0 0x0400 // Bit 0
|
|
#define TIM_CCMR1_IC2PSC_1 0x0800 // Bit 1
|
|
|
|
#define TIM_CCMR1_IC2F 0xF000 // IC2F[3:0] bits (Input Capture 2 Filter)
|
|
#define TIM_CCMR1_IC2F_0 0x1000 // Bit 0
|
|
#define TIM_CCMR1_IC2F_1 0x2000 // Bit 1
|
|
#define TIM_CCMR1_IC2F_2 0x4000 // Bit 2
|
|
#define TIM_CCMR1_IC2F_3 0x8000 // Bit 3
|
|
|
|
//***************** Bit definition for TIM_CCMR2 register ******************
|
|
#define TIM_CCMR2_CC3S 0x0003 // CC3S[1:0] bits (Capture/Compare 3 Selection)
|
|
#define TIM_CCMR2_CC3S_0 0x0001 // Bit 0
|
|
#define TIM_CCMR2_CC3S_1 0x0002 // Bit 1
|
|
|
|
#define TIM_CCMR2_OC3FE 0x0004 // Output Compare 3 Fast enable
|
|
#define TIM_CCMR2_OC3PE 0x0008 // Output Compare 3 Preload enable
|
|
|
|
#define TIM_CCMR2_OC3M 0x0070 // OC3M[2:0] bits (Output Compare 3 Mode)
|
|
#define TIM_CCMR2_OC3M_0 0x0010 // Bit 0
|
|
#define TIM_CCMR2_OC3M_1 0x0020 // Bit 1
|
|
#define TIM_CCMR2_OC3M_2 0x0040 // Bit 2
|
|
|
|
#define TIM_CCMR2_OC3CE 0x0080 // Output Compare 3 Clear Enable
|
|
|
|
#define TIM_CCMR2_CC4S 0x0300 // CC4S[1:0] bits (Capture/Compare 4 Selection)
|
|
#define TIM_CCMR2_CC4S_0 0x0100 // Bit 0
|
|
#define TIM_CCMR2_CC4S_1 0x0200 // Bit 1
|
|
|
|
#define TIM_CCMR2_OC4FE 0x0400 // Output Compare 4 Fast enable
|
|
#define TIM_CCMR2_OC4PE 0x0800 // Output Compare 4 Preload enable
|
|
|
|
#define TIM_CCMR2_OC4M 0x7000 // OC4M[2:0] bits (Output Compare 4 Mode)
|
|
#define TIM_CCMR2_OC4M_0 0x1000 // Bit 0
|
|
#define TIM_CCMR2_OC4M_1 0x2000 // Bit 1
|
|
#define TIM_CCMR2_OC4M_2 0x4000 // Bit 2
|
|
|
|
#define TIM_CCMR2_OC4CE 0x8000 // Output Compare 4 Clear Enable
|
|
|
|
//----------------------------------------------------------------------------
|
|
|
|
#define TIM_CCMR2_IC3PSC 0x000C // IC3PSC[1:0] bits (Input Capture 3 Prescaler)
|
|
#define TIM_CCMR2_IC3PSC_0 0x0004 // Bit 0
|
|
#define TIM_CCMR2_IC3PSC_1 0x0008 // Bit 1
|
|
|
|
#define TIM_CCMR2_IC3F 0x00F0 // IC3F[3:0] bits (Input Capture 3 Filter)
|
|
#define TIM_CCMR2_IC3F_0 0x0010 // Bit 0
|
|
#define TIM_CCMR2_IC3F_1 0x0020 // Bit 1
|
|
#define TIM_CCMR2_IC3F_2 0x0040 // Bit 2
|
|
#define TIM_CCMR2_IC3F_3 0x0080 // Bit 3
|
|
|
|
#define TIM_CCMR2_IC4PSC 0x0C00 // IC4PSC[1:0] bits (Input Capture 4 Prescaler)
|
|
#define TIM_CCMR2_IC4PSC_0 0x0400 // Bit 0
|
|
#define TIM_CCMR2_IC4PSC_1 0x0800 // Bit 1
|
|
|
|
#define TIM_CCMR2_IC4F 0xF000 // IC4F[3:0] bits (Input Capture 4 Filter)
|
|
#define TIM_CCMR2_IC4F_0 0x1000 // Bit 0
|
|
#define TIM_CCMR2_IC4F_1 0x2000 // Bit 1
|
|
#define TIM_CCMR2_IC4F_2 0x4000 // Bit 2
|
|
#define TIM_CCMR2_IC4F_3 0x8000 // Bit 3
|
|
|
|
//****************** Bit definition for TIM_CCER register ******************
|
|
#define TIM_CCER_CC1E 0x0001 // Capture/Compare 1 output enable
|
|
#define TIM_CCER_CC1P 0x0002 // Capture/Compare 1 output Polarity
|
|
#define TIM_CCER_CC1NP 0x0008 // Capture/Compare 1 Complementary output Polarity
|
|
#define TIM_CCER_CC2E 0x0010 // Capture/Compare 2 output enable
|
|
#define TIM_CCER_CC2P 0x0020 // Capture/Compare 2 output Polarity
|
|
#define TIM_CCER_CC2NP 0x0080 // Capture/Compare 2 Complementary output Polarity
|
|
#define TIM_CCER_CC3E 0x0100 // Capture/Compare 3 output enable
|
|
#define TIM_CCER_CC3P 0x0200 // Capture/Compare 3 output Polarity
|
|
#define TIM_CCER_CC3NP 0x0800 // Capture/Compare 3 Complementary output Polarity
|
|
#define TIM_CCER_CC4E 0x1000 // Capture/Compare 4 output enable
|
|
#define TIM_CCER_CC4P 0x2000 // Capture/Compare 4 output Polarity
|
|
#define TIM_CCER_CC4NP 0x8000 // Capture/Compare 4 Complementary output Polarity
|
|
|
|
//****************** Bit definition for TIM_CNT register *******************
|
|
#define TIM_CNT_CNT 0xFFFF // Counter Value
|
|
|
|
//****************** Bit definition for TIM_PSC register *******************
|
|
#define TIM_PSC_PSC 0xFFFF // Prescaler Value
|
|
|
|
//****************** Bit definition for TIM_ARR register *******************
|
|
#define TIM_ARR_ARR 0xFFFF // actual auto-reload Value
|
|
|
|
//****************** Bit definition for TIM_CCR1 register ******************
|
|
#define TIM_CCR1_CCR1 0xFFFF // Capture/Compare 1 Value
|
|
|
|
//****************** Bit definition for TIM_CCR2 register ******************
|
|
#define TIM_CCR2_CCR2 0xFFFF // Capture/Compare 2 Value
|
|
|
|
//****************** Bit definition for TIM_CCR3 register ******************
|
|
#define TIM_CCR3_CCR3 0xFFFF // Capture/Compare 3 Value
|
|
|
|
//****************** Bit definition for TIM_CCR4 register ******************
|
|
#define TIM_CCR4_CCR4 0xFFFF // Capture/Compare 4 Value
|
|
|
|
//****************** Bit definition for TIM_DCR register *******************
|
|
#define TIM_DCR_DBA 0x001F // DBA[4:0] bits (DMA Base Address)
|
|
#define TIM_DCR_DBA_0 0x0001 // Bit 0
|
|
#define TIM_DCR_DBA_1 0x0002 // Bit 1
|
|
#define TIM_DCR_DBA_2 0x0004 // Bit 2
|
|
#define TIM_DCR_DBA_3 0x0008 // Bit 3
|
|
#define TIM_DCR_DBA_4 0x0010 // Bit 4
|
|
|
|
#define TIM_DCR_DBL 0x1F00 // DBL[4:0] bits (DMA Burst Length)
|
|
#define TIM_DCR_DBL_0 0x0100 // Bit 0
|
|
#define TIM_DCR_DBL_1 0x0200 // Bit 1
|
|
#define TIM_DCR_DBL_2 0x0400 // Bit 2
|
|
#define TIM_DCR_DBL_3 0x0800 // Bit 3
|
|
#define TIM_DCR_DBL_4 0x1000 // Bit 4
|
|
|
|
//****************** Bit definition for TIM_DMAR register ******************
|
|
#define TIM_DMAR_DMAB 0xFFFF // DMA register for burst accesses
|
|
|
|
//****************** Bit definition for TIM_OR register ********************
|
|
#define TIM_OR_TI1RMP 0x0003 // Option register for TI1 Remapping
|
|
#define TIM_OR_TI1RMP_0 0x0001 // Bit 0
|
|
#define TIM_OR_TI1RMP_1 0x0002 // Bit 1
|
|
|