ELIOT1 HAL
Загрузка...
Поиск...
Не найдено
Драйвер модуля DTIM

Драйвер сдвоенного таймера Подробнее...

Файлы

файл  hal_dualtimer.h
 Интерфейс драйвера сдвоенного таймера
 

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

struct  dualtimer_hardware_config
 Конфигурация аппаратной части сдвоенного таймера Подробнее...
 

Макросы

#define DUALTIMER_NUMBER_OF_DUALTIMERS   1
 
#define DUALTIMER_MAX_INDEX   1
 

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

enum  dualtimer_status
 Статусы драйвера сдвоенного таймера Подробнее...
 
enum  dualtimer_work_enable
 Разрешение работы таймера Подробнее...
 
enum  dualtimer_mode
 Режим работы таймера Подробнее...
 
enum  dualtimer_interrupt_control
 Управление прерываниями Подробнее...
 
enum  dualtimer_prescale
 Предделители частоты Подробнее...
 
enum  dualtimer_timer_size
 Размер счетчика Подробнее...
 
enum  dualtimer_number_of_repetitions
 Количество запусков Подробнее...
 

Интерфейс драйвера

enum dualtimer_status DUALTIMER_GetDefaultConfig (struct dualtimer_hardware_config *config)
 Создание конфигурации по умолчанию
 
enum dualtimer_status DUALTIMER_Init (DTIM_Type *base, uint32_t index, struct dualtimer_hardware_config config)
 Инициализация сдвоенного таймера
 
enum dualtimer_status DUALTIMER_Deinit (DTIM_Type *base, uint32_t index)
 Деинициализация сдвоенного таймера
 
enum dualtimer_status DUALTIMER_Run (DTIM_Type *base, uint32_t index)
 Запуск сдвоенного таймера
 
enum dualtimer_status DUALTIMER_Stop (DTIM_Type *base, uint32_t index)
 Останов сдвоенного таймера
 
uint32_t DUALTIMER_GetRawStatus (DTIM_Type *base, uint32_t index)
 Получение немаскированного статуса сдвоенного таймера
 
uint32_t DUALTIMER_GetStatus (DTIM_Type *base, uint32_t index)
 Получение маскированного статуса сдвоенного таймера
 
uint32_t DUALTIMER_GetTick (DTIM_Type *base, uint32_t index)
 Получение количества тиков
 
enum dualtimer_status DUALTIMER_GetAPIStatus ()
 Получение результата последнего выполнения функции
 
enum dualtimer_status DUALTIMER_Reload (DTIM_Type *base, uint32_t index, uint32_t value)
 Немедленная перезапись значения таймера
 
enum dualtimer_status DUALTIMER_IrqClr (DTIM_Type *base, uint32_t index)
 Сброс прерывания от таймера
 

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

Драйвер сдвоенного таймера

Драйвер модуля сдвоенного таймера управляет сдвоенным таймером DTIM.

Макросы

◆ DUALTIMER_MAX_INDEX

#define DUALTIMER_MAX_INDEX   1

Максимальный индекс таймера

◆ DUALTIMER_NUMBER_OF_DUALTIMERS

#define DUALTIMER_NUMBER_OF_DUALTIMERS   1

Количество сдвоенных таймеров

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

◆ dualtimer_interrupt_control

Управление прерываниями

Элементы перечислений
DUALTIMER_InterruptDisable 

Запрещение прерывания

DUALTIMER_InterruptEnable 

Разрешение прерывания

◆ dualtimer_mode

Режим работы таймера

Элементы перечислений
DUALTIMER_FreeRunning 

Свободный счет (с переполнением)

DUALTIMER_Periodic 

Счет с заданным периодом

◆ dualtimer_number_of_repetitions

Количество запусков

Элементы перечислений
DUALTIMER_WrappingMode 

Многократный автоматический запуск

DUALTIMER_OneShot 

Одиночный запуск

◆ dualtimer_prescale

Предделители частоты

Элементы перечислений
DUALTIMER_Prescale1 

На 1

DUALTIMER_Prescale16 

На 16

DUALTIMER_Prescale256 

На 256

◆ dualtimer_status

Статусы драйвера сдвоенного таймера

Элементы перечислений
DUALTIMER_Status_Ok 

Нет ошибок

DUALTIMER_Status_InvalidArgument 

Недопустимый аргумент

DUALTIMER_Status_TimerBusy 

Таймер уже занят

DUALTIMER_Status_BadConfigure 

Недопустимая конфигурация

◆ dualtimer_timer_size

Размер счетчика

Элементы перечислений
DUALTIMER_TimerSize16 

16-битный

DUALTIMER_TimerSize32 

32-битный

◆ dualtimer_work_enable

Разрешение работы таймера

Элементы перечислений
DUALTIMER_Disable 

Запрет работы таймера

DUALTIMER_Enable 

Разрешение работы таймера

Функции

◆ DUALTIMER_Deinit()

enum dualtimer_status DUALTIMER_Deinit ( DTIM_Type * base,
uint32_t index )

Деинициализация сдвоенного таймера

Останов сдвоенного таймера, ружим таймера становится как после сброса

Аргументы
baseТаймер
indexИндекс таймера в сдвоенном таймере
Возвращаемые значения
DUALTIMER_Status_Ok
DUALTIMER_Status_InvalidArgument

◆ DUALTIMER_GetAPIStatus()

enum dualtimer_status DUALTIMER_GetAPIStatus ( )

Получение результата последнего выполнения функции

Получает ошибки выполнения функций, у которых тип возвращаемого результата отличен от enum dualtimer_status

Возвращаемые значения
DUALTIMER_Status_Ok
DUALTIMER_Status_InvalidArgument
DUALTIMER_Status_TimerBusy
DUALTIMER_Status_BadConfigure

◆ DUALTIMER_GetDefaultConfig()

enum dualtimer_status DUALTIMER_GetDefaultConfig ( struct dualtimer_hardware_config * config)

Создание конфигурации по умолчанию

Создание конфигурации по умолчанию заполняет структуру такими значениями, которые находятся в регистрах после сброса.

Заметки
Если применить эти значения, вызвав функцию DUALTIMER_Init, то сразу возникнет прерывание, так как значение регистра LOAD = 0 и прерывания разрешены.
Возвращаемые значения
DUALTIMER_Status_Ok
DUALTIMER_Status_InvalidArgument

◆ DUALTIMER_GetRawStatus()

uint32_t DUALTIMER_GetRawStatus ( DTIM_Type * base,
uint32_t index )

Получение немаскированного статуса сдвоенного таймера

Получение немаскированного статуса сдвоенного таймера. Корректность выполнения функции можно проверить вызовом

DUALTIMER_GetAPIStatus

Аргументы
baseТаймер
indexИндекс таймера в сдвоенном таймере
Возвращает
Статус

◆ DUALTIMER_GetStatus()

uint32_t DUALTIMER_GetStatus ( DTIM_Type * base,
uint32_t index )

Получение маскированного статуса сдвоенного таймера

Получение маскированного статуса сдвоенного таймера Корректность выполнения функции можно проверить вызовом DUALTIMER_GetAPIStatus

Аргументы
baseТаймер
indexИндекс таймера в сдвоенном таймере
Возвращает
Статус

◆ DUALTIMER_GetTick()

uint32_t DUALTIMER_GetTick ( DTIM_Type * base,
uint32_t index )

Получение количества тиков

Аргументы
baseТаймер
indexИндекс таймера в сдвоенном таймере
Возвращаемые значения
Количествоподсчитанных тактов

◆ DUALTIMER_Init()

enum dualtimer_status DUALTIMER_Init ( DTIM_Type * base,
uint32_t index,
struct dualtimer_hardware_config config )

Инициализация сдвоенного таймера

Аргументы
baseСдвоенный таймер
indexИндекс таймера в сдвоенном таймере
configКонфигурация таймера в сдвоенном таймере
Возвращаемые значения
DUALTIMER_Status_Ok
DUALTIMER_Status_InvalidArgument
DUALTIMER_Status_TimerBusy

◆ DUALTIMER_IrqClr()

enum dualtimer_status DUALTIMER_IrqClr ( DTIM_Type * base,
uint32_t index )

Сброс прерывания от таймера

Сброс прерывания от таймера, не влияет на NVIC

Аргументы
baseТаймер
indexИндекс таймера в сдвоенном таймере
Возвращаемые значения
DUALTIMER_Status_Ok
DUALTIMER_Status_InvalidArgument

◆ DUALTIMER_Reload()

enum dualtimer_status DUALTIMER_Reload ( DTIM_Type * base,
uint32_t index,
uint32_t value )

Немедленная перезапись значения таймера

Перезаписывает значение таймера. В режиме DUALTIMER_OneShot перезапускает таймер, если тот был остановлен.

Аргументы
baseТаймер
indexИндекс таймера в сдвоенном таймере
valueЗагружаемое значение
Возвращаемые значения
DUALTIMER_Status_Ok
DUALTIMER_Status_InvalidArgument

◆ DUALTIMER_Run()

enum dualtimer_status DUALTIMER_Run ( DTIM_Type * base,
uint32_t index )

Запуск сдвоенного таймера

Аргументы
baseТаймер
indexИндекс таймера в сдвоенном таймере
Возвращаемые значения
DUALTIMER_Status_Ok
DUALTIMER_Status_InvalidArgument

◆ DUALTIMER_Stop()

enum dualtimer_status DUALTIMER_Stop ( DTIM_Type * base,
uint32_t index )

Останов сдвоенного таймера

Останов сдвоенного таймера режимы таймера остаются прежними

Аргументы
baseТаймер
indexИндекс таймера в сдвоенном таймере
Возвращаемые значения
DUALTIMER_Status_Ok
DUALTIMER_Status_InvalidArgument