Перейти к содержанию
    

STM32F303RE и его таймеры.

В документации таймеры представлены так

Advanced-control timers (TIM1/TIM8/TIM20)

General-purpose timers (TIM2/TIM3/TIM4)

Basic timers (TIM6/TIM7)

General-purpose timers (TIM15/TIM16/TIM17)

Насчет таймера 20 есть заметка

TIM20 is available on STM32F303xD/E and STM32F398xE devices only

У меня таки девайс STM32F303xE - STM32F303RE. Однако компайлер ругается на TIM20.

И он не определен

#define TIM2				((TIM_TypeDef *) TIM2_BASE)
#define TIM3				((TIM_TypeDef *) TIM3_BASE)
#define TIM4				((TIM_TypeDef *) TIM4_BASE)
#define TIM6				((TIM_TypeDef *) TIM6_BASE)
#define TIM7				((TIM_TypeDef *) TIM7_BASE)
#define RTC				 ((RTC_TypeDef *) RTC_BASE)
#define WWDG				((WWDG_TypeDef *) WWDG_BASE)
#define IWDG				((IWDG_TypeDef *) IWDG_BASE)
#define I2S2ext			 ((SPI_TypeDef *) I2S2ext_BASE)
#define SPI2				((SPI_TypeDef *) SPI2_BASE)
#define SPI3				((SPI_TypeDef *) SPI3_BASE)
#define I2S3ext			 ((SPI_TypeDef *) I2S3ext_BASE)
#define USART2			  ((USART_TypeDef *) USART2_BASE)
#define USART3			  ((USART_TypeDef *) USART3_BASE)
#define UART4			   ((USART_TypeDef *) UART4_BASE)
#define UART5			   ((USART_TypeDef *) UART5_BASE)
#define I2C1				((I2C_TypeDef *) I2C1_BASE)
#define I2C2				((I2C_TypeDef *) I2C2_BASE)
#define CAN1				((CAN_TypeDef *) CAN1_BASE)
#define PWR				 ((PWR_TypeDef *) PWR_BASE)
#define DAC				 ((DAC_TypeDef *) DAC_BASE)
#define SYSCFG			  ((SYSCFG_TypeDef *) SYSCFG_BASE)
#define COMP				((COMP_TypeDef *) COMP_BASE)
#define COMP1			   ((COMP_TypeDef *) COMP1_BASE)
#define COMP2			   ((COMP_TypeDef *) COMP2_BASE)
#define COMP3			   ((COMP_TypeDef *) COMP3_BASE)
#define COMP4			   ((COMP_TypeDef *) COMP4_BASE)
#define COMP5			   ((COMP_TypeDef *) COMP5_BASE)
#define COMP6			   ((COMP_TypeDef *) COMP6_BASE)
#define COMP7			   ((COMP_TypeDef *) COMP7_BASE)
#define OPAMP			   ((OPAMP_TypeDef *) OPAMP_BASE)
#define OPAMP1			  ((OPAMP_TypeDef *) OPAMP1_BASE)
#define OPAMP2			  ((OPAMP_TypeDef *) OPAMP2_BASE)
#define OPAMP3			  ((OPAMP_TypeDef *) OPAMP3_BASE)
#define OPAMP4			  ((OPAMP_TypeDef *) OPAMP4_BASE)
#define EXTI				((EXTI_TypeDef *) EXTI_BASE)
#define TIM1				((TIM_TypeDef *) TIM1_BASE)
#define SPI1				((SPI_TypeDef *) SPI1_BASE)
#define TIM8				((TIM_TypeDef *) TIM8_BASE)
#define USART1			  ((USART_TypeDef *) USART1_BASE)
#define TIM15			   ((TIM_TypeDef *) TIM15_BASE)
#define TIM16			   ((TIM_TypeDef *) TIM16_BASE)
#define TIM17			   ((TIM_TypeDef *) TIM17_BASE)
#define DBGMCU			  ((DBGMCU_TypeDef *) DBGMCU_BASE)
#define DMA1				((DMA_TypeDef *) DMA1_BASE)
#define DMA1_Channel1	   ((DMA_Channel_TypeDef *) DMA1_Channel1_BASE)
#define DMA1_Channel2	   ((DMA_Channel_TypeDef *) DMA1_Channel2_BASE)
#define DMA1_Channel3	   ((DMA_Channel_TypeDef *) DMA1_Channel3_BASE)
#define DMA1_Channel4	   ((DMA_Channel_TypeDef *) DMA1_Channel4_BASE)
#define DMA1_Channel5	   ((DMA_Channel_TypeDef *) DMA1_Channel5_BASE)
#define DMA1_Channel6	   ((DMA_Channel_TypeDef *) DMA1_Channel6_BASE)
#define DMA1_Channel7	   ((DMA_Channel_TypeDef *) DMA1_Channel7_BASE)
#define DMA2				((DMA_TypeDef *) DMA2_BASE)
#define DMA2_Channel1	   ((DMA_Channel_TypeDef *) DMA2_Channel1_BASE)
#define DMA2_Channel2	   ((DMA_Channel_TypeDef *) DMA2_Channel2_BASE)
#define DMA2_Channel3	   ((DMA_Channel_TypeDef *) DMA2_Channel3_BASE)
#define DMA2_Channel4	   ((DMA_Channel_TypeDef *) DMA2_Channel4_BASE)
#define DMA2_Channel5	   ((DMA_Channel_TypeDef *) DMA2_Channel5_BASE)
#define RCC				 ((RCC_TypeDef *) RCC_BASE)
#define FLASH			   ((FLASH_TypeDef *) FLASH_R_BASE)
#define OB				  ((OB_TypeDef *) OB_BASE)
#define CRC				 ((CRC_TypeDef *) CRC_BASE)
#define TSC				 ((TSC_TypeDef *) TSC_BASE)
#define GPIOA			   ((GPIO_TypeDef *) GPIOA_BASE)
#define GPIOB			   ((GPIO_TypeDef *) GPIOB_BASE)
#define GPIOC			   ((GPIO_TypeDef *) GPIOC_BASE)
#define GPIOD			   ((GPIO_TypeDef *) GPIOD_BASE)
#define GPIOE			   ((GPIO_TypeDef *) GPIOE_BASE)
#define GPIOF			   ((GPIO_TypeDef *) GPIOF_BASE)
#define ADC1				((ADC_TypeDef *) ADC1_BASE)
#define ADC2				((ADC_TypeDef *) ADC2_BASE)
#define ADC3				((ADC_TypeDef *) ADC3_BASE)
#define ADC4				((ADC_TypeDef *) ADC4_BASE)
#define ADC1_2			  ((ADC_Common_TypeDef *) ADC1_2_BASE)
#define ADC3_4			  ((ADC_Common_TypeDef *) ADC3_4_BASE)

Куда исчез TIM20?

Изменено пользователем IgorKossak
[codebox] для длинного кода, [code] - для короткого!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не было его там (;

Открываете ДШ на проц и видите, что у F303RE advanced - 2 шт (стр. 13).

я понял. а еще такой вопрос.

Настройка таймера в режим энкодера.

Возьмем таймер TIM3

PE2 - TIM3_CH1

PE3 - TIM3_CH2

PE4 - TIM3_CH3

PE5 - TIM3_CH4

 

Насколько я понял только канал 1 и 2 можно использовать - HALL A - TIM3_CH1, HALL B - TIM3_CH2.

Вопрос могу ли я использовать канал 3 и 4 в capture-compare режиме или они потеряны?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну если CNT управляется энкодерным режимом (считает ++\-- ), то что захватывать или сравнивать с чем? Смысл? На вскидку не придумаю…

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну если CNT управляется энкодерным режимом (считает ++\-- ), то что захватывать или сравнивать с чем? Смысл? На вскидку не придумаю…

я понял. они бы в 2-х канальных таймерах реализовали режим энкодера. а так куча таймеров а толку мало.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

продолжу тут.

посмотрел прерывания

typedef enum IRQn
{
/******  Cortex-M4 Processor Exceptions Numbers ****************************************************************/
 NonMaskableInt_IRQn         = -14,    /*!< 2 Non Maskable Interrupt                                          */
 MemoryManagement_IRQn       = -12,    /*!< 4 Cortex-M4 Memory Management Interrupt                           */
 BusFault_IRQn               = -11,    /*!< 5 Cortex-M4 Bus Fault Interrupt                                   */
 UsageFault_IRQn             = -10,    /*!< 6 Cortex-M4 Usage Fault Interrupt                                 */
 SVCall_IRQn                 = -5,     /*!< 11 Cortex-M4 SV Call Interrupt                                    */
 DebugMonitor_IRQn           = -4,     /*!< 12 Cortex-M4 Debug Monitor Interrupt                              */
 PendSV_IRQn                 = -2,     /*!< 14 Cortex-M4 Pend SV Interrupt                                    */
 SysTick_IRQn                = -1,     /*!< 15 Cortex-M4 System Tick Interrupt                                */
/******  STM32 specific Interrupt Numbers **********************************************************************/
 WWDG_IRQn                   = 0,      /*!< Window WatchDog Interrupt                                         */
 PVD_IRQn                    = 1,      /*!< PVD through EXTI Line detection Interrupt                         */
 TAMPER_STAMP_IRQn           = 2,      /*!< Tamper and TimeStamp interrupts                                   */
 RTC_WKUP_IRQn               = 3,      /*!< RTC Wakeup interrupt through the EXTI lines 17, 19 & 20           */
 FLASH_IRQn                  = 4,      /*!< FLASH global Interrupt                                            */
 RCC_IRQn                    = 5,      /*!< RCC global Interrupt                                              */
 EXTI0_IRQn                  = 6,      /*!< EXTI Line0 Interrupt                                              */
 EXTI1_IRQn                  = 7,      /*!< EXTI Line1 Interrupt                                              */
 EXTI2_TS_IRQn               = 8,      /*!< EXTI Line2 Interrupt and Touch Sense Interrupt                    */
 EXTI3_IRQn                  = 9,      /*!< EXTI Line3 Interrupt                                              */
 EXTI4_IRQn                  = 10,     /*!< EXTI Line4 Interrupt                                              */
 DMA1_Channel1_IRQn          = 11,     /*!< DMA1 Channel 1 Interrupt                                          */
 DMA1_Channel2_IRQn          = 12,     /*!< DMA1 Channel 2 Interrupt                                          */
 DMA1_Channel3_IRQn          = 13,     /*!< DMA1 Channel 3 Interrupt                                          */
 DMA1_Channel4_IRQn          = 14,     /*!< DMA1 Channel 4 Interrupt                                          */
 DMA1_Channel5_IRQn          = 15,     /*!< DMA1 Channel 5 Interrupt                                          */
 DMA1_Channel6_IRQn          = 16,     /*!< DMA1 Channel 6 Interrupt                                          */
 DMA1_Channel7_IRQn          = 17,     /*!< DMA1 Channel 7 Interrupt                                          */
 ADC1_2_IRQn                 = 18,     /*!< ADC1 & ADC2 Interrupts                                            */
 USB_HP_CAN1_TX_IRQn         = 19,     /*!< USB Device High Priority or CAN1 TX Interrupts                    */
 USB_LP_CAN1_RX0_IRQn        = 20,     /*!< USB Device Low Priority or CAN1 RX0 Interrupts                    */
 CAN1_RX1_IRQn               = 21,     /*!< CAN1 RX1 Interrupt                                                */
 CAN1_SCE_IRQn               = 22,     /*!< CAN1 SCE Interrupt                                                */
 EXTI9_5_IRQn                = 23,     /*!< External Line[9:5] Interrupts                                     */
 TIM1_BRK_TIM15_IRQn         = 24,     /*!< TIM1 Break and TIM15 Interrupts                                   */
 TIM1_UP_TIM16_IRQn          = 25,     /*!< TIM1 Update and TIM16 Interrupts                                  */
 TIM1_TRG_COM_TIM17_IRQn     = 26,     /*!< TIM1 Trigger and Commutation and TIM17 Interrupt                  */
 TIM1_CC_IRQn                = 27,     /*!< TIM1 Capture Compare Interrupt                                    */
 TIM2_IRQn                   = 28,     /*!< TIM2 global Interrupt                                             */
 TIM3_IRQn                   = 29,     /*!< TIM3 global Interrupt                                             */
 TIM4_IRQn                   = 30,     /*!< TIM4 global Interrupt                                             */
 I2C1_EV_IRQn                = 31,     /*!< I2C1 Event Interrupt                                              */
 I2C1_ER_IRQn                = 32,     /*!< I2C1 Error Interrupt                                              */
 I2C2_EV_IRQn                = 33,     /*!< I2C2 Event Interrupt                                              */
 I2C2_ER_IRQn                = 34,     /*!< I2C2 Error Interrupt                                              */  
 SPI1_IRQn                   = 35,     /*!< SPI1 global Interrupt                                             */
 SPI2_IRQn                   = 36,     /*!< SPI2 global Interrupt                                             */
 USART1_IRQn                 = 37,     /*!< USART1 global Interrupt                                           */
 USART2_IRQn                 = 38,     /*!< USART2 global Interrupt                                           */
 USART3_IRQn                 = 39,     /*!< USART3 global Interrupt                                           */
 EXTI15_10_IRQn              = 40,     /*!< External Line[15:10] Interrupts                                   */
 RTC_Alarm_IRQn              = 41,     /*!< RTC Alarm (A and B) through EXTI Line Interrupt                   */
 USBWakeUp_IRQn              = 42,     /*!< USB Wakeup Interrupt                                              */    
 TIM8_BRK_IRQn               = 43,     /*!< TIM8 Break Interrupt                                              */
 TIM8_UP_IRQn                = 44,     /*!< TIM8 Update Interrupt                                             */
 TIM8_TRG_COM_IRQn           = 45,     /*!< TIM8 Trigger and Commutation Interrupt                            */
 TIM8_CC_IRQn                = 46,     /*!< TIM8 Capture Compare Interrupt                                    */
 ADC3_IRQn                   = 47,     /*!< ADC3 global Interrupt                                             */
 SPI3_IRQn                   = 51,     /*!< SPI3 global Interrupt                                             */
 UART4_IRQn                  = 52,     /*!< UART4 global Interrupt                                            */
 UART5_IRQn                  = 53,     /*!< UART5 global Interrupt                                            */
 TIM6_DAC_IRQn               = 54,     /*!< TIM6 global and DAC1&2 underrun error  interrupts                 */
 TIM7_IRQn                   = 55,     /*!< TIM7 global Interrupt                                             */
 DMA2_Channel1_IRQn          = 56,     /*!< DMA2 Channel 1 global Interrupt                                   */
 DMA2_Channel2_IRQn          = 57,     /*!< DMA2 Channel 2 global Interrupt                                   */
 DMA2_Channel3_IRQn          = 58,     /*!< DMA2 Channel 3 global Interrupt                                   */
 DMA2_Channel4_IRQn          = 59,     /*!< DMA2 Channel 4 global Interrupt                                   */
 DMA2_Channel5_IRQn          = 60,     /*!< DMA2 Channel 5 global Interrupt                                   */
 ADC4_IRQn                   = 61,     /*!< ADC4  global Interrupt                                            */
 COMP1_2_3_IRQn              = 64,     /*!< COMP1, COMP2 and COMP3 global Interrupt                           */
 COMP4_5_6_IRQn              = 65,     /*!< COMP5, COMP6 and COMP4 global Interrupt                           */
 COMP7_IRQn                  = 66,     /*!< COMP7 global Interrupt                                            */
 USB_HP_IRQn                 = 74,     /*!< USB High Priority global Interrupt remap                          */
 USB_LP_IRQn                 = 75,     /*!< USB Low Priority global Interrupt  remap                          */
 USBWakeUp_RMP_IRQn          = 76,     /*!< USB Wakeup Interrupt remap                                        */
 FPU_IRQn                    = 81      /*!< Floating point Interrupt                                          */
} IRQn_Type;

 

на таймеры TIM15, TIM16, TIM17 нет прерываний. и что с ними делать?

 

только для PWM они годяться. правда два канала...

Изменено пользователем Jenya7

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

на таймеры TIM15, TIM16, TIM17 нет прерываний. и что с ними делать?

 

Они совмещены, обновите HAL, версия моего файла V2.3.1

#define TIM15_IRQHandler       TIM1_BRK_TIM15_IRQHandler
#define TIM16_IRQHandler       TIM1_UP_TIM16_IRQHandler
#define TIM17_IRQHandler       TIM1_TRG_COM_TIM17_IRQHandler

 

 

typedef enum
{
/******  Cortex-M4 Processor Exceptions Numbers ****************************************************************/
 NonMaskableInt_IRQn         = -14,    /*!< 2 Non Maskable Interrupt                                          */
 HardFault_IRQn              = -13,    /*!< 3 Cortex-M4 Hard Fault Interrupt                                  */
 MemoryManagement_IRQn       = -12,    /*!< 4 Cortex-M4 Memory Management Interrupt                           */
 BusFault_IRQn               = -11,    /*!< 5 Cortex-M4 Bus Fault Interrupt                                   */
 UsageFault_IRQn             = -10,    /*!< 6 Cortex-M4 Usage Fault Interrupt                                 */
 SVCall_IRQn                 = -5,     /*!< 11 Cortex-M4 SV Call Interrupt                                    */
 DebugMonitor_IRQn           = -4,     /*!< 12 Cortex-M4 Debug Monitor Interrupt                              */
 PendSV_IRQn                 = -2,     /*!< 14 Cortex-M4 Pend SV Interrupt                                    */
 SysTick_IRQn                = -1,     /*!< 15 Cortex-M4 System Tick Interrupt                                */
/******  STM32 specific Interrupt Numbers **********************************************************************/
 WWDG_IRQn                   = 0,      /*!< Window WatchDog Interrupt                                         */
 PVD_IRQn                    = 1,      /*!< PVD through EXTI Line detection Interrupt                         */
 TAMP_STAMP_IRQn             = 2,      /*!< Tamper and TimeStamp interrupts through the EXTI line 19          */
 RTC_WKUP_IRQn               = 3,      /*!< RTC Wakeup interrupt through the EXTI line 20                     */
 FLASH_IRQn                  = 4,      /*!< FLASH global Interrupt                                            */
 RCC_IRQn                    = 5,      /*!< RCC global Interrupt                                              */
 EXTI0_IRQn                  = 6,      /*!< EXTI Line0 Interrupt                                              */
 EXTI1_IRQn                  = 7,      /*!< EXTI Line1 Interrupt                                              */
 EXTI2_TSC_IRQn              = 8,      /*!< EXTI Line2 Interrupt and Touch Sense Controller Interrupt         */
 EXTI3_IRQn                  = 9,      /*!< EXTI Line3 Interrupt                                              */
 EXTI4_IRQn                  = 10,     /*!< EXTI Line4 Interrupt                                              */
 DMA1_Channel1_IRQn          = 11,     /*!< DMA1 Channel 1 Interrupt                                          */
 DMA1_Channel2_IRQn          = 12,     /*!< DMA1 Channel 2 Interrupt                                          */
 DMA1_Channel3_IRQn          = 13,     /*!< DMA1 Channel 3 Interrupt                                          */
 DMA1_Channel4_IRQn          = 14,     /*!< DMA1 Channel 4 Interrupt                                          */
 DMA1_Channel5_IRQn          = 15,     /*!< DMA1 Channel 5 Interrupt                                          */
 DMA1_Channel6_IRQn          = 16,     /*!< DMA1 Channel 6 Interrupt                                          */
 DMA1_Channel7_IRQn          = 17,     /*!< DMA1 Channel 7 Interrupt                                          */
 ADC1_2_IRQn                 = 18,     /*!< ADC1 & ADC2 Interrupts                                            */
 USB_HP_CAN_TX_IRQn          = 19,     /*!< USB Device High Priority or CAN TX Interrupts                     */
 USB_LP_CAN_RX0_IRQn         = 20,     /*!< USB Device Low Priority or CAN RX0 Interrupts                     */
 CAN_RX1_IRQn                = 21,     /*!< CAN RX1 Interrupt                                                 */
 CAN_SCE_IRQn                = 22,     /*!< CAN SCE Interrupt                                                 */
 EXTI9_5_IRQn                = 23,     /*!< External Line[9:5] Interrupts                                     */
 TIM1_BRK_TIM15_IRQn         = 24,     /*!< TIM1 Break and TIM15 Interrupts                                   */
 TIM1_UP_TIM16_IRQn          = 25,     /*!< TIM1 Update and TIM16 Interrupts                                  */
 TIM1_TRG_COM_TIM17_IRQn     = 26,     /*!< TIM1 Trigger and Commutation and TIM17 Interrupt                  */
 TIM1_CC_IRQn                = 27,     /*!< TIM1 Capture Compare Interrupt                                    */
 TIM2_IRQn                   = 28,     /*!< TIM2 global Interrupt                                             */
 TIM3_IRQn                   = 29,     /*!< TIM3 global Interrupt                                             */
 TIM4_IRQn                   = 30,     /*!< TIM4 global Interrupt                                             */
 I2C1_EV_IRQn                = 31,     /*!< I2C1 Event Interrupt & EXTI Line23 Interrupt (I2C1 wakeup)        */
 I2C1_ER_IRQn                = 32,     /*!< I2C1 Error Interrupt                                              */
 I2C2_EV_IRQn                = 33,     /*!< I2C2 Event Interrupt & EXTI Line24 Interrupt (I2C2 wakeup)        */
 I2C2_ER_IRQn                = 34,     /*!< I2C2 Error Interrupt                                              */
 SPI1_IRQn                   = 35,     /*!< SPI1 global Interrupt                                             */
 SPI2_IRQn                   = 36,     /*!< SPI2 global Interrupt                                             */
 USART1_IRQn                 = 37,     /*!< USART1 global Interrupt & EXTI Line25 Interrupt (USART1 wakeup)   */
 USART2_IRQn                 = 38,     /*!< USART2 global Interrupt & EXTI Line26 Interrupt (USART2 wakeup)   */
 USART3_IRQn                 = 39,     /*!< USART3 global Interrupt & EXTI Line28 Interrupt (USART3 wakeup)   */
 EXTI15_10_IRQn              = 40,     /*!< External Line[15:10] Interrupts                                   */
 RTC_Alarm_IRQn              = 41,     /*!< RTC Alarm (A and B) through EXTI Line 17 Interrupt                 */
 USBWakeUp_IRQn              = 42,     /*!< USB Wakeup Interrupt                                              */
 TIM8_BRK_IRQn               = 43,     /*!< TIM8 Break Interrupt                                              */
 TIM8_UP_IRQn                = 44,     /*!< TIM8 Update Interrupt                                             */
 TIM8_TRG_COM_IRQn           = 45,     /*!< TIM8 Trigger and Commutation Interrupt                            */
 TIM8_CC_IRQn                = 46,     /*!< TIM8 Capture Compare Interrupt                                    */
 ADC3_IRQn                   = 47,     /*!< ADC3 global Interrupt                                             */
 FMC_IRQn                    = 48,     /*!< FMC global Interrupt                                              */
 SPI3_IRQn                   = 51,     /*!< SPI3 global Interrupt                                             */
 UART4_IRQn                  = 52,     /*!< UART4 global Interrupt & EXTI Line34 Interrupt (UART4 wakeup)     */
 UART5_IRQn                  = 53,     /*!< UART5 global Interrupt & EXTI Line35 Interrupt (UART5 wakeup)     */
 TIM6_DAC_IRQn               = 54,     /*!< TIM6 global and DAC underrun error Interrupt             */
 TIM7_IRQn                   = 55,     /*!< TIM7 global Interrupt                                             */
 DMA2_Channel1_IRQn          = 56,     /*!< DMA2 Channel 1 global Interrupt                                   */
 DMA2_Channel2_IRQn          = 57,     /*!< DMA2 Channel 2 global Interrupt                                   */
 DMA2_Channel3_IRQn          = 58,     /*!< DMA2 Channel 3 global Interrupt                                   */
 DMA2_Channel4_IRQn          = 59,     /*!< DMA2 Channel 4 global Interrupt                                   */
 DMA2_Channel5_IRQn          = 60,     /*!< DMA2 Channel 5 global Interrupt                                   */
 ADC4_IRQn                   = 61,     /*!< ADC4  global Interrupt                                            */
 COMP1_2_3_IRQn              = 64,     /*!< COMP1, COMP2 and COMP3 global Interrupt via EXTI Line21, 22 and 29*/
 COMP4_5_6_IRQn              = 65,     /*!< COMP4, COMP5 and COMP6 global Interrupt via EXTI Line30, 31 and 32*/
 COMP7_IRQn                  = 66,     /*!< COMP7 global Interrupt via EXTI Line33                            */
 I2C3_EV_IRQn                = 72,     /*!< I2C3 event interrupt                                              */
 I2C3_ER_IRQn                = 73,     /*!< I2C3 Error Interrupt                                              */
 USB_HP_IRQn                 = 74,     /*!< USB High Priority global Interrupt                                */
 USB_LP_IRQn                 = 75,     /*!< USB Low Priority global Interrupt                                 */
 USBWakeUp_RMP_IRQn          = 76,     /*!< USB Wakeup Interrupt remap                                        */
 TIM20_BRK_IRQn              = 77,     /*!< TIM20 Break Interrupt                                              */
 TIM20_UP_IRQn               = 78,     /*!< TIM20 Update Interrupt                                             */
 TIM20_TRG_COM_IRQn          = 79,     /*!< TIM20 Trigger and Commutation Interrupt                            */
 TIM20_CC_IRQn               = 80,     /*!< TIM20 Capture Compare Interrupt                                    */
 FPU_IRQn                    = 81,      /*!< Floating point Interrupt                                          */
 SPI4_IRQn                   = 84,     /*!< SPI4 global Interrupt                                             */   
} IRQn_Type;

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

"на таймеры TIM15, TIM16, TIM17 нет прерываний. и что с ними делать?"

Плакать (;

 

Детский сад: штаны на лямкахpost-83663-1500026729_thumb.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

я что хочу спросить. скажем я настроил таймер в режим Input capture. по ниспадающему фронту. на каждый ниспадающий фронт я в прерывании считываю TIM->CNT и так далее.

но тоже самое я могу делать на любом пине - настроить его на прерывание по фронту. настроить таймер и запустить его, пусть бежит. и в прерывании пина считывать тот же TIM->CNT.

 

Изменено пользователем Jenya7

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

я что хочу спросить. скажем я настроил таймер в режим Input capture. по ниспадающему фронту. на каждый ниспадающий фронт я в прерывании считываю TIM->CNT и так далее.

но тоже самое я могу делать на любом пине - настроить его на прерывание по фронту. настроить таймер и запустить его, пусть бежит. и в прерывании пина считывать тот же TIM->CNT.

 

Только в первом случае CNT точно зафиксируется в CCR на момент события, а во втором - начнутся вопросы "А чой-то как-то не точно считается"

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Только в первом случае CNT точно зафиксируется в CCR на момент события, а во втором - начнутся вопросы "А чой-то как-то не точно считается"

а. понял. мне нужно считывать значение TIMx->CCRx и обнулять TIMx->CNT?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а. понял. мне нужно считывать значение TIMx->CCRx и обнулять TIMx->CNT?

Зачем обнулять? Продуманные пацаны сравнивают следующее захваченное значение с предыдущим и извлекают оттуда всю необходимую информацию. И даже переполнение счётчика им не помеха (они же продуманные). Обнуление таймера - это раскидывание перед собой лишних граблей.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Зачем обнулять? Продуманные пацаны сравнивают следующее захваченное значение с предыдущим и извлекают оттуда всю необходимую информацию. И даже переполнение счётчика им не помеха (они же продуманные). Обнуление таймера - это раскидывание перед собой лишних граблей.

а при переполнении что делать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а при переполнении что делать?

А почему вы спрашиваете?

А если серьёзно, что строим? Космический корабль или соковыжималку? Я ж не телепат :laughing:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...