AnsweredAssumed Answered

STM32F7 Timer triggers Timer

Question asked by Fabian Borstel on Oct 14, 2017
Latest reply on Mar 30, 2018 by dhenry
   
Hi,

i generated with CubeMX some code.
I want that timer 2 is triggering timer 3.
If an overflow on Timer 2 occurs Timer 3 should count up 1.
I tried some configurations but nothing worked - no interrupt on timer3
When i set the output trigger (timer 2) to the same Channel as input trigger (timer 3) it isnt working.
This is my configuration code:


    TIM_HandleTypeDef htim2
;    TIM_HandleTypeDef htim3;     /* TIM2 init function */    void MX_TIM2_Init(void)    {      TIM_ClockConfigTypeDef sClockSourceConfig;      TIM_MasterConfigTypeDef sMasterConfig;       htim2.Instance = TIM2;      htim2.Init.Prescaler = 54;      htim2.Init.CounterMode = TIM_COUNTERMODE_UP;      htim2.Init.Period = 250;      htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV4;      htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;      if (HAL_TIM_Base_Init(&htim2) != HAL_OK)      {        _Error_Handler(__FILE__, __LINE__);      }       sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;      if (HAL_TIM_ConfigClockSource(&htim2, &sClockSourceConfig) != HAL_OK)      {        _Error_Handler(__FILE__, __LINE__);      }       sMasterConfig.MasterOutputTrigger = TIM_TRGO_UPDATE;      sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_ENABLE;      if (HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig) != HAL_OK)      {        _Error_Handler(__FILE__, __LINE__);      }     }    /* TIM3 init function */    void MX_TIM3_Init(void)    {      TIM_SlaveConfigTypeDef sSlaveConfig;      TIM_MasterConfigTypeDef sMasterConfig;       htim3.Instance = TIM3;      htim3.Init.Prescaler = 1;      htim3.Init.CounterMode = TIM_COUNTERMODE_UP;      htim3.Init.Period = 8000;      htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;      htim3.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;      if (HAL_TIM_Base_Init(&htim3) != HAL_OK)      {        _Error_Handler(__FILE__, __LINE__);      }       sSlaveConfig.SlaveMode = TIM_SLAVEMODE_EXTERNAL1;      sSlaveConfig.InputTrigger = TIM_TS_ITR0;      if (HAL_TIM_SlaveConfigSynchronization(&htim3, &sSlaveConfig) != HAL_OK)      {        _Error_Handler(__FILE__, __LINE__);      }       sMasterConfig.MasterOutputTrigger = TIM_TRGO_UPDATE;      sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;      if (HAL_TIMEx_MasterConfigSynchronization(&htim3, &sMasterConfig) != HAL_OK)      {        _Error_Handler(__FILE__, __LINE__);      }    }

Outcomes