|
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.