HAL Timer16: различия между версиями
Андрей (обсуждение | вклад) Нет описания правки |
Андрей (обсуждение | вклад) Нет описания правки |
||
Строка 69: | Строка 69: | ||
Аргументы: | Аргументы: | ||
Timer16_HandleTypeDef *htimer16 - Экземпляр Timer16. Возможные значения: TIMER16_0 | * Timer16_HandleTypeDef *htimer16 - Экземпляр Timer16. Возможные значения: | ||
** TIMER16_0; | |||
** TIMER16_1; | |||
** TIMER16_2. | |||
Строка 80: | Строка 83: | ||
Аргументы: | Аргументы: | ||
Timer16_HandleTypeDef *htimer16 - Экземпляр Timer16. Возможные значения: TIMER16_0 | * Timer16_HandleTypeDef *htimer16 - Экземпляр Timer16. Возможные значения: | ||
** TIMER16_0; | |||
** TIMER16_1; | |||
** TIMER16_2. | |||
Строка 87: | Строка 93: | ||
Описание: | Описание: | ||
Установить активный фронт. Используется при тактировании Timer16 от внешнего источника тактового сигнала | Установить активный фронт для подсчёта. Используется при тактировании Timer16 от внешнего источника тактового сигнала на выводе Input1. | ||
Если оба фронта сконфигурированы как активные, необходимо также обеспечить внутренний тактовый сигнал. В этом случае частота внутреннего тактового сигнала должна быть как минимум в четыре раза выше частоты внешнего тактового сигнала. | |||
Аргументы: | Аргументы: | ||
Timer16_HandleTypeDef *htimer16 - Экземпляр Timer16. Возможные значения: TIMER16_0 | * Timer16_HandleTypeDef *htimer16 - Экземпляр Timer16. Возможные значения: | ||
** TIMER16_0; | |||
** TIMER16_1; | |||
** TIMER16_2. | |||
* uint8_t ActiveEdge - Активный фронт. Возможные значения: | |||
** TIMER16_ACTIVEEDGE_RISING - Нарастающий фронт является активным; | |||
** TIMER16_ACTIVEEDGE_FOLLING - Спадающий фронт является активным; | |||
** TIMER16_ACTIVEEDGE_BOTH - Оба фронта являются активными фронтами. | |||
'''void HAL_Timer16_SetSourceClock(Timer16_HandleTypeDef *htimer16, uint8_t SourceClock)''' | '''void HAL_Timer16_SetSourceClock(Timer16_HandleTypeDef *htimer16, uint8_t SourceClock)''' | ||
Описание: | |||
Выбрать источник тактирования, который будет использовать Timer16. | |||
Аргументы: | |||
* Timer16_HandleTypeDef *htimer16 - Экземпляр Timer16. Возможные значения: | |||
** TIMER16_0; | |||
** TIMER16_1; | |||
** TIMER16_2. | |||
* uint8_t SourceClock - Источник тактирования. Возможные значения: | |||
** TIMER16_SOURCE_INTERNAL_SYSTEM - Тактирование от системной частоты (sys_clk); | |||
** TIMER16_SOURCE_INTERNAL_AHB - Тактирование от частоты шины AHB; | |||
** TIMER16_SOURCE_INTERNAL_OSC32M - Тактирование от частоты внешнего осцилятора OSC32М; | |||
** TIMER16_SOURCE_INTERNAL_HSI32M - Тактирование от частоты встроенного осцилятора HSI32M; | |||
** TIMER16_SOURCE_INTERNAL_OSC32K - Тактирование от частоты внешнего осцилятора OSC32К; | |||
** TIMER16_SOURCE_INTERNAL_LSI32K - Тактирование от частоты встроенного осцилятора LSI32K; | |||
** TIMER16_SOURCE_EXTERNAL_INPUT1 - Тактирование от внешнего вывода Input1. | |||
'''void HAL_Timer16_SetCountMode(Timer16_HandleTypeDef *htimer16, uint8_t CountMode)''' | '''void HAL_Timer16_SetCountMode(Timer16_HandleTypeDef *htimer16, uint8_t CountMode)''' |
Версия от 11:57, 8 февраля 2023
Константы
Структуры
typedef struct
{
uint8_t Source; /* Источник тактирования */
uint8_t Prescaler; /* Делитель частоты */
} Timer16_ClockConfigTypeDef;
typedef struct
{
uint8_t Source; /* Источник тригера */
uint8_t ActiveEdge; /* Активный фронт */
uint8_t TimeOut; /* Функция тайм-аут */
} Timer16_TriggerConfigTypeDef;
typedef struct
{
uint8_t ExternalClock; /* Фильтр для внешнего тактового генератора */
uint8_t Trigger; /* фильтр для триггера */
} Timer16_FilterConfigTypeDef;
typedef struct
{
TIMER16_TypeDef *Instance; /* Базовый адрес регистров Timer16 */
Timer16_ClockConfigTypeDef Clock; /* Настройки тактирования */
uint8_t CountMode; /* Источник синхронизации */
uint8_t ActiveEdge; /* Активный фронт */
uint16_t Period; /* Верхнее значение счета */
uint8_t Preload; /* Режим записи в ARR и CMP */
Timer16_TriggerConfigTypeDef Trigger; /* Настройки тригера */
Timer16_FilterConfigTypeDef Filter; /* Настройки фильтра */
uint8_t EncoderMode; /* Режим энкодера */
} Timer16_HandleTypeDef;
Функции
void HAL_Timer16_Disable(Timer16_HandleTypeDef *htimer16)
Описание:
Выключить таймер. Может использоваться для отключения таймера или при записи в регистр CFGR.
Аргументы:
- Timer16_HandleTypeDef *htimer16 - Экземпляр Timer16. Возможные значения:
- TIMER16_0;
- TIMER16_1;
- TIMER16_2.
void HAL_Timer16_Enable(Timer16_HandleTypeDef *htimer16)
Описание:
Включить таймер.
Аргументы:
- Timer16_HandleTypeDef *htimer16 - Экземпляр Timer16. Возможные значения:
- TIMER16_0;
- TIMER16_1;
- TIMER16_2.
void HAL_Timer16_SetActiveEdge(Timer16_HandleTypeDef *htimer16, uint8_t ActiveEdge)
Описание:
Установить активный фронт для подсчёта. Используется при тактировании Timer16 от внешнего источника тактового сигнала на выводе Input1.
Если оба фронта сконфигурированы как активные, необходимо также обеспечить внутренний тактовый сигнал. В этом случае частота внутреннего тактового сигнала должна быть как минимум в четыре раза выше частоты внешнего тактового сигнала.
Аргументы:
- Timer16_HandleTypeDef *htimer16 - Экземпляр Timer16. Возможные значения:
- TIMER16_0;
- TIMER16_1;
- TIMER16_2.
- uint8_t ActiveEdge - Активный фронт. Возможные значения:
- TIMER16_ACTIVEEDGE_RISING - Нарастающий фронт является активным;
- TIMER16_ACTIVEEDGE_FOLLING - Спадающий фронт является активным;
- TIMER16_ACTIVEEDGE_BOTH - Оба фронта являются активными фронтами.
void HAL_Timer16_SetSourceClock(Timer16_HandleTypeDef *htimer16, uint8_t SourceClock)
Описание:
Выбрать источник тактирования, который будет использовать Timer16.
Аргументы:
- Timer16_HandleTypeDef *htimer16 - Экземпляр Timer16. Возможные значения:
- TIMER16_0;
- TIMER16_1;
- TIMER16_2.
- uint8_t SourceClock - Источник тактирования. Возможные значения:
- TIMER16_SOURCE_INTERNAL_SYSTEM - Тактирование от системной частоты (sys_clk);
- TIMER16_SOURCE_INTERNAL_AHB - Тактирование от частоты шины AHB;
- TIMER16_SOURCE_INTERNAL_OSC32M - Тактирование от частоты внешнего осцилятора OSC32М;
- TIMER16_SOURCE_INTERNAL_HSI32M - Тактирование от частоты встроенного осцилятора HSI32M;
- TIMER16_SOURCE_INTERNAL_OSC32K - Тактирование от частоты внешнего осцилятора OSC32К;
- TIMER16_SOURCE_INTERNAL_LSI32K - Тактирование от частоты встроенного осцилятора LSI32K;
- TIMER16_SOURCE_EXTERNAL_INPUT1 - Тактирование от внешнего вывода Input1.
void HAL_Timer16_SetCountMode(Timer16_HandleTypeDef *htimer16, uint8_t CountMode)
void HAL_Timer16_ClockInit(Timer16_HandleTypeDef *htimer16)
void HAL_Timer16_SetPreload(Timer16_HandleTypeDef *htimer16, uint8_t Preload)
void HAL_Timer16_WaitARROK(Timer16_HandleTypeDef *htimer16)
void HAL_Timer16_WaitCMPOK(Timer16_HandleTypeDef *htimer16)
void HAL_Timer16_SetARR(Timer16_HandleTypeDef *htimer16, uint16_t Period)
void HAL_Timer16_SetCMP(Timer16_HandleTypeDef *htimer16, uint16_t Compare)
void HAL_Timer16_ClearCMPFlag(Timer16_HandleTypeDef *htimer16)
void HAL_Timer16_SelectTrigger(Timer16_HandleTypeDef *htimer16, uint8_t TriggerSource)
void HAL_Timer16_SetTriggerEdge(Timer16_HandleTypeDef *htimer16, uint8_t TriggerEdge)
void HAL_Timer16_SetTimeOut(Timer16_HandleTypeDef *htimer16, uint8_t TimeOut)
void HAL_Timer16_SetFilterExternalClock(Timer16_HandleTypeDef *htimer16, uint8_t FilterExternalClock)
void HAL_Timer16_SetFilterTrigger(Timer16_HandleTypeDef *htimer16, uint8_t FilterTrigger)
void HAL_Timer16_SetEncoderMode(Timer16_HandleTypeDef *htimer16, uint8_t EncoderMode)
void HAL_Timer16_Init(Timer16_HandleTypeDef *htimer16)
uint16_t HAL_Timer16_GetCounterValue(Timer16_HandleTypeDef *htimer16)
uint8_t HAL_Timer16_CheckCMP(Timer16_HandleTypeDef *htimer16)
void HAL_Timer16_WaitCMP(Timer16_HandleTypeDef *htimer16)
void HAL_Timer16_StartSingleMode(Timer16_HandleTypeDef *htimer16)
void HAL_Timer16_StartContinuousMode(Timer16_HandleTypeDef *htimer16)
void HAL_Timer16_InvertOutput(Timer16_HandleTypeDef *htimer16)
void HAL_Timer16_StartPWM(Timer16_HandleTypeDef *htimer16, uint16_t Period, uint16_t Compare)
void HAL_Timer16_StartOneShot(Timer16_HandleTypeDef *htimer16, uint16_t Period, uint16_t Compare)
void HAL_Timer16_StartSetOnes(Timer16_HandleTypeDef *htimer16, uint16_t Period, uint16_t Compare)
void HAL_Timer16_ClearTriggerFlag(Timer16_HandleTypeDef *htimer16)
void HAL_Timer16_WaitTrigger(Timer16_HandleTypeDef *htimer16)