{wip} test timer clock source
This commit is contained in:
		| @@ -36,12 +36,17 @@ extern TIM_HandleTypeDef htim2; | ||||
|  | ||||
| extern TIM_HandleTypeDef htim3; | ||||
|  | ||||
| extern TIM_HandleTypeDef htim17; | ||||
|  | ||||
| /* USER CODE BEGIN Private defines */ | ||||
|  | ||||
| /* USER CODE END Private defines */ | ||||
|  | ||||
| void MX_TIM2_Init(void); | ||||
| void MX_TIM3_Init(void); | ||||
| void MX_TIM17_Init(void); | ||||
|  | ||||
| void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim); | ||||
|  | ||||
| /* USER CODE BEGIN Prototypes */ | ||||
|  | ||||
|   | ||||
| @@ -100,6 +100,7 @@ int main(void) | ||||
|   MX_SPI3_Init(); | ||||
|   MX_TIM2_Init(); | ||||
|   MX_TIM3_Init(); | ||||
|   MX_TIM17_Init(); | ||||
|   /* USER CODE BEGIN 2 */ | ||||
| 	ulog_init(); | ||||
| 	ulog_subscribe(RTT_console_logger, ULOG_TRACE_LEVEL); | ||||
| @@ -181,9 +182,11 @@ void SystemClock_Config(void) | ||||
|     Error_Handler(); | ||||
|   } | ||||
|   PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART2|RCC_PERIPHCLK_I2C1 | ||||
|                               |RCC_PERIPHCLK_TIM2|RCC_PERIPHCLK_TIM34; | ||||
|                               |RCC_PERIPHCLK_TIM17|RCC_PERIPHCLK_TIM2 | ||||
|                               |RCC_PERIPHCLK_TIM34; | ||||
|   PeriphClkInit.Usart2ClockSelection = RCC_USART2CLKSOURCE_PCLK1; | ||||
|   PeriphClkInit.I2c1ClockSelection = RCC_I2C1CLKSOURCE_HSI; | ||||
|   PeriphClkInit.Tim17ClockSelection = RCC_TIM17CLK_HCLK; | ||||
|   PeriphClkInit.Tim2ClockSelection = RCC_TIM2CLK_HCLK; | ||||
|   PeriphClkInit.Tim34ClockSelection = RCC_TIM34CLK_HCLK; | ||||
|   if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) | ||||
|   | ||||
| @@ -26,6 +26,7 @@ | ||||
|  | ||||
| TIM_HandleTypeDef htim2; | ||||
| TIM_HandleTypeDef htim3; | ||||
| TIM_HandleTypeDef htim17; | ||||
|  | ||||
| /* TIM2 init function */ | ||||
| void MX_TIM2_Init(void) | ||||
| @@ -110,6 +111,64 @@ void MX_TIM3_Init(void) | ||||
|  | ||||
|   /* USER CODE END TIM3_Init 2 */ | ||||
|  | ||||
| } | ||||
| /* TIM17 init function */ | ||||
| void MX_TIM17_Init(void) | ||||
| { | ||||
|  | ||||
|   /* USER CODE BEGIN TIM17_Init 0 */ | ||||
|  | ||||
|   /* USER CODE END TIM17_Init 0 */ | ||||
|  | ||||
|   TIM_OC_InitTypeDef sConfigOC = {0}; | ||||
|   TIM_BreakDeadTimeConfigTypeDef sBreakDeadTimeConfig = {0}; | ||||
|  | ||||
|   /* USER CODE BEGIN TIM17_Init 1 */ | ||||
|  | ||||
|   /* USER CODE END TIM17_Init 1 */ | ||||
|   htim17.Instance = TIM17; | ||||
|   htim17.Init.Prescaler = 0; | ||||
|   htim17.Init.CounterMode = TIM_COUNTERMODE_UP; | ||||
|   htim17.Init.Period = 2; | ||||
|   htim17.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; | ||||
|   htim17.Init.RepetitionCounter = 0; | ||||
|   htim17.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; | ||||
|   if (HAL_TIM_Base_Init(&htim17) != HAL_OK) | ||||
|   { | ||||
|     Error_Handler(); | ||||
|   } | ||||
|   if (HAL_TIM_PWM_Init(&htim17) != HAL_OK) | ||||
|   { | ||||
|     Error_Handler(); | ||||
|   } | ||||
|   sConfigOC.OCMode = TIM_OCMODE_PWM1; | ||||
|   sConfigOC.Pulse = 1; | ||||
|   sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH; | ||||
|   sConfigOC.OCNPolarity = TIM_OCNPOLARITY_HIGH; | ||||
|   sConfigOC.OCFastMode = TIM_OCFAST_ENABLE; | ||||
|   sConfigOC.OCIdleState = TIM_OCIDLESTATE_RESET; | ||||
|   sConfigOC.OCNIdleState = TIM_OCNIDLESTATE_RESET; | ||||
|   if (HAL_TIM_PWM_ConfigChannel(&htim17, &sConfigOC, TIM_CHANNEL_1) != HAL_OK) | ||||
|   { | ||||
|     Error_Handler(); | ||||
|   } | ||||
|   sBreakDeadTimeConfig.OffStateRunMode = TIM_OSSR_DISABLE; | ||||
|   sBreakDeadTimeConfig.OffStateIDLEMode = TIM_OSSI_DISABLE; | ||||
|   sBreakDeadTimeConfig.LockLevel = TIM_LOCKLEVEL_OFF; | ||||
|   sBreakDeadTimeConfig.DeadTime = 0; | ||||
|   sBreakDeadTimeConfig.BreakState = TIM_BREAK_DISABLE; | ||||
|   sBreakDeadTimeConfig.BreakPolarity = TIM_BREAKPOLARITY_HIGH; | ||||
|   sBreakDeadTimeConfig.BreakFilter = 0; | ||||
|   sBreakDeadTimeConfig.AutomaticOutput = TIM_AUTOMATICOUTPUT_DISABLE; | ||||
|   if (HAL_TIMEx_ConfigBreakDeadTime(&htim17, &sBreakDeadTimeConfig) != HAL_OK) | ||||
|   { | ||||
|     Error_Handler(); | ||||
|   } | ||||
|   /* USER CODE BEGIN TIM17_Init 2 */ | ||||
|  | ||||
|   /* USER CODE END TIM17_Init 2 */ | ||||
|   HAL_TIM_MspPostInit(&htim17); | ||||
|  | ||||
| } | ||||
|  | ||||
| void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle) | ||||
| @@ -126,6 +185,17 @@ void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle) | ||||
|  | ||||
|   /* USER CODE END TIM2_MspInit 1 */ | ||||
|   } | ||||
|   else if(tim_baseHandle->Instance==TIM17) | ||||
|   { | ||||
|   /* USER CODE BEGIN TIM17_MspInit 0 */ | ||||
|  | ||||
|   /* USER CODE END TIM17_MspInit 0 */ | ||||
|     /* TIM17 clock enable */ | ||||
|     __HAL_RCC_TIM17_CLK_ENABLE(); | ||||
|   /* USER CODE BEGIN TIM17_MspInit 1 */ | ||||
|  | ||||
|   /* USER CODE END TIM17_MspInit 1 */ | ||||
|   } | ||||
| } | ||||
|  | ||||
| void HAL_TIM_Encoder_MspInit(TIM_HandleTypeDef* tim_encoderHandle) | ||||
| @@ -157,6 +227,33 @@ void HAL_TIM_Encoder_MspInit(TIM_HandleTypeDef* tim_encoderHandle) | ||||
|   /* USER CODE END TIM3_MspInit 1 */ | ||||
|   } | ||||
| } | ||||
| void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle) | ||||
| { | ||||
|  | ||||
|   GPIO_InitTypeDef GPIO_InitStruct = {0}; | ||||
|   if(timHandle->Instance==TIM17) | ||||
|   { | ||||
|   /* USER CODE BEGIN TIM17_MspPostInit 0 */ | ||||
|  | ||||
|   /* USER CODE END TIM17_MspPostInit 0 */ | ||||
|  | ||||
|     __HAL_RCC_GPIOB_CLK_ENABLE(); | ||||
|     /**TIM17 GPIO Configuration | ||||
|     PB5     ------> TIM17_CH1 | ||||
|     */ | ||||
|     GPIO_InitStruct.Pin = GPIO_PIN_5; | ||||
|     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; | ||||
|     GPIO_InitStruct.Pull = GPIO_NOPULL; | ||||
|     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; | ||||
|     GPIO_InitStruct.Alternate = GPIO_AF10_TIM17; | ||||
|     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); | ||||
|  | ||||
|   /* USER CODE BEGIN TIM17_MspPostInit 1 */ | ||||
|  | ||||
|   /* USER CODE END TIM17_MspPostInit 1 */ | ||||
|   } | ||||
|  | ||||
| } | ||||
|  | ||||
| void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* tim_baseHandle) | ||||
| { | ||||
| @@ -172,6 +269,17 @@ void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* tim_baseHandle) | ||||
|  | ||||
|   /* USER CODE END TIM2_MspDeInit 1 */ | ||||
|   } | ||||
|   else if(tim_baseHandle->Instance==TIM17) | ||||
|   { | ||||
|   /* USER CODE BEGIN TIM17_MspDeInit 0 */ | ||||
|  | ||||
|   /* USER CODE END TIM17_MspDeInit 0 */ | ||||
|     /* Peripheral clock disable */ | ||||
|     __HAL_RCC_TIM17_CLK_DISABLE(); | ||||
|   /* USER CODE BEGIN TIM17_MspDeInit 1 */ | ||||
|  | ||||
|   /* USER CODE END TIM17_MspDeInit 1 */ | ||||
|   } | ||||
| } | ||||
|  | ||||
| void HAL_TIM_Encoder_MspDeInit(TIM_HandleTypeDef* tim_encoderHandle) | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| ########################################################################################################################## | ||||
| # File automatically-generated by tool: [projectgenerator] version: [3.17.1] date: [Mon Jul 31 16:49:59 CEST 2023]  | ||||
| # File automatically-generated by tool: [projectgenerator] version: [3.17.1] date: [Tue Aug 01 10:57:07 CEST 2023]  | ||||
| ########################################################################################################################## | ||||
|  | ||||
| # ------------------------------------------------ | ||||
|   | ||||
| @@ -15,8 +15,9 @@ Mcu.IP4=SPI3 | ||||
| Mcu.IP5=SYS | ||||
| Mcu.IP6=TIM2 | ||||
| Mcu.IP7=TIM3 | ||||
| Mcu.IP8=USART2 | ||||
| Mcu.IPNb=9 | ||||
| Mcu.IP8=TIM17 | ||||
| Mcu.IP9=USART2 | ||||
| Mcu.IPNb=10 | ||||
| Mcu.Name=STM32F303R(D-E)Tx | ||||
| Mcu.Package=LQFP64 | ||||
| Mcu.Pin0=PC13 | ||||
| @@ -45,18 +46,20 @@ Mcu.Pin29=PC11 | ||||
| Mcu.Pin3=PF0-OSC_IN | ||||
| Mcu.Pin30=PC12 | ||||
| Mcu.Pin31=PB3 | ||||
| Mcu.Pin32=PB6 | ||||
| Mcu.Pin33=PB7 | ||||
| Mcu.Pin34=PB9 | ||||
| Mcu.Pin35=VP_SYS_VS_Systick | ||||
| Mcu.Pin36=VP_TIM2_VS_ClockSourceINT | ||||
| Mcu.Pin32=PB5 | ||||
| Mcu.Pin33=PB6 | ||||
| Mcu.Pin34=PB7 | ||||
| Mcu.Pin35=PB9 | ||||
| Mcu.Pin36=VP_SYS_VS_Systick | ||||
| Mcu.Pin37=VP_TIM2_VS_ClockSourceINT | ||||
| Mcu.Pin38=VP_TIM17_VS_ClockSourceINT | ||||
| Mcu.Pin4=PF1-OSC_OUT | ||||
| Mcu.Pin5=PA0 | ||||
| Mcu.Pin6=PA1 | ||||
| Mcu.Pin7=PA2 | ||||
| Mcu.Pin8=PA3 | ||||
| Mcu.Pin9=PA4 | ||||
| Mcu.PinsNb=37 | ||||
| Mcu.PinsNb=39 | ||||
| Mcu.ThirdPartyNb=0 | ||||
| Mcu.UserConstants= | ||||
| Mcu.UserName=STM32F303RETx | ||||
| @@ -160,6 +163,7 @@ PB3.GPIOParameters=GPIO_Label | ||||
| PB3.GPIO_Label=SWO | ||||
| PB3.Locked=true | ||||
| PB3.Signal=SYS_JTDO-TRACESWO | ||||
| PB5.Signal=S_TIM17_CH1 | ||||
| PB6.Locked=true | ||||
| PB6.Mode=I2C | ||||
| PB6.Signal=I2C1_SCL | ||||
| @@ -253,9 +257,9 @@ RCC.I2C1Freq_Value=8000000 | ||||
| RCC.I2C2Freq_Value=8000000 | ||||
| RCC.I2C3Freq_Value=8000000 | ||||
| RCC.I2SClocksFreq_Value=72000000 | ||||
| RCC.IPParameters=ADC12outputFreq_Value,ADC34outputFreq_Value,AHBFreq_Value,APB1CLKDivider,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,CortexFreq_Value,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI_VALUE,I2C1Freq_Value,I2C2Freq_Value,I2C3Freq_Value,I2SClocksFreq_Value,LSI_VALUE,MCOFreq_Value,PLLCLKFreq_Value,PLLM,PLLMCOFreq_Value,PLLMUL,PLLN,PLLP,PLLQ,RCC_PLLsource_Clock_Source_FROM_HSE,RTCFreq_Value,RTCHSEDivFreq_Value,SYSCLKFreq_VALUE,SYSCLKSourceVirtual,TIM15Freq_Value,TIM16Freq_Value,TIM17Freq_Value,TIM1Freq_Value,TIM20Freq_Value,TIM2Freq_Value,TIM3Freq_Value,TIM8Freq_Value,UART4Freq_Value,UART5Freq_Value,USART1Freq_Value,USART2Freq_Value,USART3Freq_Value,USBFreq_Value,VCOOutput2Freq_Value | ||||
| RCC.IPParameters=ADC12outputFreq_Value,ADC34outputFreq_Value,AHBFreq_Value,APB1CLKDivider,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,CortexFreq_Value,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI_VALUE,I2C1Freq_Value,I2C2Freq_Value,I2C3Freq_Value,I2SClocksFreq_Value,LSI_VALUE,MCOFreq_Value,PLLCLKFreq_Value,PLLM,PLLMCOFreq_Value,PLLMUL,PLLN,PLLP,PLLQ,RCC_MCODiv,RCC_MCOSource,RCC_PLLsource_Clock_Source_FROM_HSE,RTCFreq_Value,RTCHSEDivFreq_Value,SYSCLKFreq_VALUE,SYSCLKSourceVirtual,TIM15Freq_Value,TIM16Freq_Value,TIM17Freq_Value,TIM1Freq_Value,TIM20Freq_Value,TIM2Freq_Value,TIM3Freq_Value,TIM8Freq_Value,UART4Freq_Value,UART5Freq_Value,USART1Freq_Value,USART2Freq_Value,USART3Freq_Value,USBFreq_Value,VCOOutput2Freq_Value | ||||
| RCC.LSI_VALUE=40000 | ||||
| RCC.MCOFreq_Value=72000000 | ||||
| RCC.MCOFreq_Value=9000000 | ||||
| RCC.PLLCLKFreq_Value=72000000 | ||||
| RCC.PLLM=8 | ||||
| RCC.PLLMCOFreq_Value=72000000 | ||||
| @@ -263,6 +267,8 @@ RCC.PLLMUL=RCC_PLL_MUL9 | ||||
| RCC.PLLN=336 | ||||
| RCC.PLLP=RCC_PLLP_DIV4 | ||||
| RCC.PLLQ=7 | ||||
| RCC.RCC_MCODiv=RCC_MCODIV_8 | ||||
| RCC.RCC_MCOSource=RCC_MCO1SOURCE_PLLCLK | ||||
| RCC.RCC_PLLsource_Clock_Source_FROM_HSE=RCC_HSE_PREDIV_DIV2 | ||||
| RCC.RTCFreq_Value=40000 | ||||
| RCC.RTCHSEDivFreq_Value=250000 | ||||
| @@ -285,6 +291,8 @@ RCC.USBFreq_Value=72000000 | ||||
| RCC.VCOOutput2Freq_Value=8000000 | ||||
| SH.GPXTI13.0=GPIO_EXTI13 | ||||
| SH.GPXTI13.ConfNb=1 | ||||
| SH.S_TIM17_CH1.0=TIM17_CH1,PWM Generation1 CH1 | ||||
| SH.S_TIM17_CH1.ConfNb=1 | ||||
| SH.S_TIM3_CH1.0=TIM3_CH1,Encoder_Interface | ||||
| SH.S_TIM3_CH1.ConfNb=1 | ||||
| SH.S_TIM3_CH2.0=TIM3_CH2,Encoder_Interface | ||||
| @@ -305,6 +313,12 @@ SPI3.Direction=SPI_DIRECTION_1LINE | ||||
| SPI3.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate,BaudRatePrescaler,DataSize | ||||
| SPI3.Mode=SPI_MODE_MASTER | ||||
| SPI3.VirtualType=VM_MASTER | ||||
| TIM17.Channel=TIM_CHANNEL_1 | ||||
| TIM17.IPParameters=Channel,Period,OCFastMode_PWM,OCIdleState_1,Pulse | ||||
| TIM17.OCFastMode_PWM=TIM_OCFAST_ENABLE | ||||
| TIM17.OCIdleState_1=TIM_OCIDLESTATE_RESET | ||||
| TIM17.Period=2 | ||||
| TIM17.Pulse=1 | ||||
| TIM2.AutoReloadPreload=TIM_AUTORELOAD_PRELOAD_DISABLE | ||||
| TIM2.IPParameters=AutoReloadPreload | ||||
| TIM3.IC1Filter=15 | ||||
| @@ -315,6 +329,8 @@ USART2.IPParameters=VirtualMode-Asynchronous | ||||
| USART2.VirtualMode-Asynchronous=VM_ASYNC | ||||
| VP_SYS_VS_Systick.Mode=SysTick | ||||
| VP_SYS_VS_Systick.Signal=SYS_VS_Systick | ||||
| VP_TIM17_VS_ClockSourceINT.Mode=Enable_Timer | ||||
| VP_TIM17_VS_ClockSourceINT.Signal=TIM17_VS_ClockSourceINT | ||||
| VP_TIM2_VS_ClockSourceINT.Mode=Internal | ||||
| VP_TIM2_VS_ClockSourceINT.Signal=TIM2_VS_ClockSourceINT | ||||
| board=NUCLEO-F303RE | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| #include "main.h" | ||||
| #include "tim.h" | ||||
| #include "hw_button.h" | ||||
| #include "ctrl_bottom_button.h" | ||||
| #include "ctrl_channel_button.h" | ||||
| @@ -154,6 +155,14 @@ void CTRL_longPushedChanBtnEvent(ButtonKey_t *key) | ||||
| 	ULOG_TRACE("Chan btn(long): %d", key->instance); | ||||
| 	GEN_channel_t channel = btn_ch_to_chan[key->instance]; | ||||
|  | ||||
| 	if (channel == CHANNEL2) | ||||
| 	{ | ||||
| 		if (HAL_TIM_Base_Start(&htim17) == HAL_ERROR) | ||||
| 		{ | ||||
| 			HAL_TIM_Base_Stop(&htim17); | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	switch (signal_gen[channel].type) | ||||
| 	{ | ||||
| 	case GEN_FG_TYPE: | ||||
|   | ||||
		Reference in New Issue
	
	Block a user