ELIOT1 HAL
Загрузка...
Поиск...
Не найдено
hal_timer.h
См. документацию.
1
21#ifndef HAL_TIMER_H
22#define HAL_TIMER_H
23
24#if defined(__cplusplus)
25extern "C" {
26#endif /* __cplusplus */
27
28#include "hal_common.h"
29
30#define TIMER_COUNT 3
31#define TIMER_HARDWARE_FIELD_MAX (0xFFFFFFFFUL)
32#define TIMER_SOFTWARE_FIELD_MAX (0xFFFFFFFFFFFFFFFFULL)
33#define TIMER_SOFTWARE_FIELD_HIGH_OFFSET (32)
46
54
62
73
77typedef void (*callback_t)(TIM_Type *base);
78
102enum timer_status TIMER_Init(TIM_Type *base,
103 struct timer_hardware_config config, enum timer_work_mode mode,
104 callback_t callback, uint32_t ticks_h);
105
114enum timer_status TIMER_Deinit(TIM_Type *base);
115
124enum timer_status TIMER_Run(TIM_Type *base);
125
134enum timer_status TIMER_Stop(TIM_Type *base);
135
144enum timer_status TIMER_Reset(TIM_Type *base);
145
153uint64_t TIMER_GetTicks(TIM_Type *base);
154
163enum timer_status TIMER_SetTick(TIM_Type *base, uint64_t ticks);
164
179
187static inline uint32_t TIMER_GetTimerHardwareValue(TIM_Type *base)
188{
189 return base->VALUE;
190}
191
210enum timer_status TIMER_SetConfig(TIM_Type *base,
211 struct timer_hardware_config config, enum timer_work_mode mode,
212 callback_t callback, uint32_t ticks_h);
213
224enum timer_status TIMER_IRQEnable(TIM_Type *base);
225
236enum timer_status TIMER_IRQDisable(TIM_Type *base);
237
246uint32_t TIMER_IRQGetStatus(TIM_Type *base);
247
256enum timer_status TIMER_IRQClear(TIM_Type *base);
257
262#if defined(__cplusplus)
263}
264#endif /* __cplusplus */
265
266#endif /* HAL_TIMER_H */
267
enum timer_status TIMER_Reset(TIM_Type *base)
Сброс таймера общего назначения
enum timer_status TIMER_Stop(TIM_Type *base)
Остановка таймера общего назначения
timer_work_mode
Режим работы таймера общего назначения
Definition hal_timer.h:58
timer_status
Статусы драйвера таймеров общего назначения
Definition hal_timer.h:38
enum timer_status TIMER_SetConfig(TIM_Type *base, struct timer_hardware_config config, enum timer_work_mode mode, callback_t callback, uint32_t ticks_h)
Инициализация структуры таймера общего назначения
enum timer_status TIMER_Init(TIM_Type *base, struct timer_hardware_config config, enum timer_work_mode mode, callback_t callback, uint32_t ticks_h)
Инициализация таймера общего назначения
static uint32_t TIMER_GetTimerHardwareValue(TIM_Type *base)
Получение значения регистра счетчика таймера
Definition hal_timer.h:187
void(* callback_t)(TIM_Type *base)
Функция обратного вызова
Definition hal_timer.h:77
timer_type_of_counting
Режимы счета импульсов таймером
Definition hal_timer.h:50
uint64_t TIMER_GetTicks(TIM_Type *base)
Получение количества тиков
uint32_t TIMER_IRQGetStatus(TIM_Type *base)
Чтение статуса прерывания
enum timer_status TIMER_IRQDisable(TIM_Type *base)
Отключение прерывания
enum timer_status TIMER_Deinit(TIM_Type *base)
Деинициализация таймера общего назначения
enum timer_status TIMER_IRQClear(TIM_Type *base)
Сброс прерывания
enum timer_status TIMER_Run(TIM_Type *base)
Запуск таймера общего назначения
enum timer_status TIMER_GetAPIStatus()
Получение результата выполнения последней функции
enum timer_status TIMER_IRQEnable(TIM_Type *base)
Включение прерывания
enum timer_status TIMER_SetTick(TIM_Type *base, uint64_t ticks)
Установка количества тиков
@ TIMER_Hardware
Definition hal_timer.h:59
@ TIMER_Software
Definition hal_timer.h:60
@ TIMER_Status_InvalidArgument
Definition hal_timer.h:40
@ TIMER_Status_BadConfigure
Definition hal_timer.h:42
@ TIMER_Status_NotSupport
Definition hal_timer.h:44
@ TIMER_Status_Ok
Definition hal_timer.h:39
@ TIMER_Status_TimerBusy
Definition hal_timer.h:41
@ TIMER_Status_NotIni
Definition hal_timer.h:43
@ TIMER_Work
Definition hal_timer.h:51
@ TIMER_Debug
Definition hal_timer.h:52
Конфигурация аппаратной части таймера общего назначения
Definition hal_timer.h:66
uint32_t interrupt_enable
Definition hal_timer.h:69
uint32_t start_enable
Definition hal_timer.h:71
uint32_t start_value
Definition hal_timer.h:67
uint32_t reload_value
Definition hal_timer.h:68
enum timer_type_of_counting work_type
Definition hal_timer.h:70