X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=Src%2Fmain.c;h=de59f78369fc054eb53e7c83b568cc3ba3b56503;hb=f06abb81f5f7d6bffa600b41e66cc0b3c5a727c6;hp=1810399209057f4e002d6337bc2436feb19391c8;hpb=7ba1753f4c2bdd08f9fd88445ecc988100605199;p=home-hw.git diff --git a/Src/main.c b/Src/main.c index 1810399..de59f78 100644 --- a/Src/main.c +++ b/Src/main.c @@ -37,12 +37,13 @@ ****************************************************************************** */ /* Includes ------------------------------------------------------------------*/ -#include "util.h" #include "main.h" #include "stm32f1xx_hal.h" -#include "usb.h" /* USER CODE BEGIN Includes */ +#include "util.h" +#include "usb.h" +#include "app.h" /* USER CODE END Includes */ @@ -62,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 -----------------------------------------------*/ @@ -117,7 +119,9 @@ 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); /* USER CODE END 2 */ @@ -127,11 +131,13 @@ int main(void) int cnt = 0; while (1) { + debug_printf("Counter = %d\n", cnt); + display_counter(cnt); LL_GPIO_SetOutputPin(LED_GPIO_Port, LED_Pin); LL_mDelay(500); LL_GPIO_ResetOutputPin(LED_GPIO_Port, LED_Pin); LL_mDelay(500); - debug_printf("Counter = %d\n", cnt++); + cnt++; /* USER CODE END WHILE */ @@ -278,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; @@ -292,6 +338,7 @@ static void MX_USB_PCD_Init(void) { _Error_Handler(__FILE__, __LINE__); } + } /** Configure pins as