#include "inputselect.h" #include "hw/gpio.h" #include "error.h" #include "gui.h" #include "debug.h" #include "main.h" #include "stm32f10x.h" #include #include //------------------------definicje--------------------------------// //------------------------zmienne-------------------------// //-----------------------------Funkcje------------------------------// int8_t inputselect_Initialize(void) { GPIO_InitTypeDef GPIO_Conf; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOD| RCC_APB2Periph_GPIOE, ENABLE); //wyjścia, diody - stan poczatkowy wysoki (wyłączone) GPIO_Conf.GPIO_Pin = LED_TOSLINK|OE_SPDIF; GPIO_Conf.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Conf.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIO_Conf); GPIO_Set(GPIOB, LED_TOSLINK|OE_SPDIF); GPIO_Conf.GPIO_Pin = LED_SPDIF|LED_AES_EBU; GPIO_Init(GPIOD, &GPIO_Conf); GPIO_Set(GPIOD, LED_SPDIF|LED_AES_EBU); GPIO_Conf.GPIO_Pin = OE_PCM|OE_DSD|OE_AMANERO|OE_BT; GPIO_Init(GPIOE, &GPIO_Conf); GPIO_Set(GPIOE, OE_PCM|OE_DSD|OE_AMANERO|OE_BT); } int8_t inputselect_SelectInput(uint8_t input) { //disable all inputs GPIO_Set(GPIOB, LED_TOSLINK|OE_SPDIF); GPIO_Set(GPIOD, LED_SPDIF|LED_AES_EBU); GPIO_Set(GPIOE, OE_PCM|OE_DSD|OE_AMANERO|OE_BT); //enable selected input switch(input) { case INPUT_OFF: break; case INPUT_AMANERO: GPIO_Reset(GPIOE, OE_AMANERO); break; case INPUT_PCM: GPIO_Reset(GPIOE, OE_PCM); break; case INPUT_DSD: GPIO_Reset(GPIOE, OE_DSD); break; case INPUT_SPDIF: GPIO_Reset(GPIOB, OE_SPDIF); GPIO_Reset(GPIOD, LED_SPDIF); break; case INPUT_TOSLINK: GPIO_Reset(GPIOB, OE_SPDIF); GPIO_Reset(GPIOB, LED_TOSLINK); break; case INPUT_AES_EBU: GPIO_Reset(GPIOB, OE_SPDIF); GPIO_Reset(GPIOD, LED_AES_EBU); break; case INPUT_BT: GPIO_Reset(GPIOE, OE_BT); break; default: debug_ReportError(-MULTIPLE_INPUT_SELECTED, "inputctrl_SetInput"); break; } }