diff options
Diffstat (limited to 'Libraries/LED_Driver')
-rw-r--r-- | Libraries/LED_Driver/led_driver_config.c | 138 | ||||
-rw-r--r-- | Libraries/LED_Driver/led_driver_config.h | 44 | ||||
-rw-r--r-- | Libraries/LED_Driver/led_driver_process.c | 31 | ||||
-rw-r--r-- | Libraries/LED_Driver/led_driver_process.h | 6 | ||||
-rw-r--r-- | Libraries/LED_Driver/led_driver_task.c | 26 | ||||
-rw-r--r-- | Libraries/LED_Driver/led_driver_task.h | 9 |
6 files changed, 0 insertions, 254 deletions
diff --git a/Libraries/LED_Driver/led_driver_config.c b/Libraries/LED_Driver/led_driver_config.c deleted file mode 100644 index 3b2b081..0000000 --- a/Libraries/LED_Driver/led_driver_config.c +++ /dev/null @@ -1,138 +0,0 @@ -#include "led_driver_config.h" - -static void LED_TIMConfig ( void ); -static void LED_SPIConfig ( void ); - -// ---------------------------------------------------------------------------- -// Подготовка железа, прерываний и тд для работы с RGB светодиодиками -// ---------------------------------------------------------------------------- -void LED_Driver_Config ( void ) -{ - LED_TIMConfig (); - LED_SPIConfig (); -} - - -// ---------------------------------------------------------------------------- -// -// ---------------------------------------------------------------------------- -static void LED_TIMConfig ( void ) -{ - NVIC_InitTypeDef NVIC_InitStructure; - TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; - - /* LED_TIMx clock enable */ - LED_RCC_APBxPeriphClockCmd ( LED_TIM_RCC, ENABLE ); - - /* Enable the LED_TIMx gloabal Interrupt */ - NVIC_InitStructure.NVIC_IRQChannel = LED_TIM_IRQx; - NVIC_InitStructure.NVIC_IRQChannelPriority = 2; // Установим приоритет ниже, чем у модуля NixieDriver - 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 = 1000; // Это миксросекунды //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 ( LED_TIMx, &TIM_TimeBaseStructure ); - - /* LED_TIMx Interrupts enable */ - TIM_ITConfig ( LED_TIMx, TIM_IT_Update, ENABLE ); - - /* LED_TIMx enable counter */ - TIM_Cmd ( LED_TIMx, ENABLE ); -} - - -// ---------------------------------------------------------------------------- -// -// ---------------------------------------------------------------------------- -static void LED_SPIConfig ( void ) -{ - GPIO_InitTypeDef GPIO_InitStructure; - SPI_InitTypeDef SPI_InitStructure; - NVIC_InitTypeDef NVIC_InitStructure; - - /* Enable the SPI periph */ - LED_SPIx_RCC_APBxPeriphClockCmd ( LED_SPIx_CLK, ENABLE ); - - /* Enable SCK, MOSI, MISO and NSS GPIO clocks */ - RCC_AHBPeriphClockCmd ( LED_SPIx_SCK_GPIO_CLK | - LED_SPIx_MOSI_GPIO_CLK | - LED_SPIx_ST_GPIO_CLK, - ENABLE ); - - GPIO_PinAFConfig ( LED_SPIx_SCK_GPIO_PORT, LED_SPIx_SCK_SOURCE, LED_SPIx_SCK_AF ); - GPIO_PinAFConfig ( LED_SPIx_MOSI_GPIO_PORT, LED_SPIx_MOSI_SOURCE, LED_SPIx_MOSI_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 = LED_SPIx_SCK_PIN; - GPIO_Init ( LED_SPIx_SCK_GPIO_PORT, &GPIO_InitStructure ); - - /* SPI MOSI pin configuration */ - GPIO_InitStructure.GPIO_Pin = LED_SPIx_MOSI_PIN; - GPIO_Init ( LED_SPIx_MOSI_GPIO_PORT, &GPIO_InitStructure ); - - /* GPIO ST pin configuration */ - GPIO_InitStructure.GPIO_Pin = LED_SPIx_ST_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 ( LED_SPIx_ST_GPIO_PORT, &GPIO_InitStructure ); - - /* SPI configuration -------------------------------------------------------*/ - SPI_I2S_DeInit ( LED_SPIx ); - SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex; - 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_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 ( LED_SPIx, &SPI_InitStructure ); - - /* Enable the SPI peripheral */ - SPI_Cmd ( LED_SPIx, ENABLE ); - - /* Configure the SPI interrupt priority */ - NVIC_InitStructure.NVIC_IRQChannel = LED_SPIx_IRQn; - NVIC_InitStructure.NVIC_IRQChannelPriority = 0; - NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; - NVIC_Init ( &NVIC_InitStructure ); - - /* Enable the Rx buffer not empty interrupt */ - SPI_I2S_ITConfig ( LED_SPIx, SPI_I2S_IT_RXNE, ENABLE ); - - LED_ST_PIN_RESET; -} diff --git a/Libraries/LED_Driver/led_driver_config.h b/Libraries/LED_Driver/led_driver_config.h deleted file mode 100644 index 39927ec..0000000 --- a/Libraries/LED_Driver/led_driver_config.h +++ /dev/null @@ -1,44 +0,0 @@ -#ifndef LED_DRIVER_CONFIG_INCLUDED -#define LED_DRIVER_CONFIG_INCLUDED - -#include "stm32f0xx_conf.h" - -/* Communication boards SPIx Interface */ -#define LED_SPIx SPI2 -#define LED_SPIx_CLK RCC_APB1Periph_SPI2 -#define LED_SPIx_IRQn SPI2_IRQn -#define LED_SPIx_IRQHandler SPI2_IRQHandler - -#define LED_SPIx_SCK_PIN GPIO_Pin_10 -#define LED_SPIx_SCK_GPIO_PORT GPIOB -#define LED_SPIx_SCK_GPIO_CLK RCC_AHBPeriph_GPIOB -#define LED_SPIx_SCK_SOURCE GPIO_PinSource10 -#define LED_SPIx_SCK_AF GPIO_AF_5 - -#define LED_SPIx_MOSI_PIN GPIO_Pin_15 -#define LED_SPIx_MOSI_GPIO_PORT GPIOB -#define LED_SPIx_MOSI_GPIO_CLK RCC_AHBPeriph_GPIOB -#define LED_SPIx_MOSI_SOURCE GPIO_PinSource15 -#define LED_SPIx_MOSI_AF GPIO_AF_0 - -#define LED_SPIx_ST_PIN GPIO_Pin_9 -#define LED_SPIx_ST_GPIO_PORT GPIOB -#define LED_SPIx_ST_GPIO_CLK RCC_AHBPeriph_GPIOA -#define LED_SPIx_ST_SOURCE GPIO_PinSource9 -#define LED_SPIx_ST_AF GPIO_AF_5 - -#define LED_SPIx_RCC_APBxPeriphClockCmd RCC_APB1PeriphClockCmd - -// Определения для таймера LedRgbDriver ------------------------------------- // -#define LED_TIMx TIM3 -#define LED_TIM_IRQHandler TIM3_IRQHandler -#define LED_TIM_RCC RCC_APB1Periph_TIM3 -#define LED_TIM_IRQx TIM3_IRQn -#define LED_RCC_APBxPeriphClockCmd RCC_APB1PeriphClockCmd - -#define LED_ST_PIN_SET GPIO_SetBits ( LED_SPIx_ST_GPIO_PORT, LED_SPIx_ST_PIN ) -#define LED_ST_PIN_RESET GPIO_ResetBits ( LED_SPIx_ST_GPIO_PORT, LED_SPIx_ST_PIN ) - -void LED_Driver_Config ( void ); - -#endif //LED_DRIVER_CONFIG_INCLUDED diff --git a/Libraries/LED_Driver/led_driver_process.c b/Libraries/LED_Driver/led_driver_process.c deleted file mode 100644 index 165ef99..0000000 --- a/Libraries/LED_Driver/led_driver_process.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "led_driver_process.h" -#include "led_driver_config.h" -#include <stdint.h> - - -// ---------------------------------------------------------------------------- -// -// ---------------------------------------------------------------------------- -void LEDDriverProcessFromISR ( void ) -{ - return; - asm volatile("cpsid i"); - LED_ST_PIN_RESET; - for (int j = 0; j < 4; j++) { - LED_SPIx->DR = 0; - while (SPI_I2S_FLAG_BSY & LED_SPIx->SR); - for (int i = 0; i < 4; i++) { - LED_SPIx->DR = 0xf8f8; - while (SPI_I2S_FLAG_BSY & LED_SPIx->SR); - } - for (int i = 0; i < 4; i++) { - LED_SPIx->DR = 0xe0e0; - while (SPI_I2S_FLAG_BSY & LED_SPIx->SR); - } - for (int i = 0; i < 4; i++) { - LED_SPIx->DR = 0xe0e0; - while (SPI_I2S_FLAG_BSY & LED_SPIx->SR); - } - } - asm volatile("cpsie i"); -} diff --git a/Libraries/LED_Driver/led_driver_process.h b/Libraries/LED_Driver/led_driver_process.h deleted file mode 100644 index fa02241..0000000 --- a/Libraries/LED_Driver/led_driver_process.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef LED_DRIVER_PROCESS_INCLUDED -#define LED_DRIVER_PROCESS_INCLUDED - -void LEDDriverProcessFromISR ( void ); - -#endif //LED_DRIVER_PROCESS_INCLUDED diff --git a/Libraries/LED_Driver/led_driver_task.c b/Libraries/LED_Driver/led_driver_task.c deleted file mode 100644 index d38deb4..0000000 --- a/Libraries/LED_Driver/led_driver_task.c +++ /dev/null @@ -1,26 +0,0 @@ -#include "led_driver_task.h" -#include "led_driver_config.h" - -#include "FreeRTOS.h" -#include "task.h" -#include "queue.h" -#include "semphr.h" - - -void LED_DriverInit ( void ) -{ - LED_Driver_Config (); -} - -void ProcessFSM_LED_RGB ( void ) -{ - taskYIELD(); -} - -// ---------------------------------------------------------------------------- -// Задача ОС, реализующая задачу обработки светодиодиков RGB -// ---------------------------------------------------------------------------- -void LED_Driver_Task ( void *pvParameters ) -{ - while(1)ProcessFSM_LED_RGB (); -} diff --git a/Libraries/LED_Driver/led_driver_task.h b/Libraries/LED_Driver/led_driver_task.h deleted file mode 100644 index 63f3ff1..0000000 --- a/Libraries/LED_Driver/led_driver_task.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef LED_RGB_TASK_INCLUDED -#define LED_RGB_TASK_INCLUDED - -#include "stm32f0xx.h" - -void LED_DriverInit ( void ); -void LED_Driver_Task ( void *pvParameters ); - -#endif //LED_RGB_TASK_INCLUDED
\ No newline at end of file |