Ignore:
Timestamp:
Aug 19, 2025, 11:24:24 AM (8 days ago)
Author:
f.jahn
Message:

Timer16 was substituted with Timer3.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/firmware_v2/Core/Src/tim.c

    r19 r20  
    3131/* USER CODE END 0 */
    3232
    33 TIM_HandleTypeDef htim16;
     33TIM_HandleTypeDef htim3;
    3434TIM_HandleTypeDef htim17;
    35 DMA_HandleTypeDef hdma_tim16_ch1;
    36 
    37 /* TIM16 init function */
    38 void MX_TIM16_Init(void)
    39 {
    40 
    41   /* USER CODE BEGIN TIM16_Init 0 */
    42 
    43   // FAN TACHO
    44 
    45   /* USER CODE END TIM16_Init 0 */
    46 
     35DMA_HandleTypeDef hdma_tim3_ch1;
     36
     37/* TIM3 init function */
     38void MX_TIM3_Init(void)
     39{
     40
     41  /* USER CODE BEGIN TIM3_Init 0 */
     42
     43  /* USER CODE END TIM3_Init 0 */
     44
     45  TIM_ClockConfigTypeDef sClockSourceConfig = {0};
     46  TIM_MasterConfigTypeDef sMasterConfig = {0};
    4747  TIM_IC_InitTypeDef sConfigIC = {0};
    4848
    49   /* USER CODE BEGIN TIM16_Init 1 */
    50 
    51   /* USER CODE END TIM16_Init 1 */
    52   htim16.Instance = TIM16;
    53   htim16.Init.Prescaler = 3;
    54   htim16.Init.CounterMode = TIM_COUNTERMODE_UP;
    55   htim16.Init.Period = 65535;
    56   htim16.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
    57   htim16.Init.RepetitionCounter = 0;
    58   htim16.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE;
    59   if (HAL_TIM_Base_Init(&htim16) != HAL_OK)
    60   {
    61     Error_Handler();
    62   }
    63   if (HAL_TIM_IC_Init(&htim16) != HAL_OK)
     49  /* USER CODE BEGIN TIM3_Init 1 */
     50
     51  /* USER CODE END TIM3_Init 1 */
     52  htim3.Instance = TIM3;
     53  htim3.Init.Prescaler = 3;
     54  htim3.Init.CounterMode = TIM_COUNTERMODE_UP;
     55  htim3.Init.Period = 65535;
     56  htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
     57  htim3.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE;
     58  if (HAL_TIM_Base_Init(&htim3) != HAL_OK)
     59  {
     60    Error_Handler();
     61  }
     62  sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
     63  if (HAL_TIM_ConfigClockSource(&htim3, &sClockSourceConfig) != HAL_OK)
     64  {
     65    Error_Handler();
     66  }
     67  if (HAL_TIM_IC_Init(&htim3) != HAL_OK)
     68  {
     69    Error_Handler();
     70  }
     71  sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
     72  sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
     73  if (HAL_TIMEx_MasterConfigSynchronization(&htim3, &sMasterConfig) != HAL_OK)
    6474  {
    6575    Error_Handler();
     
    6979  sConfigIC.ICPrescaler = TIM_ICPSC_DIV1;
    7080  sConfigIC.ICFilter = 0;
    71   if (HAL_TIM_IC_ConfigChannel(&htim16, &sConfigIC, TIM_CHANNEL_1) != HAL_OK)
    72   {
    73     Error_Handler();
    74   }
    75   /* USER CODE BEGIN TIM16_Init 2 */
    76 
    77   __HAL_TIM_ENABLE_IT(&htim16, TIM_IT_UPDATE);
    78   HAL_TIM_IC_Start_DMA(&htim16, TIM_CHANNEL_1, (uint32_t*)ic_buf, STATE_NUM * AVG_NUM);
    79 
    80   /* USER CODE END TIM16_Init 2 */
     81  if (HAL_TIM_IC_ConfigChannel(&htim3, &sConfigIC, TIM_CHANNEL_1) != HAL_OK)
     82  {
     83    Error_Handler();
     84  }
     85  /* USER CODE BEGIN TIM3_Init 2 */
     86
     87  __HAL_TIM_ENABLE_IT(&htim3, TIM_IT_UPDATE);
     88  HAL_TIM_IC_Start_DMA(&htim3, TIM_CHANNEL_1, (uint32_t*)ic_buf, STATE_NUM * AVG_NUM);
     89
     90  /* USER CODE END TIM3_Init 2 */
    8191
    8292}
     
    148158
    149159  GPIO_InitTypeDef GPIO_InitStruct = {0};
    150   if(tim_baseHandle->Instance==TIM16)
    151   {
    152   /* USER CODE BEGIN TIM16_MspInit 0 */
    153 
    154   /* USER CODE END TIM16_MspInit 0 */
    155     /* TIM16 clock enable */
    156     __HAL_RCC_TIM16_CLK_ENABLE();
     160  if(tim_baseHandle->Instance==TIM3)
     161  {
     162  /* USER CODE BEGIN TIM3_MspInit 0 */
     163
     164  /* USER CODE END TIM3_MspInit 0 */
     165    /* TIM3 clock enable */
     166    __HAL_RCC_TIM3_CLK_ENABLE();
    157167
    158168    __HAL_RCC_GPIOA_CLK_ENABLE();
    159     /**TIM16 GPIO Configuration
    160     PA6     ------> TIM16_CH1
     169    /**TIM3 GPIO Configuration
     170    PA6     ------> TIM3_CH1
    161171    */
    162172    GPIO_InitStruct.Pin = FAN_TACHO_Pin;
     
    164174    GPIO_InitStruct.Pull = GPIO_PULLUP;
    165175    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
    166     GPIO_InitStruct.Alternate = GPIO_AF5_TIM16;
     176    GPIO_InitStruct.Alternate = GPIO_AF1_TIM3;
    167177    HAL_GPIO_Init(FAN_TACHO_GPIO_Port, &GPIO_InitStruct);
    168178
    169     /* TIM16 DMA Init */
    170     /* TIM16_CH1 Init */
    171     hdma_tim16_ch1.Instance = DMA1_Channel2;
    172     hdma_tim16_ch1.Init.Request = DMA_REQUEST_TIM16_CH1;
    173     hdma_tim16_ch1.Init.Direction = DMA_PERIPH_TO_MEMORY;
    174     hdma_tim16_ch1.Init.PeriphInc = DMA_PINC_DISABLE;
    175     hdma_tim16_ch1.Init.MemInc = DMA_MINC_ENABLE;
    176     hdma_tim16_ch1.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD;
    177     hdma_tim16_ch1.Init.MemDataAlignment = DMA_MDATAALIGN_HALFWORD;
    178     hdma_tim16_ch1.Init.Mode = DMA_CIRCULAR;
    179     hdma_tim16_ch1.Init.Priority = DMA_PRIORITY_LOW;
    180     if (HAL_DMA_Init(&hdma_tim16_ch1) != HAL_OK)
     179    /* TIM3 DMA Init */
     180    /* TIM3_CH1 Init */
     181    hdma_tim3_ch1.Instance = DMA1_Channel2;
     182    hdma_tim3_ch1.Init.Request = DMA_REQUEST_TIM3_CH1;
     183    hdma_tim3_ch1.Init.Direction = DMA_PERIPH_TO_MEMORY;
     184    hdma_tim3_ch1.Init.PeriphInc = DMA_PINC_DISABLE;
     185    hdma_tim3_ch1.Init.MemInc = DMA_MINC_ENABLE;
     186    hdma_tim3_ch1.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD;
     187    hdma_tim3_ch1.Init.MemDataAlignment = DMA_MDATAALIGN_HALFWORD;
     188    hdma_tim3_ch1.Init.Mode = DMA_CIRCULAR;
     189    hdma_tim3_ch1.Init.Priority = DMA_PRIORITY_LOW;
     190    if (HAL_DMA_Init(&hdma_tim3_ch1) != HAL_OK)
    181191    {
    182192      Error_Handler();
    183193    }
    184194
    185     __HAL_LINKDMA(tim_baseHandle,hdma[TIM_DMA_ID_CC1],hdma_tim16_ch1);
    186 
    187     /* TIM16 interrupt Init */
    188     HAL_NVIC_SetPriority(TIM16_IRQn, 0, 0);
    189     HAL_NVIC_EnableIRQ(TIM16_IRQn);
    190   /* USER CODE BEGIN TIM16_MspInit 1 */
    191 
    192   /* USER CODE END TIM16_MspInit 1 */
     195    __HAL_LINKDMA(tim_baseHandle,hdma[TIM_DMA_ID_CC1],hdma_tim3_ch1);
     196
     197    /* TIM3 interrupt Init */
     198    HAL_NVIC_SetPriority(TIM3_IRQn, 0, 0);
     199    HAL_NVIC_EnableIRQ(TIM3_IRQn);
     200  /* USER CODE BEGIN TIM3_MspInit 1 */
     201
     202  /* USER CODE END TIM3_MspInit 1 */
    193203  }
    194204  else if(tim_baseHandle->Instance==TIM17)
     
    237247{
    238248
    239   if(tim_baseHandle->Instance==TIM16)
    240   {
    241   /* USER CODE BEGIN TIM16_MspDeInit 0 */
    242 
    243   /* USER CODE END TIM16_MspDeInit 0 */
     249  if(tim_baseHandle->Instance==TIM3)
     250  {
     251  /* USER CODE BEGIN TIM3_MspDeInit 0 */
     252
     253  /* USER CODE END TIM3_MspDeInit 0 */
    244254    /* Peripheral clock disable */
    245     __HAL_RCC_TIM16_CLK_DISABLE();
    246 
    247     /**TIM16 GPIO Configuration
    248     PA6     ------> TIM16_CH1
     255    __HAL_RCC_TIM3_CLK_DISABLE();
     256
     257    /**TIM3 GPIO Configuration
     258    PA6     ------> TIM3_CH1
    249259    */
    250260    HAL_GPIO_DeInit(FAN_TACHO_GPIO_Port, FAN_TACHO_Pin);
    251261
    252     /* TIM16 DMA DeInit */
     262    /* TIM3 DMA DeInit */
    253263    HAL_DMA_DeInit(tim_baseHandle->hdma[TIM_DMA_ID_CC1]);
    254264
    255     /* TIM16 interrupt Deinit */
    256     HAL_NVIC_DisableIRQ(TIM16_IRQn);
    257   /* USER CODE BEGIN TIM16_MspDeInit 1 */
    258 
    259   /* USER CODE END TIM16_MspDeInit 1 */
     265    /* TIM3 interrupt Deinit */
     266    HAL_NVIC_DisableIRQ(TIM3_IRQn);
     267  /* USER CODE BEGIN TIM3_MspDeInit 1 */
     268
     269  /* USER CODE END TIM3_MspDeInit 1 */
    260270  }
    261271  else if(tim_baseHandle->Instance==TIM17)
Note: See TracChangeset for help on using the changeset viewer.