diff options
author | Oxore <oxore@protonmail.com> | 2023-03-05 20:20:45 +0300 |
---|---|---|
committer | Oxore <oxore@protonmail.com> | 2023-03-05 20:20:45 +0300 |
commit | ea807de65b0485ac58b6eae576209c64d4d5c4e9 (patch) | |
tree | b4264d20e1d700cfd9e0ece9d847a825dd1dfc03 /Libraries/NixieDriver/nixie_driver_config.c | |
parent | dd01e7ed22cea652061f0d12cecf929e04b285e9 (diff) |
Split app code and third party libraries
Diffstat (limited to 'Libraries/NixieDriver/nixie_driver_config.c')
-rw-r--r-- | Libraries/NixieDriver/nixie_driver_config.c | 161 |
1 files changed, 0 insertions, 161 deletions
diff --git a/Libraries/NixieDriver/nixie_driver_config.c b/Libraries/NixieDriver/nixie_driver_config.c deleted file mode 100644 index defc674..0000000 --- a/Libraries/NixieDriver/nixie_driver_config.c +++ /dev/null @@ -1,161 +0,0 @@ -#include "nixie_driver_config.h" - -static void NixieDriver_TIMConfig ( void ); -static void NixieDriver_SPIConfig ( void ); - -void NixieDriverConfig ( void ) -{ - NixieDriver_TIMConfig (); - NixieDriver_SPIConfig (); -} - -// ---------------------------------------------------------------------------- -// Конфигурируем таймер на 100 мкс. В прерывании каждые 100 мкс будет -// проворачиваться механизм динамической индикации ламп Nixie -// ---------------------------------------------------------------------------- -static void NixieDriver_TIMConfig ( void ) -{ - NVIC_InitTypeDef NVIC_InitStructure; - TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; - - /* NIX_DRIVER_TIMx clock enable */ - NIX_DRIVER_RCC_APBxPeriphClockCmd ( NIX_DRIVER_TIM_RCC, ENABLE ); - - /* Enable the NIX_DRIVER_TIMx gloabal Interrupt */ - NVIC_InitStructure.NVIC_IRQChannel = NIX_DRIVER_TIM_IRQx; - NVIC_InitStructure.NVIC_IRQChannelPriority = 1; - NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; - NVIC_Init ( &NVIC_InitStructure ); - - /* ----------------------------------------------------------------------- - In this example TIM7 counter clock (TIM7CLK) is set to APB1 clock (PCLK1), since - APB1 prescaler is set to 1 and TIM7 prescaler is set to 0. - - In this example TIM7 input clock (TIM7CLK) is set to APB1 clock (PCLK1), - since APB1 prescaler is set to 1. - TIM7CLK = PCLK1 = HCLK = SystemCoreClock - - With Prescaler set to 479 and Period to 24999, the TIM7 counter is updated each 250 ms - (i.e. and interrupt is generated each 250 ms) - TIM7 counter clock = TIM7CLK /((Prescaler + 1)*(Period + 1)) - = 48 MHz / ((25000)*(480)) - = 4 Hz - ==> TIM7 counter period = 250 ms - - Note: - SystemCoreClock variable holds HCLK frequency and is defined in system_stm32f0xx.c file. - Each time the core clock (HCLK) changes, user had to call SystemCoreClockUpdate() - function to update SystemCoreClock variable value. Otherwise, any configuration - based on this variable will be incorrect. - ----------------------------------------------------------------------- */ - - /* Time base configuration */ - TIM_TimeBaseStructure.TIM_Period = 100; // Это миксросекунды //24999 - TIM_TimeBaseStructure.TIM_Prescaler = (SystemCoreClock/1000000)-1; //479; - TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; - TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; - TIM_TimeBaseInit ( NIX_DRIVER_TIMx, &TIM_TimeBaseStructure ); - - /* NIX_DRIVER_TIMx Interrupts enable */ - TIM_ITConfig ( NIX_DRIVER_TIMx, TIM_IT_Update, ENABLE ); - - /* NIX_DRIVER_TIMx enable counter */ - TIM_Cmd ( NIX_DRIVER_TIMx, ENABLE ); -} - - -// ---------------------------------------------------------------------------- -// -// ---------------------------------------------------------------------------- -static void NixieDriver_SPIConfig ( void ) -{ - GPIO_InitTypeDef GPIO_InitStructure; - SPI_InitTypeDef SPI_InitStructure; - NVIC_InitTypeDef NVIC_InitStructure; - - /* Enable the SPI periph */ - NIX_SPIx_RCC_APBxPeriphClockCmd ( NIX_SPIx_CLK, ENABLE ); - - /* Enable SCK, MOSI, MISO and NSS GPIO clocks */ - RCC_AHBPeriphClockCmd ( NIX_SPIx_SCK_GPIO_CLK | - NIX_SPIx_MOSI_GPIO_CLK | - NIX_SPIx_ST_GPIO_CLK | - NIX_GPIOx_TUB_P1_GPIO_CLK | - NIX_GPIOx_TUB_P2_GPIO_CLK, - ENABLE ); - - GPIO_PinAFConfig ( NIX_SPIx_SCK_GPIO_PORT, NIX_SPIx_SCK_SOURCE, NIX_SPIx_SCK_AF ); - GPIO_PinAFConfig ( NIX_SPIx_MOSI_GPIO_PORT, NIX_SPIx_MOSI_SOURCE, NIX_SPIx_MOSI_AF ); - //GPIO_PinAFConfig ( NIX_SPIx_ST_GPIO_PORT, NIX_SPIx_ST_SOURCE, NIX_SPIx_ST_AF ); - - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; - GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; - GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN; - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_Level_3; - - /* SPI SCK pin configuration */ - GPIO_InitStructure.GPIO_Pin = NIX_SPIx_SCK_PIN; - GPIO_Init ( NIX_SPIx_SCK_GPIO_PORT, &GPIO_InitStructure ); - - /* SPI MOSI pin configuration */ - GPIO_InitStructure.GPIO_Pin = NIX_SPIx_MOSI_PIN; - GPIO_Init ( NIX_SPIx_MOSI_GPIO_PORT, &GPIO_InitStructure ); - - /* GPIO ST pin configuration */ - GPIO_InitStructure.GPIO_Pin = NIX_SPIx_ST_PIN; - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; - //GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; - GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; - GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_Level_3; - GPIO_Init ( NIX_SPIx_ST_GPIO_PORT, &GPIO_InitStructure ); - - // Пины управления точками на лампах (не хватило ног сдвиговых редисок) - - /* GPIO tub_dp1 pin configuration */ - GPIO_InitStructure.GPIO_Pin = NIX_GPIOx_TUB_DP1_PIN; - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; - GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; - GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_Level_3; - GPIO_Init ( NIX_GPIOx_TUB_DP1_PORT, &GPIO_InitStructure ); - - /* GPIO tub_dp2 pin configuration */ - GPIO_InitStructure.GPIO_Pin = NIX_GPIOx_TUB_DP2_PIN; - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; - GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; - GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_Level_3; - GPIO_Init ( NIX_GPIOx_TUB_DP2_PORT, &GPIO_InitStructure ); - - /* SPI configuration -------------------------------------------------------*/ - SPI_I2S_DeInit ( NIX_SPIx ); - SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex; - //SPI_InitStructure.SPI_Direction = SPI_Direction_1Line_Tx; - SPI_InitStructure.SPI_DataSize = SPI_DataSize_16b; - SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low; - SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge; - SPI_InitStructure.SPI_NSS = SPI_NSS_Soft; - //SPI_InitStructure.SPI_NSS = SPI_NSS_Hard; - SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_8; - SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB; - SPI_InitStructure.SPI_CRCPolynomial = 7; - SPI_InitStructure.SPI_Mode = SPI_Mode_Master; - SPI_Init ( NIX_SPIx, &SPI_InitStructure ); - - /* Enable the SPI peripheral */ - SPI_Cmd ( NIX_SPIx, ENABLE ); - - /* Configure the SPI interrupt priority */ - NVIC_InitStructure.NVIC_IRQChannel = NIX_SPIx_IRQn; - NVIC_InitStructure.NVIC_IRQChannelPriority = 0; - NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; - NVIC_Init ( &NVIC_InitStructure ); - - // /* Enable the Tx buffer empty interrupt */ - SPI_I2S_ITConfig ( NIX_SPIx, SPI_I2S_IT_TXE, ENABLE ); - - NIX_DRIVER_RESET_ST_PIN; - NIX_DRIVER_RESET_TUB_DP1_PIN; - NIX_DRIVER_RESET_TUB_DP2_PIN; -} |