Changeset 20 for trunk/firmware_v2
- Timestamp:
- Aug 19, 2025, 11:24:24 AM (8 days ago)
- Location:
- trunk/firmware_v2
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/firmware_v2/Core/Inc/stm32c0xx_it.h
r19 r20 54 54 void DMA1_Channel1_IRQHandler(void); 55 55 void DMA1_Channel2_3_IRQHandler(void); 56 void TIM 16_IRQHandler(void);56 void TIM3_IRQHandler(void); 57 57 /* USER CODE BEGIN EFP */ 58 58 -
trunk/firmware_v2/Core/Inc/tim.h
r19 r20 33 33 /* USER CODE END Includes */ 34 34 35 extern TIM_HandleTypeDef htim 16;35 extern TIM_HandleTypeDef htim3; 36 36 37 37 extern TIM_HandleTypeDef htim17; … … 41 41 /* USER CODE END Private defines */ 42 42 43 void MX_TIM 16_Init(void);43 void MX_TIM3_Init(void); 44 44 void MX_TIM17_Init(void); 45 45 -
trunk/firmware_v2/Core/Src/main.c
r17 r20 93 93 MX_DMA_Init(); 94 94 MX_ADC1_Init(); 95 MX_TIM16_Init();96 95 MX_TIM17_Init(); 97 96 MX_USART1_UART_Init(); 97 MX_TIM3_Init(); 98 98 /* USER CODE BEGIN 2 */ 99 99 -
trunk/firmware_v2/Core/Src/stm32c0xx_it.c
r19 r20 60 60 /* External variables --------------------------------------------------------*/ 61 61 extern DMA_HandleTypeDef hdma_adc1; 62 extern DMA_HandleTypeDef hdma_tim 16_ch1;63 extern TIM_HandleTypeDef htim 16;62 extern DMA_HandleTypeDef hdma_tim3_ch1; 63 extern TIM_HandleTypeDef htim3; 64 64 /* USER CODE BEGIN EV */ 65 65 … … 168 168 169 169 /* USER CODE END DMA1_Channel2_3_IRQn 0 */ 170 HAL_DMA_IRQHandler(&hdma_tim 16_ch1);170 HAL_DMA_IRQHandler(&hdma_tim3_ch1); 171 171 /* USER CODE BEGIN DMA1_Channel2_3_IRQn 1 */ 172 172 … … 175 175 176 176 /** 177 * @brief This function handles TIM 16global interrupt.178 */ 179 void TIM 16_IRQHandler(void)180 { 181 /* USER CODE BEGIN TIM 16_IRQn 0 */182 183 /* USER CODE END TIM 16_IRQn 0 */184 HAL_TIM_IRQHandler(&htim 16);185 /* USER CODE BEGIN TIM 16_IRQn 1 */186 187 /* USER CODE END TIM 16_IRQn 1 */177 * @brief This function handles TIM3 global interrupt. 178 */ 179 void TIM3_IRQHandler(void) 180 { 181 /* USER CODE BEGIN TIM3_IRQn 0 */ 182 183 /* USER CODE END TIM3_IRQn 0 */ 184 HAL_TIM_IRQHandler(&htim3); 185 /* USER CODE BEGIN TIM3_IRQn 1 */ 186 187 /* USER CODE END TIM3_IRQn 1 */ 188 188 } 189 189 … … 208 208 extern uint32_t ic_overflows; 209 209 210 if (htim->Instance == TIM 16)210 if (htim->Instance == TIM3) 211 211 { 212 212 printf("Full\n"); … … 246 246 extern uint32_t ic_overflows; 247 247 248 if (htim->Instance == TIM 16)248 if (htim->Instance == TIM3) 249 249 { 250 250 ic_overflows++; … … 260 260 extern uint32_t ic_overflows; 261 261 262 if (htim->Instance == TIM 16)262 if (htim->Instance == TIM3) 263 263 { 264 264 printf("Half\n"); -
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) -
trunk/firmware_v2/firmware_v2.ioc
r19 r20 37 37 Dma.ADC1.0.SyncSignalID=NONE 38 38 Dma.Request0=ADC1 39 Dma.Request1=TIM 16_CH139 Dma.Request1=TIM3_CH1 40 40 Dma.RequestsNb=2 41 Dma.TIM 16_CH1.1.Direction=DMA_PERIPH_TO_MEMORY42 Dma.TIM 16_CH1.1.EventEnable=DISABLE43 Dma.TIM 16_CH1.1.Instance=DMA1_Channel244 Dma.TIM 16_CH1.1.MemDataAlignment=DMA_MDATAALIGN_HALFWORD45 Dma.TIM 16_CH1.1.MemInc=DMA_MINC_ENABLE46 Dma.TIM 16_CH1.1.Mode=DMA_CIRCULAR47 Dma.TIM 16_CH1.1.PeriphDataAlignment=DMA_PDATAALIGN_HALFWORD48 Dma.TIM 16_CH1.1.PeriphInc=DMA_PINC_DISABLE49 Dma.TIM 16_CH1.1.Polarity=HAL_DMAMUX_REQ_GEN_RISING50 Dma.TIM 16_CH1.1.Priority=DMA_PRIORITY_LOW51 Dma.TIM 16_CH1.1.RequestNumber=152 Dma.TIM 16_CH1.1.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,SignalID,Polarity,RequestNumber,SyncSignalID,SyncPolarity,SyncEnable,EventEnable,SyncRequestNumber53 Dma.TIM 16_CH1.1.SignalID=NONE54 Dma.TIM 16_CH1.1.SyncEnable=DISABLE55 Dma.TIM 16_CH1.1.SyncPolarity=HAL_DMAMUX_SYNC_NO_EVENT56 Dma.TIM 16_CH1.1.SyncRequestNumber=157 Dma.TIM 16_CH1.1.SyncSignalID=NONE41 Dma.TIM3_CH1.1.Direction=DMA_PERIPH_TO_MEMORY 42 Dma.TIM3_CH1.1.EventEnable=DISABLE 43 Dma.TIM3_CH1.1.Instance=DMA1_Channel2 44 Dma.TIM3_CH1.1.MemDataAlignment=DMA_MDATAALIGN_HALFWORD 45 Dma.TIM3_CH1.1.MemInc=DMA_MINC_ENABLE 46 Dma.TIM3_CH1.1.Mode=DMA_CIRCULAR 47 Dma.TIM3_CH1.1.PeriphDataAlignment=DMA_PDATAALIGN_HALFWORD 48 Dma.TIM3_CH1.1.PeriphInc=DMA_PINC_DISABLE 49 Dma.TIM3_CH1.1.Polarity=HAL_DMAMUX_REQ_GEN_RISING 50 Dma.TIM3_CH1.1.Priority=DMA_PRIORITY_LOW 51 Dma.TIM3_CH1.1.RequestNumber=1 52 Dma.TIM3_CH1.1.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,SignalID,Polarity,RequestNumber,SyncSignalID,SyncPolarity,SyncEnable,EventEnable,SyncRequestNumber 53 Dma.TIM3_CH1.1.SignalID=NONE 54 Dma.TIM3_CH1.1.SyncEnable=DISABLE 55 Dma.TIM3_CH1.1.SyncPolarity=HAL_DMAMUX_SYNC_NO_EVENT 56 Dma.TIM3_CH1.1.SyncRequestNumber=1 57 Dma.TIM3_CH1.1.SyncSignalID=NONE 58 58 File.Version=6 59 59 GPIO.groupedBy=Group By Peripherals … … 68 68 Mcu.IP5=RCC 69 69 Mcu.IP6=SYS 70 Mcu.IP7=TIM 1670 Mcu.IP7=TIM3 71 71 Mcu.IP8=TIM17 72 72 Mcu.IP9=USART1 … … 96 96 Mcu.Pin27=VP_ADC1_TempSens_Input 97 97 Mcu.Pin28=VP_SYS_VS_Systick 98 Mcu.Pin29=VP_TIM 16_VS_ClockSourceINT98 Mcu.Pin29=VP_TIM3_VS_ClockSourceINT 99 99 Mcu.Pin3=PA0 100 100 Mcu.Pin30=VP_TIM17_VS_ClockSourceINT … … 119 119 NVIC.SVC_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:true 120 120 NVIC.SysTick_IRQn=true\:3\:0\:false\:false\:true\:false\:true\:false 121 NVIC.TIM 16_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true121 NVIC.TIM3_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true 122 122 PA0.GPIOParameters=GPIO_PuPd,GPIO_Label 123 123 PA0.GPIO_Label=GPIO_INPUT_LVP … … 162 162 PA6.GPIO_PuPd=GPIO_PULLUP 163 163 PA6.Locked=true 164 PA6.Signal=S_TIM 16_CH1164 PA6.Signal=S_TIM3_CH1 165 165 PA7.GPIOParameters=GPIO_Label 166 166 PA7.GPIO_Label=FAN_PWM … … 264 264 ProjectManager.UAScriptBeforePath= 265 265 ProjectManager.UnderRoot=false 266 ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_ADC1_Init-ADC1-false-HAL-true,5-MX_TIM1 6_Init-TIM16-false-HAL-true,6-MX_TIM17_Init-TIM17-false-HAL-true,7-MX_USART1_UART_Init-USART1-false-HAL-true,0-MX_CORTEX_M0+_Init-CORTEX_M0+-false-HAL-true266 ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_ADC1_Init-ADC1-false-HAL-true,5-MX_TIM17_Init-TIM17-false-HAL-true,6-MX_USART1_UART_Init-USART1-false-HAL-true,7-MX_TIM3_Init-TIM3-false-HAL-true,0-MX_CORTEX_M0+_Init-CORTEX_M0+-false-HAL-true 267 267 RCC.ADCFreq_Value=12000000 268 268 RCC.AHBFreq_Value=12000000 … … 287 287 RCC.SYSCLKFreq_VALUE=12000000 288 288 RCC.USART1Freq_Value=12000000 289 SH.S_TIM16_CH1.0=TIM16_CH1,Input_Capture1_from_TI1290 SH.S_TIM16_CH1.ConfNb=1291 289 SH.S_TIM17_CH1.0=TIM17_CH1,PWM Generation1 CH1 292 290 SH.S_TIM17_CH1.ConfNb=1 293 TIM16.AutoReloadPreload=TIM_AUTORELOAD_PRELOAD_ENABLE 294 TIM16.Channel=TIM_CHANNEL_1 295 TIM16.ICPolarity_CH1=TIM_INPUTCHANNELPOLARITY_FALLING 296 TIM16.IPParameters=Channel,Prescaler,AutoReloadPreload,ICPolarity_CH1 297 TIM16.Prescaler=3 291 SH.S_TIM3_CH1.0=TIM3_CH1,Input_Capture1_from_TI1 292 SH.S_TIM3_CH1.ConfNb=1 298 293 TIM17.AutoReloadPreload=TIM_AUTORELOAD_PRELOAD_ENABLE 299 294 TIM17.Channel=TIM_CHANNEL_1 … … 302 297 TIM17.Period=479 303 298 TIM17.Pulse=64 299 TIM3.AutoReloadPreload=TIM_AUTORELOAD_PRELOAD_ENABLE 300 TIM3.Channel-Input_Capture1_from_TI1=TIM_CHANNEL_1 301 TIM3.ICPolarity_CH1=TIM_INPUTCHANNELPOLARITY_FALLING 302 TIM3.IPParameters=Channel-Input_Capture1_from_TI1,Prescaler,AutoReloadPreload,ICPolarity_CH1 303 TIM3.Prescaler=3 304 304 USART1.IPParameters=VirtualMode-Asynchronous 305 305 USART1.VirtualMode-Asynchronous=VM_ASYNC … … 308 308 VP_SYS_VS_Systick.Mode=SysTick 309 309 VP_SYS_VS_Systick.Signal=SYS_VS_Systick 310 VP_TIM16_VS_ClockSourceINT.Mode=Enable_Timer311 VP_TIM16_VS_ClockSourceINT.Signal=TIM16_VS_ClockSourceINT312 310 VP_TIM17_VS_ClockSourceINT.Mode=Enable_Timer 313 311 VP_TIM17_VS_ClockSourceINT.Signal=TIM17_VS_ClockSourceINT 312 VP_TIM3_VS_ClockSourceINT.Mode=Internal 313 VP_TIM3_VS_ClockSourceINT.Signal=TIM3_VS_ClockSourceINT 314 314 board=custom
Note: See TracChangeset
for help on using the changeset viewer.