HAL Timer16: различия между версиями

Материал из MIK32 микроконтроллер
Нет описания правки
Нет описания правки
Строка 69: Строка 69:
Аргументы:  
Аргументы:  


Timer16_HandleTypeDef *htimer16 - Экземпляр Timer16. Возможные значения: TIMER16_0, TIMER16_1, TIMER16_2.
* Timer16_HandleTypeDef *htimer16 - Экземпляр Timer16. Возможные значения:  
** TIMER16_0;
** TIMER16_1;
** TIMER16_2.




Строка 80: Строка 83:
Аргументы:  
Аргументы:  


Timer16_HandleTypeDef *htimer16 - Экземпляр Timer16. Возможные значения: TIMER16_0, TIMER16_1, TIMER16_2.
* Timer16_HandleTypeDef *htimer16 - Экземпляр Timer16. Возможные значения:  
** TIMER16_0;
** TIMER16_1;
** TIMER16_2.




Строка 87: Строка 93:
Описание:  
Описание:  


Установить активный фронт. Используется при тактировании Timer16 от внешнего источника тактового сигнала, биты CKPOL используются для настройки активного фронта или фронтов, ис-пользуемых счетчиком:
Установить активный фронт для подсчёта. Используется при тактировании Timer16 от внешнего источника тактового сигнала на выводе Input1.
 
Если оба фронта сконфигурированы как активные, необходимо также обеспечить внутренний тактовый сигнал. В этом случае частота внутреннего тактового сигнала должна быть как минимум в четыре раза выше частоты внешнего тактового сигнала.


Аргументы:  
Аргументы:  


Timer16_HandleTypeDef *htimer16 - Экземпляр Timer16. Возможные значения: TIMER16_0, TIMER16_1, TIMER16_2.
* 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)