Changeset 20 for trunk/firmware_v2/Core/Src/tim.c
- Timestamp:
- Aug 19, 2025, 11:24:24 AM (8 days ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/firmware_v2/Core/Src/tim.c
r19 r20 31 31 /* USER CODE END 0 */ 32 32 33 TIM_HandleTypeDef htim 16;33 TIM_HandleTypeDef htim3; 34 34 TIM_HandleTypeDef htim17; 35 DMA_HandleTypeDef hdma_tim 16_ch1;36 37 /* TIM 16init function */38 void MX_TIM 16_Init(void)39 { 40 41 /* USER CODE BEGIN TIM 16_Init 0 */42 43 / / FAN TACHO44 45 /* USER CODE END TIM16_Init 0 */46 35 DMA_HandleTypeDef hdma_tim3_ch1; 36 37 /* TIM3 init function */ 38 void 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}; 47 47 TIM_IC_InitTypeDef sConfigIC = {0}; 48 48 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) 64 74 { 65 75 Error_Handler(); … … 69 79 sConfigIC.ICPrescaler = TIM_ICPSC_DIV1; 70 80 sConfigIC.ICFilter = 0; 71 if (HAL_TIM_IC_ConfigChannel(&htim 16, &sConfigIC, TIM_CHANNEL_1) != HAL_OK)72 { 73 Error_Handler(); 74 } 75 /* USER CODE BEGIN TIM 16_Init 2 */76 77 __HAL_TIM_ENABLE_IT(&htim 16, TIM_IT_UPDATE);78 HAL_TIM_IC_Start_DMA(&htim 16, TIM_CHANNEL_1, (uint32_t*)ic_buf, STATE_NUM * AVG_NUM);79 80 /* USER CODE END TIM 16_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 */ 81 91 82 92 } … … 148 158 149 159 GPIO_InitTypeDef GPIO_InitStruct = {0}; 150 if(tim_baseHandle->Instance==TIM 16)151 { 152 /* USER CODE BEGIN TIM 16_MspInit 0 */153 154 /* USER CODE END TIM 16_MspInit 0 */155 /* TIM 16clock enable */156 __HAL_RCC_TIM 16_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(); 157 167 158 168 __HAL_RCC_GPIOA_CLK_ENABLE(); 159 /**TIM 16GPIO Configuration160 PA6 ------> TIM 16_CH1169 /**TIM3 GPIO Configuration 170 PA6 ------> TIM3_CH1 161 171 */ 162 172 GPIO_InitStruct.Pin = FAN_TACHO_Pin; … … 164 174 GPIO_InitStruct.Pull = GPIO_PULLUP; 165 175 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; 166 GPIO_InitStruct.Alternate = GPIO_AF 5_TIM16;176 GPIO_InitStruct.Alternate = GPIO_AF1_TIM3; 167 177 HAL_GPIO_Init(FAN_TACHO_GPIO_Port, &GPIO_InitStruct); 168 178 169 /* TIM 16DMA Init */170 /* TIM 16_CH1 Init */171 hdma_tim 16_ch1.Instance = DMA1_Channel2;172 hdma_tim 16_ch1.Init.Request = DMA_REQUEST_TIM16_CH1;173 hdma_tim 16_ch1.Init.Direction = DMA_PERIPH_TO_MEMORY;174 hdma_tim 16_ch1.Init.PeriphInc = DMA_PINC_DISABLE;175 hdma_tim 16_ch1.Init.MemInc = DMA_MINC_ENABLE;176 hdma_tim 16_ch1.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD;177 hdma_tim 16_ch1.Init.MemDataAlignment = DMA_MDATAALIGN_HALFWORD;178 hdma_tim 16_ch1.Init.Mode = DMA_CIRCULAR;179 hdma_tim 16_ch1.Init.Priority = DMA_PRIORITY_LOW;180 if (HAL_DMA_Init(&hdma_tim 16_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) 181 191 { 182 192 Error_Handler(); 183 193 } 184 194 185 __HAL_LINKDMA(tim_baseHandle,hdma[TIM_DMA_ID_CC1],hdma_tim 16_ch1);186 187 /* TIM 16interrupt Init */188 HAL_NVIC_SetPriority(TIM 16_IRQn, 0, 0);189 HAL_NVIC_EnableIRQ(TIM 16_IRQn);190 /* USER CODE BEGIN TIM 16_MspInit 1 */191 192 /* USER CODE END TIM 16_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 */ 193 203 } 194 204 else if(tim_baseHandle->Instance==TIM17) … … 237 247 { 238 248 239 if(tim_baseHandle->Instance==TIM 16)240 { 241 /* USER CODE BEGIN TIM 16_MspDeInit 0 */242 243 /* USER CODE END TIM 16_MspDeInit 0 */249 if(tim_baseHandle->Instance==TIM3) 250 { 251 /* USER CODE BEGIN TIM3_MspDeInit 0 */ 252 253 /* USER CODE END TIM3_MspDeInit 0 */ 244 254 /* Peripheral clock disable */ 245 __HAL_RCC_TIM 16_CLK_DISABLE();246 247 /**TIM 16GPIO Configuration248 PA6 ------> TIM 16_CH1255 __HAL_RCC_TIM3_CLK_DISABLE(); 256 257 /**TIM3 GPIO Configuration 258 PA6 ------> TIM3_CH1 249 259 */ 250 260 HAL_GPIO_DeInit(FAN_TACHO_GPIO_Port, FAN_TACHO_Pin); 251 261 252 /* TIM 16DMA DeInit */262 /* TIM3 DMA DeInit */ 253 263 HAL_DMA_DeInit(tim_baseHandle->hdma[TIM_DMA_ID_CC1]); 254 264 255 /* TIM 16interrupt Deinit */256 HAL_NVIC_DisableIRQ(TIM 16_IRQn);257 /* USER CODE BEGIN TIM 16_MspDeInit 1 */258 259 /* USER CODE END TIM 16_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 */ 260 270 } 261 271 else if(tim_baseHandle->Instance==TIM17)
Note: See TracChangeset
for help on using the changeset viewer.