From 76ba24e5271c4e648b04ccf7c561f5c14d222b3f Mon Sep 17 00:00:00 2001 From: bartool Date: Sat, 12 Aug 2023 19:24:15 +0200 Subject: [PATCH] [wip] tim1 as clock source 3 channels --- firmware/.vscode/launch.json | 1 - .../Core/Inc/tim.h | 3 + .../Core/Src/main.c | 128 +++++++++-------- .../Core/Src/tim.c | 135 +++++++++++++++++- firmware/func_gen_stm32f303re_nucleo/Makefile | 2 +- .../func_gen_stm32f303re_nucleo.ioc | 114 +++++++++------ 6 files changed, 274 insertions(+), 109 deletions(-) diff --git a/firmware/.vscode/launch.json b/firmware/.vscode/launch.json index ae12e0f..7d43f68 100644 --- a/firmware/.vscode/launch.json +++ b/firmware/.vscode/launch.json @@ -14,7 +14,6 @@ "servertype": "jlink", "device": "STM32F303RE", "interface": "swd", - "runToMain": true, "svdFile": "STM32F303xE.svd", "preLaunchTask": "${defaultBuildTask}", "rttConfig": { diff --git a/firmware/func_gen_stm32f303re_nucleo/Core/Inc/tim.h b/firmware/func_gen_stm32f303re_nucleo/Core/Inc/tim.h index 4bb229d..77fe771 100644 --- a/firmware/func_gen_stm32f303re_nucleo/Core/Inc/tim.h +++ b/firmware/func_gen_stm32f303re_nucleo/Core/Inc/tim.h @@ -32,6 +32,8 @@ extern "C" { /* USER CODE END Includes */ +extern TIM_HandleTypeDef htim1; + extern TIM_HandleTypeDef htim2; extern TIM_HandleTypeDef htim3; @@ -42,6 +44,7 @@ extern TIM_HandleTypeDef htim17; /* USER CODE END Private defines */ +void MX_TIM1_Init(void); void MX_TIM2_Init(void); void MX_TIM3_Init(void); void MX_TIM17_Init(void); diff --git a/firmware/func_gen_stm32f303re_nucleo/Core/Src/main.c b/firmware/func_gen_stm32f303re_nucleo/Core/Src/main.c index c224186..d97aee7 100644 --- a/firmware/func_gen_stm32f303re_nucleo/Core/Src/main.c +++ b/firmware/func_gen_stm32f303re_nucleo/Core/Src/main.c @@ -67,9 +67,9 @@ void RTT_console_logger(ulog_level_t severity, char *msg); /* USER CODE END 0 */ /** - * @brief The application entry point. - * @retval int - */ + * @brief The application entry point. + * @retval int + */ int main(void) { /* USER CODE BEGIN 1 */ @@ -101,52 +101,56 @@ int main(void) MX_TIM2_Init(); MX_TIM3_Init(); MX_TIM17_Init(); + MX_TIM1_Init(); /* USER CODE BEGIN 2 */ - ulog_init(); - ulog_subscribe(RTT_console_logger, ULOG_TRACE_LEVEL); + ulog_init(); + ulog_subscribe(RTT_console_logger, ULOG_TRACE_LEVEL); - HAL_TIM_Encoder_Start(&htim3, TIM_CHANNEL_ALL); - // SEGGER_RTT_WriteString(0, "App start...\n"); - ULOG_INFO("start app..."); + HAL_TIM_Encoder_Start(&htim3, TIM_CHANNEL_ALL); + HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_2); + HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_3); + HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_4); + // SEGGER_RTT_WriteString(0, "App start...\n"); + ULOG_INFO("start app..."); - hst7565.hspi = &hspi3; - hst7565.cs_port = ST7565_CS_GPIO_Port; - hst7565.cs_pin = ST7565_CS_Pin; - hst7565.a0_port = ST7565_A0_GPIO_Port; - hst7565.a0_pin = ST7565_A0_Pin; - hst7565.rst_port = ST7565_RST_GPIO_Port; - hst7565.rst_pin = ST7565_RST_Pin; - ST7565_Init(&hst7565, &disp); + hst7565.hspi = &hspi3; + hst7565.cs_port = ST7565_CS_GPIO_Port; + hst7565.cs_pin = ST7565_CS_Pin; + hst7565.a0_port = ST7565_A0_GPIO_Port; + hst7565.a0_pin = ST7565_A0_Pin; + hst7565.rst_port = ST7565_RST_GPIO_Port; + hst7565.rst_pin = ST7565_RST_Pin; + ST7565_Init(&hst7565, &disp); /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ - DISP_clearScreen(&disp); - ST7565_DisplayAll(&hst7565); - HAL_Delay(1000); - uint32_t last_tick = HAL_GetTick(); - APP_init(&app_data); - while (1) - { - CTRL_buttonsHandler(); - if (HAL_GetTick() - last_tick > 100) - { - last_tick = HAL_GetTick(); - ST7565_DisplayAll(&hst7565); - LAY_drawDisplayLayout(&disp, &app_data); - } + DISP_clearScreen(&disp); + ST7565_DisplayAll(&hst7565); + HAL_Delay(1000); + uint32_t last_tick = HAL_GetTick(); + APP_init(&app_data); + while (1) + { + CTRL_buttonsHandler(); + if (HAL_GetTick() - last_tick > 100) + { + last_tick = HAL_GetTick(); + ST7565_DisplayAll(&hst7565); + LAY_drawDisplayLayout(&disp, &app_data); + } /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ - } + } /* USER CODE END 3 */ } /** - * @brief System Clock Configuration - * @retval None - */ + * @brief System Clock Configuration + * @retval None + */ void SystemClock_Config(void) { RCC_OscInitTypeDef RCC_OscInitStruct = {0}; @@ -154,8 +158,8 @@ void SystemClock_Config(void) RCC_PeriphCLKInitTypeDef PeriphClkInit = {0}; /** Initializes the RCC Oscillators according to the specified parameters - * in the RCC_OscInitTypeDef structure. - */ + * in the RCC_OscInitTypeDef structure. + */ RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI; RCC_OscInitStruct.HSIState = RCC_HSI_ON; RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT; @@ -169,9 +173,8 @@ void SystemClock_Config(void) } /** Initializes the CPU, AHB and APB buses clocks - */ - RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK - |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; + */ + RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2; RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; @@ -181,11 +184,10 @@ void SystemClock_Config(void) { Error_Handler(); } - PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART2|RCC_PERIPHCLK_I2C1 - |RCC_PERIPHCLK_TIM17|RCC_PERIPHCLK_TIM2 - |RCC_PERIPHCLK_TIM34; + PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART2 | RCC_PERIPHCLK_I2C1 | RCC_PERIPHCLK_TIM1 | RCC_PERIPHCLK_TIM17 | RCC_PERIPHCLK_TIM2 | RCC_PERIPHCLK_TIM34; PeriphClkInit.Usart2ClockSelection = RCC_USART2CLKSOURCE_PCLK1; PeriphClkInit.I2c1ClockSelection = RCC_I2C1CLKSOURCE_HSI; + PeriphClkInit.Tim1ClockSelection = RCC_TIM1CLK_HCLK; PeriphClkInit.Tim17ClockSelection = RCC_TIM17CLK_HCLK; PeriphClkInit.Tim2ClockSelection = RCC_TIM2CLK_HCLK; PeriphClkInit.Tim34ClockSelection = RCC_TIM34CLK_HCLK; @@ -198,41 +200,41 @@ void SystemClock_Config(void) /* USER CODE BEGIN 4 */ void RTT_console_logger(ulog_level_t severity, char *msg) { - SEGGER_RTT_printf(0, "[%s]: %s\n", - // HAL_GetTick(), // user defined function - ulog_level_name(severity), - msg); + SEGGER_RTT_printf(0, "[%s]: %s\n", + // HAL_GetTick(), // user defined function + ulog_level_name(severity), + msg); } /* USER CODE END 4 */ /** - * @brief This function is executed in case of error occurrence. - * @retval None - */ + * @brief This function is executed in case of error occurrence. + * @retval None + */ void Error_Handler(void) { /* USER CODE BEGIN Error_Handler_Debug */ - /* User can add his own implementation to report the HAL error return state */ - __disable_irq(); - while (1) - { - } + /* User can add his own implementation to report the HAL error return state */ + __disable_irq(); + while (1) + { + } /* USER CODE END Error_Handler_Debug */ } -#ifdef USE_FULL_ASSERT +#ifdef USE_FULL_ASSERT /** - * @brief Reports the name of the source file and the source line number - * where the assert_param error has occurred. - * @param file: pointer to the source file name - * @param line: assert_param error line source number - * @retval None - */ + * @brief Reports the name of the source file and the source line number + * where the assert_param error has occurred. + * @param file: pointer to the source file name + * @param line: assert_param error line source number + * @retval None + */ void assert_failed(uint8_t *file, uint32_t line) { /* USER CODE BEGIN 6 */ - /* User can add his own implementation to report the file name and line number, - ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ + /* User can add his own implementation to report the file name and line number, + ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ /* USER CODE END 6 */ } #endif /* USE_FULL_ASSERT */ diff --git a/firmware/func_gen_stm32f303re_nucleo/Core/Src/tim.c b/firmware/func_gen_stm32f303re_nucleo/Core/Src/tim.c index d0fcdbc..8656d46 100644 --- a/firmware/func_gen_stm32f303re_nucleo/Core/Src/tim.c +++ b/firmware/func_gen_stm32f303re_nucleo/Core/Src/tim.c @@ -24,10 +24,95 @@ /* USER CODE END 0 */ +TIM_HandleTypeDef htim1; TIM_HandleTypeDef htim2; TIM_HandleTypeDef htim3; TIM_HandleTypeDef htim17; +/* TIM1 init function */ +void MX_TIM1_Init(void) +{ + + /* USER CODE BEGIN TIM1_Init 0 */ + + /* USER CODE END TIM1_Init 0 */ + + TIM_ClockConfigTypeDef sClockSourceConfig = {0}; + TIM_MasterConfigTypeDef sMasterConfig = {0}; + TIM_OC_InitTypeDef sConfigOC = {0}; + TIM_BreakDeadTimeConfigTypeDef sBreakDeadTimeConfig = {0}; + + /* USER CODE BEGIN TIM1_Init 1 */ + + /* USER CODE END TIM1_Init 1 */ + htim1.Instance = TIM1; + htim1.Init.Prescaler = 0; + htim1.Init.CounterMode = TIM_COUNTERMODE_UP; + htim1.Init.Period = 2; + htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; + htim1.Init.RepetitionCounter = 0; + htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE; + if (HAL_TIM_Base_Init(&htim1) != HAL_OK) + { + Error_Handler(); + } + sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL; + if (HAL_TIM_ConfigClockSource(&htim1, &sClockSourceConfig) != HAL_OK) + { + Error_Handler(); + } + if (HAL_TIM_PWM_Init(&htim1) != HAL_OK) + { + Error_Handler(); + } + sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; + sMasterConfig.MasterOutputTrigger2 = TIM_TRGO2_RESET; + sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; + if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != 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_DISABLE; + sConfigOC.OCIdleState = TIM_OCIDLESTATE_RESET; + sConfigOC.OCNIdleState = TIM_OCNIDLESTATE_RESET; + if (HAL_TIM_PWM_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_2) != HAL_OK) + { + Error_Handler(); + } + if (HAL_TIM_PWM_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_3) != HAL_OK) + { + Error_Handler(); + } + sConfigOC.OCFastMode = TIM_OCFAST_ENABLE; + if (HAL_TIM_PWM_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_4) != 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.Break2State = TIM_BREAK2_DISABLE; + sBreakDeadTimeConfig.Break2Polarity = TIM_BREAK2POLARITY_HIGH; + sBreakDeadTimeConfig.Break2Filter = 0; + sBreakDeadTimeConfig.AutomaticOutput = TIM_AUTOMATICOUTPUT_DISABLE; + if (HAL_TIMEx_ConfigBreakDeadTime(&htim1, &sBreakDeadTimeConfig) != HAL_OK) + { + Error_Handler(); + } + /* USER CODE BEGIN TIM1_Init 2 */ + + /* USER CODE END TIM1_Init 2 */ + HAL_TIM_MspPostInit(&htim1); + +} /* TIM2 init function */ void MX_TIM2_Init(void) { @@ -174,7 +259,18 @@ void MX_TIM17_Init(void) void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle) { - if(tim_baseHandle->Instance==TIM2) + if(tim_baseHandle->Instance==TIM1) + { + /* USER CODE BEGIN TIM1_MspInit 0 */ + + /* USER CODE END TIM1_MspInit 0 */ + /* TIM1 clock enable */ + __HAL_RCC_TIM1_CLK_ENABLE(); + /* USER CODE BEGIN TIM1_MspInit 1 */ + + /* USER CODE END TIM1_MspInit 1 */ + } + else if(tim_baseHandle->Instance==TIM2) { /* USER CODE BEGIN TIM2_MspInit 0 */ @@ -231,7 +327,29 @@ void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle) { GPIO_InitTypeDef GPIO_InitStruct = {0}; - if(timHandle->Instance==TIM17) + if(timHandle->Instance==TIM1) + { + /* USER CODE BEGIN TIM1_MspPostInit 0 */ + + /* USER CODE END TIM1_MspPostInit 0 */ + __HAL_RCC_GPIOC_CLK_ENABLE(); + /**TIM1 GPIO Configuration + PC1 ------> TIM1_CH2 + PC2 ------> TIM1_CH3 + PC3 ------> TIM1_CH4 + */ + GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF2_TIM1; + HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); + + /* USER CODE BEGIN TIM1_MspPostInit 1 */ + + /* USER CODE END TIM1_MspPostInit 1 */ + } + else if(timHandle->Instance==TIM17) { /* USER CODE BEGIN TIM17_MspPostInit 0 */ @@ -258,7 +376,18 @@ void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle) void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* tim_baseHandle) { - if(tim_baseHandle->Instance==TIM2) + if(tim_baseHandle->Instance==TIM1) + { + /* USER CODE BEGIN TIM1_MspDeInit 0 */ + + /* USER CODE END TIM1_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_TIM1_CLK_DISABLE(); + /* USER CODE BEGIN TIM1_MspDeInit 1 */ + + /* USER CODE END TIM1_MspDeInit 1 */ + } + else if(tim_baseHandle->Instance==TIM2) { /* USER CODE BEGIN TIM2_MspDeInit 0 */ diff --git a/firmware/func_gen_stm32f303re_nucleo/Makefile b/firmware/func_gen_stm32f303re_nucleo/Makefile index cfde730..799c638 100644 --- a/firmware/func_gen_stm32f303re_nucleo/Makefile +++ b/firmware/func_gen_stm32f303re_nucleo/Makefile @@ -1,5 +1,5 @@ ########################################################################################################################## -# File automatically-generated by tool: [projectgenerator] version: [3.17.1] date: [Tue Aug 01 10:57:07 CEST 2023] +# File automatically-generated by tool: [projectgenerator] version: [3.17.1] date: [Sat Aug 12 13:08:17 CEST 2023] ########################################################################################################################## # ------------------------------------------------ diff --git a/firmware/func_gen_stm32f303re_nucleo/func_gen_stm32f303re_nucleo.ioc b/firmware/func_gen_stm32f303re_nucleo/func_gen_stm32f303re_nucleo.ioc index bc9f637..01a5c78 100644 --- a/firmware/func_gen_stm32f303re_nucleo/func_gen_stm32f303re_nucleo.ioc +++ b/firmware/func_gen_stm32f303re_nucleo/func_gen_stm32f303re_nucleo.ioc @@ -9,57 +9,62 @@ Mcu.CPN=STM32F303RET6 Mcu.Family=STM32F3 Mcu.IP0=I2C1 Mcu.IP1=NVIC +Mcu.IP10=USART2 Mcu.IP2=RCC Mcu.IP3=SPI2 Mcu.IP4=SPI3 Mcu.IP5=SYS -Mcu.IP6=TIM2 -Mcu.IP7=TIM3 -Mcu.IP8=TIM17 -Mcu.IP9=USART2 -Mcu.IPNb=10 +Mcu.IP6=TIM1 +Mcu.IP7=TIM2 +Mcu.IP8=TIM3 +Mcu.IP9=TIM17 +Mcu.IPNb=11 Mcu.Name=STM32F303R(D-E)Tx Mcu.Package=LQFP64 Mcu.Pin0=PC13 Mcu.Pin1=PC14-OSC32_IN -Mcu.Pin10=PA5 -Mcu.Pin11=PA6 -Mcu.Pin12=PA7 -Mcu.Pin13=PB10 -Mcu.Pin14=PB11 -Mcu.Pin15=PB12 -Mcu.Pin16=PB13 -Mcu.Pin17=PB14 -Mcu.Pin18=PB15 -Mcu.Pin19=PC8 +Mcu.Pin10=PA2 +Mcu.Pin11=PA3 +Mcu.Pin12=PA4 +Mcu.Pin13=PA5 +Mcu.Pin14=PA6 +Mcu.Pin15=PA7 +Mcu.Pin16=PB10 +Mcu.Pin17=PB11 +Mcu.Pin18=PB12 +Mcu.Pin19=PB13 Mcu.Pin2=PC15-OSC32_OUT -Mcu.Pin20=PC9 -Mcu.Pin21=PA8 -Mcu.Pin22=PA9 -Mcu.Pin23=PA10 -Mcu.Pin24=PA11 -Mcu.Pin25=PA12 -Mcu.Pin26=PA13 -Mcu.Pin27=PA14 -Mcu.Pin28=PC10 -Mcu.Pin29=PC11 +Mcu.Pin20=PB14 +Mcu.Pin21=PB15 +Mcu.Pin22=PC8 +Mcu.Pin23=PC9 +Mcu.Pin24=PA8 +Mcu.Pin25=PA9 +Mcu.Pin26=PA10 +Mcu.Pin27=PA11 +Mcu.Pin28=PA12 +Mcu.Pin29=PA13 Mcu.Pin3=PF0-OSC_IN -Mcu.Pin30=PC12 -Mcu.Pin31=PB3 -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.Pin30=PA14 +Mcu.Pin31=PC10 +Mcu.Pin32=PC11 +Mcu.Pin33=PC12 +Mcu.Pin34=PB3 +Mcu.Pin35=PB5 +Mcu.Pin36=PB6 +Mcu.Pin37=PB7 +Mcu.Pin38=PB9 +Mcu.Pin39=VP_SYS_VS_Systick Mcu.Pin4=PF1-OSC_OUT -Mcu.Pin5=PA0 -Mcu.Pin6=PA1 -Mcu.Pin7=PA2 -Mcu.Pin8=PA3 -Mcu.Pin9=PA4 -Mcu.PinsNb=39 +Mcu.Pin40=VP_TIM1_VS_ClockSourceINT +Mcu.Pin41=VP_TIM2_VS_ClockSourceINT +Mcu.Pin42=VP_TIM17_VS_ClockSourceINT +Mcu.Pin5=PC1 +Mcu.Pin6=PC2 +Mcu.Pin7=PC3 +Mcu.Pin8=PA0 +Mcu.Pin9=PA1 +Mcu.PinsNb=43 Mcu.ThirdPartyNb=0 Mcu.UserConstants= Mcu.UserName=STM32F303RETx @@ -173,6 +178,9 @@ PB9.GPIOParameters=GPIO_Label PB9.GPIO_Label=AMP2_CS PB9.Locked=true PB9.Signal=GPIO_Output +PC1.GPIOParameters=GPIO_Speed +PC1.GPIO_Speed=GPIO_SPEED_FREQ_HIGH +PC1.Signal=S_TIM1_CH2 PC10.GPIOParameters=GPIO_Label PC10.GPIO_Label=ST7565_SCK PC10.Locked=true @@ -197,6 +205,12 @@ PC14-OSC32_IN.Signal=RCC_OSC32_IN PC15-OSC32_OUT.Locked=true PC15-OSC32_OUT.Mode=LSE-External-Oscillator PC15-OSC32_OUT.Signal=RCC_OSC32_OUT +PC2.GPIOParameters=GPIO_Speed +PC2.GPIO_Speed=GPIO_SPEED_FREQ_HIGH +PC2.Signal=S_TIM1_CH3 +PC3.GPIOParameters=GPIO_Speed +PC3.GPIO_Speed=GPIO_SPEED_FREQ_HIGH +PC3.Signal=S_TIM1_CH4 PC8.GPIOParameters=GPIO_Label PC8.GPIO_Label=ST7565_RST PC8.Locked=true @@ -238,7 +252,7 @@ ProjectManager.StackSize=0x400 ProjectManager.TargetToolchain=Makefile ProjectManager.ToolChainLocation= ProjectManager.UnderRoot=false -ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_USART2_UART_Init-USART2-false-HAL-true,4-MX_SPI2_Init-SPI2-false-HAL-true,5-MX_I2C1_Init-I2C1-false-HAL-true,6-MX_SPI3_Init-SPI3-false-HAL-true,7-MX_TIM2_Init-TIM2-false-HAL-true,8-MX_TIM3_Init-TIM3-false-HAL-true +ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_USART2_UART_Init-USART2-false-HAL-true,4-MX_SPI2_Init-SPI2-false-HAL-true,5-MX_I2C1_Init-I2C1-false-HAL-true,6-MX_SPI3_Init-SPI3-false-HAL-true,7-MX_TIM2_Init-TIM2-false-HAL-true,8-MX_TIM3_Init-TIM3-false-HAL-true,9-MX_TIM17_Init-TIM17-false-HAL-true,10-MX_TIM1_Init-TIM1-false-HAL-true RCC.ADC12outputFreq_Value=72000000 RCC.ADC34outputFreq_Value=72000000 RCC.AHBFreq_Value=72000000 @@ -293,6 +307,12 @@ 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_TIM1_CH2.0=TIM1_CH2,PWM Generation2 CH2 +SH.S_TIM1_CH2.ConfNb=1 +SH.S_TIM1_CH3.0=TIM1_CH3,PWM Generation3 CH3 +SH.S_TIM1_CH3.ConfNb=1 +SH.S_TIM1_CH4.0=TIM1_CH4,PWM Generation4 CH4 +SH.S_TIM1_CH4.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 @@ -313,6 +333,16 @@ SPI3.Direction=SPI_DIRECTION_1LINE SPI3.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate,BaudRatePrescaler,DataSize SPI3.Mode=SPI_MODE_MASTER SPI3.VirtualType=VM_MASTER +TIM1.AutoReloadPreload=TIM_AUTORELOAD_PRELOAD_ENABLE +TIM1.Channel-PWM\ Generation2\ CH2=TIM_CHANNEL_2 +TIM1.Channel-PWM\ Generation3\ CH3=TIM_CHANNEL_3 +TIM1.Channel-PWM\ Generation4\ CH4=TIM_CHANNEL_4 +TIM1.IPParameters=Channel-PWM Generation4 CH4,Channel-PWM Generation3 CH3,Channel-PWM Generation2 CH2,Period,Pulse-PWM Generation2 CH2,Pulse-PWM Generation3 CH3,Pulse-PWM Generation4 CH4,AutoReloadPreload,OCFastMode_PWM-PWM Generation4 CH4 +TIM1.OCFastMode_PWM-PWM\ Generation4\ CH4=TIM_OCFAST_ENABLE +TIM1.Period=2 +TIM1.Pulse-PWM\ Generation2\ CH2=1 +TIM1.Pulse-PWM\ Generation3\ CH3=1 +TIM1.Pulse-PWM\ Generation4\ CH4=1 TIM17.Channel=TIM_CHANNEL_1 TIM17.IPParameters=Channel,Period,OCFastMode_PWM,OCIdleState_1,Pulse TIM17.OCFastMode_PWM=TIM_OCFAST_ENABLE @@ -331,6 +361,8 @@ 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_TIM1_VS_ClockSourceINT.Mode=Internal +VP_TIM1_VS_ClockSourceINT.Signal=TIM1_VS_ClockSourceINT VP_TIM2_VS_ClockSourceINT.Mode=Internal VP_TIM2_VS_ClockSourceINT.Signal=TIM2_VS_ClockSourceINT board=NUCLEO-F303RE