ELIOT1 HAL
Загрузка...
Поиск...
Не найдено

Интерфейс драйвера модуля I2S. Подробнее...

#include "hal_common.h"

См. исходные тексты.

Структуры данных

struct  _i2s_config
 Структура конфигурации контроллера I2S. Подробнее...
 
struct  _i2s_transfer
 Структура для передачи данных I2S в неблокирующем режиме (по прерыванию) Подробнее...
 
struct  _i2s_handle
 Структура обработчика драйвера I2S. Подробнее...
 

Макросы

#define HAL_I2S_DRIVER_VERSION   (MAKE_VERSION(0, 1, 0))
 Версия драйвера I2S.
 

Определения типов

typedef enum _i2s_status i2s_status_t
 Коды возврата функций драйвера I2S.
 
typedef enum _i2s_flag i2s_flag_t
 Флаги прерываний I2S.
 
typedef enum _i2s_sclk_per_sample i2s_sclk_per_sample_t
 Перечисление возможных значений числа синхроимпульсов sclk на левый и правый поток
 
typedef enum _i2s_sclk_gating i2s_sclk_gating_t
 Перечисление возможных значений обрезания числа синхроимпульсов sclk.
 
typedef enum _i2s_resolution i2s_resolution_t
 Разрядность данных I2S.
 
typedef enum _i2s_interrupt_level i2s_interrupt_level_t
 Уровни срабатывания прерывания по опустошению очереди I2S.
 
typedef struct _i2s_config i2s_config_t
 Структура конфигурации контроллера I2S.
 
typedef struct _i2s_transfer i2s_transfer_t
 Структура для передачи данных I2S в неблокирующем режиме (по прерыванию)
 
typedef struct _i2s_handle i2s_handle_t
 Сокращённое название типа для структуры обработчика драйвера I2S.
 
typedef void(* i2s_transfer_callback_t) (I2S_Type *base, i2s_handle_t *handle, i2s_flag_t interrupt_flag, void *user_data)
 Функция обратного вызова I2S.
 

Перечисления

enum  _i2s_status
 Коды возврата функций драйвера I2S. Подробнее...
 
enum  _i2s_flag
 Флаги прерываний I2S. Подробнее...
 
enum  _i2s_sclk_per_sample
 Перечисление возможных значений числа синхроимпульсов sclk на левый и правый поток Подробнее...
 
enum  _i2s_sclk_gating
 Перечисление возможных значений обрезания числа синхроимпульсов sclk. Подробнее...
 
enum  _i2s_resolution
 Разрядность данных I2S. Подробнее...
 
enum  _i2s_interrupt_level
 Уровни срабатывания прерывания по опустошению очереди I2S. Подробнее...
 

Функции

Инициализация и деинициализация
i2s_status_t I2S_Init (I2S_Type *base, const i2s_config_t *config, uint32_t source_clock_hz)
 Инициализация драйвера I2S.
 
void I2S_Deinit (I2S_Type *base)
 Деинициализация драйвера I2S.
 
void I2S_GetDefaultConfig (i2s_config_t *config)
 Получение параметров драйвера I2S по умолчанию
 
Управление прерываниями
static void I2S_EnableInterrupt (I2S_Type *base, i2s_flag_t idx)
 Разрешение прерывания
 
static void I2S_EnableInterruptMask (I2S_Type *base, uint32_t mask)
 Разрешение прерываний по маске
 
static bool I2S_IsInterruptEnabled (I2S_Type *base, i2s_flag_t idx)
 Запрос - разрешено ли прерывание I2S.
 
static uint32_t I2S_GetEnabledInterruptMask (I2S_Type *base)
 Запрос маски разрешенных прерываний I2S.
 
static void I2S_DisableInterrupt (I2S_Type *base, i2s_flag_t idx)
 Запрет прерывания
 
static void I2S_DisableInterruptMask (I2S_Type *base, uint32_t mask)
 Запрет прерываний по маске
 
static bool I2S_GetInterruptStatus (I2S_Type *base, i2s_flag_t idx)
 Получение состояния флага прерывания
 
static uint32_t I2S_GetInterruptStatusMask (I2S_Type *base)
 Получение маски активных прерываний
 
static void I2S_ClearDataOverrunFlag (I2S_Type *base)
 Сброс флага переполнения очереди выдачи
 
Прямое управление выдачей
void I2S_WriteLeftFifo (I2S_Type *base, uint32_t sample)
 Запись сэмпла в левый канал I2S.
 
void I2S_WriteRightFifo (I2S_Type *base, uint32_t sample)
 Запись сэмпла в правый канал I2S.
 
static void I2S_AbortTx (I2S_Type *base)
 Отмена выдачи по I2S.
 
static void I2S_EnableTx (I2S_Type *base)
 Включение передатчика I2S.
 
static void I2S_DisableTx (I2S_Type *base)
 Выключение передатчика I2S.
 
Неблокирующая выдача по I2S
i2s_status_t I2S_TransferCreateHandle (I2S_Type *base, i2s_handle_t *handle, i2s_transfer_callback_t callback, void *user_data)
 Инициализация обработчика событий I2S.
 
i2s_status_t I2S_TransferNonBlocking (I2S_Type *base, i2s_handle_t *handle, i2s_transfer_t *xfer)
 Неблокирующая выдача через высокоприоритетный буфер
 
void I2S_TransferAbort (I2S_Type *base, i2s_handle_t *handle)
 Отмена выдачи из высокоприоритетного буфера
 
void I2S_TransferHandleIRQ (I2S_Type *base, i2s_handle_t *handle)
 Установка обработчика на прерывания от I2S, не связанных с приемом/выдачей
 

Подробное описание

Интерфейс драйвера модуля I2S.