STM32H750VB_DAC_AzureRTOS/Core/Src/audio/audio_clocksel.c

28 lines
919 B
C

#include "audio/audio_clocksel.h"
#include "main.h"
#include "stm32h7xx_hal.h"
static void audio_clock_en(audio_clock_t clock) {
if(clock == AUDIO_CLKIN_22M) {
HAL_GPIO_WritePin(MCU_OSC22EN_GPIO_Port, MCU_OSC22EN_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(MCU_OSC24EN_GPIO_Port, MCU_OSC24EN_Pin, GPIO_PIN_RESET);
} else if(clock == AUDIO_CLKIN_24M) {
HAL_GPIO_WritePin(MCU_OSC24EN_GPIO_Port, MCU_OSC24EN_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(MCU_OSC22EN_GPIO_Port, MCU_OSC22EN_Pin, GPIO_PIN_RESET);
}
}
uint8_t audio_clock_select(audio_clock_t clock) {
audio_clock_en(clock);
if (clock == AUDIO_CLKIN_22M) {
HAL_GPIO_WritePin(MCU_OSC_SEL_GPIO_Port, MCU_OSC_SEL_Pin, GPIO_PIN_RESET);
} else if (clock == AUDIO_CLKIN_24M) {
HAL_GPIO_WritePin(MCU_OSC_SEL_GPIO_Port, MCU_OSC_SEL_Pin, GPIO_PIN_SET);
} else {
return 1;
}
return 0;
}