25 "prescaler must be 1 .. 65536");
44#if defined (STM32G0XX) || defined (STM32G4XX)|| defined (STM32H7XX)
51 timer->PSC =
configp->prescaler - 1U;
57 "In pwm mode, callback are not implemented, use PWMDriver instead");
88 chSysHalt(
"channel must be TIMIC_CH1 .. TIMIC_CH4");
127 chSysHalt(
"No configuration given for CH1");
145 chSysHalt(
"No configuration given for CH2");
163 chSysHalt(
"No configuration given for CH3");
181 chSysHalt(
"No configuration given for CH4");
193 if (
timicp->config->overflow_cb)
209 timer->DIER =
timicp->dier;
249#ifdef STM32_TIM1_UP_TIM10_NUMBER
252#ifdef STM32_TIM1_CC_NUMBER
304#ifdef STM32_TIM8_UP_TIM13_NUMBER
307#ifdef STM32_TIM8_CC_NUMBER
498#ifndef STM32_INPUT_CAPTURE_USE_TIM1
499#define STM32_INPUT_CAPTURE_USE_TIM1 false
502#ifndef STM32_INPUT_CAPTURE_USE_TIM2
503#define STM32_INPUT_CAPTURE_USE_TIM2 false
506#ifndef STM32_INPUT_CAPTURE_USE_TIM3
507#define STM32_INPUT_CAPTURE_USE_TIM3 false
510#ifndef STM32_INPUT_CAPTURE_USE_TIM4
511#define STM32_INPUT_CAPTURE_USE_TIM4 false
514#ifndef STM32_INPUT_CAPTURE_USE_TIM5
515#define STM32_INPUT_CAPTURE_USE_TIM5 false
518#ifndef STM32_INPUT_CAPTURE_USE_TIM8
519#define STM32_INPUT_CAPTURE_USE_TIM8 false
522#ifndef STM32_INPUT_CAPTURE_SHARE_TIM1
523#define STM32_INPUT_CAPTURE_SHARE_TIM1 false
526#ifndef STM32_INPUT_CAPTURE_SHARE_TIM2
527#define STM32_INPUT_CAPTURE_SHARE_TIM2 false
530#ifndef STM32_INPUT_CAPTURE_SHARE_TIM3
531#define STM32_INPUT_CAPTURE_SHARE_TIM3 false
534#ifndef STM32_INPUT_CAPTURE_SHARE_TIM4
535#define STM32_INPUT_CAPTURE_SHARE_TIM4 false
538#ifndef STM32_INPUT_CAPTURE_SHARE_TIM5
539#define STM32_INPUT_CAPTURE_SHARE_TIM5 false
542#ifndef STM32_INPUT_CAPTURE_SHARE_TIM8
543#define STM32_INPUT_CAPTURE_SHARE_TIM8 false
546#ifndef STM32_INPUT_CAPTURE_ENABLE_TIM1_ISR
547#define STM32_INPUT_CAPTURE_ENABLE_TIM1_ISR false
550#ifndef STM32_INPUT_CAPTURE_ENABLE_TIM2_ISR
551#define STM32_INPUT_CAPTURE_ENABLE_TIM2_ISR false
555#ifndef STM32_INPUT_CAPTURE_ENABLE_TIM3_ISR
556#define STM32_INPUT_CAPTURE_ENABLE_TIM3_ISR false
560#ifndef STM32_INPUT_CAPTURE_ENABLE_TIM4_ISR
561#define STM32_INPUT_CAPTURE_ENABLE_TIM4_ISR false
565#ifndef STM32_INPUT_CAPTURE_ENABLE_TIM5_ISR
566#define STM32_INPUT_CAPTURE_ENABLE_TIM5_ISR false
570#ifndef STM32_INPUT_CAPTURE_ENABLE_TIM8_ISR
571#define STM32_INPUT_CAPTURE_ENABLE_TIM8_ISR false
576#if STM32_INPUT_CAPTURE_USE_TIM1 && (!STM32_INPUT_CAPTURE_SHARE_TIM1) && \
577(STM32_GPT_USE_TIM1 || STM32_ICU_USE_TIM1 || STM32_PWM_USE_TIM1)
578#error "STM32 INPUT_CAPTURE USE TIM1 but already used by GPT or ICU or PWM"
581#if STM32_INPUT_CAPTURE_USE_TIM2 && (!STM32_INPUT_CAPTURE_SHARE_TIM2) && \
582(STM32_GPT_USE_TIM2 || STM32_ICU_USE_TIM2 || STM32_PWM_USE_TIM2)
583#error "STM32 INPUT_CAPTURE USE TIM2 but already used by GPT or ICU or PWM"
586#if STM32_INPUT_CAPTURE_USE_TIM3 && (!STM32_INPUT_CAPTURE_SHARE_TIM3) && \
587(STM32_GPT_USE_TIM3 || STM32_ICU_USE_TIM3 || STM32_PWM_USE_TIM3)
588#error "STM32 INPUT_CAPTURE USE TIM3 but already used by GPT or ICU or PWM"
591#if STM32_INPUT_CAPTURE_USE_TIM4 && (!STM32_INPUT_CAPTURE_SHARE_TIM4) && \
592(STM32_GPT_USE_TIM4 || STM32_ICU_USE_TIM4 || STM32_PWM_USE_TIM4)
593#error "STM32 INPUT_CAPTURE USE TIM4 but already used by GPT or ICU or PWM"
596#if STM32_INPUT_CAPTURE_USE_TIM5 && (!STM32_INPUT_CAPTURE_SHARE_TIM5) && \
597(STM32_GPT_USE_TIM5 || STM32_ICU_USE_TIM5 || STM32_PWM_USE_TIM5)
598#error "STM32 INPUT_CAPTURE USE TIM5 but already used by GPT or ICU or PWM"
601#if STM32_INPUT_CAPTURE_USE_TIM8 && (!STM32_INPUT_CAPTURE_SHARE_TIM8) && \
602(STM32_GPT_USE_TIM8 || STM32_ICU_USE_TIM8 || STM32_PWM_USE_TIM8)
603#error "STM32 INPUT_CAPTURE USE TIM8 but already used by GPT or ICU or PWM"
607#if STM32_INPUT_CAPTURE_USE_TIM1 || defined(__DOXYGEN__)
608#if STM32_INPUT_CAPTURE_ENABLE_TIM1_ISR
609#if defined(STM32_TIM1_UP_TIM10_HANDLER)
623#elif defined(STM32_TIM1_UP_HANDLER)
633#error "no handler defined for TIM1"
636#if !defined(STM32_TIM1_CC_HANDLER)
637#error "STM32_TIM1_CC_HANDLER not defined"
655#if STM32_INPUT_CAPTURE_USE_TIM2 || defined(__DOXYGEN__)
656#if STM32_INPUT_CAPTURE_ENABLE_TIM2_ISR
657#if !defined(STM32_TIM2_HANDLER)
658#error "STM32_TIM2_HANDLER not defined"
676#if STM32_INPUT_CAPTURE_USE_TIM3 || defined(__DOXYGEN__)
677#if STM32_INPUT_CAPTURE_ENABLE_TIM3_ISR
678#if !defined(STM32_TIM3_HANDLER)
679#error "STM32_TIM3_HANDLER not defined"
697#if STM32_INPUT_CAPTURE_USE_TIM4 || defined(__DOXYGEN__)
698#if STM32_INPUT_CAPTURE_ENABLE_TIM4_ISR
699#if !defined(STM32_TIM4_HANDLER)
700#error "STM32_TIM4_HANDLER not defined"
718#if STM32_INPUT_CAPTURE_USE_TIM5 || defined(__DOXYGEN__)
719#if STM32_INPUT_CAPTURE_ENABLE_TIM5_ISR
720#if !defined(STM32_TIM5_HANDLER)
721#error "STM32_TIM5_HANDLER not defined"
739#if STM32_INPUT_CAPTURE_USE_TIM8 || defined(__DOXYGEN__)
740#if STM32_INPUT_CAPTURE_ENABLE_TIM8_ISR
741#if defined(STM32_TIM8_UP_TIM13_HANDLER)
757#if !defined(STM32_TIM8_CC_HANDLER)
758#error "STM32_TIM8_CC_HANDLER not defined"
808 if (
timicp->config->capture_cb) {
815 if (
timicp->config->overflow_cb)
#define STM32_IRQ_TIM1_UP_TIM10_PRIORITY
#define STM32_IRQ_TIM5_PRIORITY
#define STM32_IRQ_TIM8_UP_TIM13_PRIORITY
#define STM32_IRQ_TIM2_PRIORITY
#define STM32_IRQ_TIM4_PRIORITY
#define STM32_IRQ_TIM3_PRIORITY
#define STM32_IRQ_TIM1_CC_PRIORITY
#define STM32_IRQ_TIM8_CC_PRIORITY
unsigned int uint32_t
Typedef defining 32 bit unsigned int type.