X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=Src%2Fmain.c;h=de59f78369fc054eb53e7c83b568cc3ba3b56503;hb=f06abb81f5f7d6bffa600b41e66cc0b3c5a727c6;hp=241e3f5639dc0d56184f0e18edd20f7e12b53663;hpb=4b65af0c3b9e7d965515044e5761ba3003ee38aa;p=home-hw.git diff --git a/Src/main.c b/Src/main.c index 241e3f5..de59f78 100644 --- a/Src/main.c +++ b/Src/main.c @@ -37,13 +37,13 @@ ****************************************************************************** */ /* Includes ------------------------------------------------------------------*/ -#include "util.h" #include "main.h" #include "stm32f1xx_hal.h" -#include "usb.h" -#include "app.h" /* USER CODE BEGIN Includes */ +#include "util.h" +#include "usb.h" +#include "app.h" /* USER CODE END Includes */ @@ -63,6 +63,7 @@ static void MX_GPIO_Init(void); static void MX_I2C1_Init(void); static void MX_I2C2_Init(void); static void MX_USB_PCD_Init(void); +static void MX_TIM4_Init(void); /* USER CODE BEGIN PFP */ /* Private function prototypes -----------------------------------------------*/ @@ -118,6 +119,7 @@ int main(void) MX_I2C1_Init(); MX_I2C2_Init(); MX_USB_PCD_Init(); + MX_TIM4_Init(); /* USER CODE BEGIN 2 */ display_init(); usb_start(&usb); @@ -265,7 +267,7 @@ static void MX_I2C2_Init(void) /**I2C Initialization */ I2C_InitStruct.PeripheralMode = LL_I2C_MODE_I2C; - I2C_InitStruct.ClockSpeed = 100000; + I2C_InitStruct.ClockSpeed = 400000; I2C_InitStruct.DutyCycle = LL_I2C_DUTYCYCLE_2; I2C_InitStruct.OwnAddress1 = 0; I2C_InitStruct.TypeAcknowledge = LL_I2C_ACK; @@ -282,9 +284,49 @@ static void MX_I2C2_Init(void) } +/* TIM4 init function */ +static void MX_TIM4_Init(void) +{ + + LL_TIM_InitTypeDef TIM_InitStruct; + LL_TIM_OC_InitTypeDef TIM_OC_InitStruct; + + /* Peripheral clock enable */ + LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_TIM4); + + /* TIM4 interrupt Init */ + NVIC_SetPriority(TIM4_IRQn, NVIC_EncodePriority(NVIC_GetPriorityGrouping(),0, 0)); + NVIC_EnableIRQ(TIM4_IRQn); + + TIM_InitStruct.Prescaler = 7200; + TIM_InitStruct.CounterMode = LL_TIM_COUNTERMODE_UP; + TIM_InitStruct.Autoreload = 1000; + TIM_InitStruct.ClockDivision = LL_TIM_CLOCKDIVISION_DIV1; + LL_TIM_Init(TIM4, &TIM_InitStruct); + + LL_TIM_DisableARRPreload(TIM4); + + LL_TIM_SetClockSource(TIM4, LL_TIM_CLOCKSOURCE_INTERNAL); + + TIM_OC_InitStruct.OCMode = LL_TIM_OCMODE_FROZEN; + TIM_OC_InitStruct.OCState = LL_TIM_OCSTATE_DISABLE; + TIM_OC_InitStruct.OCNState = LL_TIM_OCSTATE_DISABLE; + TIM_OC_InitStruct.CompareValue = 0; + TIM_OC_InitStruct.OCPolarity = LL_TIM_OCPOLARITY_HIGH; + LL_TIM_OC_Init(TIM4, LL_TIM_CHANNEL_CH1, &TIM_OC_InitStruct); + + LL_TIM_OC_DisableFast(TIM4, LL_TIM_CHANNEL_CH1); + + LL_TIM_SetTriggerOutput(TIM4, LL_TIM_TRGO_RESET); + + LL_TIM_DisableMasterSlaveMode(TIM4); + +} + /* USB init function */ static void MX_USB_PCD_Init(void) { + hpcd_USB_FS.Instance = USB; hpcd_USB_FS.Init.dev_endpoints = 8; hpcd_USB_FS.Init.speed = PCD_SPEED_FULL; @@ -296,6 +338,7 @@ static void MX_USB_PCD_Init(void) { _Error_Handler(__FILE__, __LINE__); } + } /** Configure pins as