Loading...
Searching...
No Matches
General tools
TIM Tools

Функции для базовой инициализации таймеров More...

Collaboration diagram for General tools:

## Topics

| TIM Init defines
| Настройка таймеров

## Classes

struct | TIM_SettingsTypeDef
| Структура инициализации таймера More...

## Enumerations

enum | TIM_ITModeTypeDef { TIM_DEFAULT = 0 , TIM_IT_MODE = TIM_IT_CONF }
| Режим прерываний таймера More...
enum | TIM_MHzTickBaseTypeDef { TIM_Base_Disable = 0 , TIM_TickBase_1US = 1 , TIM_TickBase_10US = 10 , TIM_TickBase_100US = 100 , TIM_TickBase_1MS = 1000 , TIM_TickBase_10MS = 10000 , TIM_TickBase_100MS = 100000 }
| Длительность тика таймера (частота тактирования таймера) More...

## Functions

HAL_StatusTypeDef | TIM_Base_Init (TIM_SettingsTypeDef *stim)
| Инициализация таймера.
void | TIM_Base_MspInit (TIM_HandleTypeDef *htim, TIM_ITModeTypeDef it_mode)
| Инициализация CLK и NVIC таймеров.
void | TIM_Base_MspDeInit (TIM_HandleTypeDef *htim)
| Деинициализация CLK и NVIC таймеров.

## Detailed Description

Функции для базовой инициализации таймеров

Пример использования:
  TIM_SettingsTypeDef tim2Settings;
  void TIM2_Init(void)
  {
  // Настройка таймера TIM2 на 1 кГц с прерываниями с шагом таймера 10 мкс
  tim2Settings.htim.Instance = TIM2;
  tim2Settings.sTimMode = TIM_IT_MODE;
  tim2Settings.sTickBaseUS = TIM_TickBase_10US;
  tim2Settings.sTickBasePrescaler = 1;
  tim2Settings.sTimFreqHz = 1000; // 1 кГц
  tim2Settings.sTimAHBFreqMHz = 72000000; // Hz
  if(TIM_Base_Init(&tim2Settings) != HAL_OK)
  {
  Error_Handler();
  }
  }
  TIM_Base_Init
  HAL_StatusTypeDef TIM_Base_Init(TIM_SettingsTypeDef *stim)
  Инициализация таймера.
  Definition general_tim.c:34
  TIM_TickBase_10US
  @ TIM_TickBase_10US
  Таймер тактируется с частотой 100 кГц
  Definition general_tim.h:96
  TIM_IT_MODE
  @ TIM_IT_MODE
  Прерываний включены
  Definition general_tim.h:81
  TIM_SettingsTypeDef
  Структура инициализации таймера
  Definition general_tim.h:115
  TIM_SettingsTypeDef::sTickBasePrescaler
  uint8_t sTickBasePrescaler
  Дополнительный делитель, для удобного деления sTickBaseUS.
  Definition general_tim.h:124
  TIM_SettingsTypeDef::sTickBaseUS
  TIM_MHzTickBaseTypeDef sTickBaseUS
  Длительность одного тика
  Definition general_tim.h:123
  TIM_SettingsTypeDef::sTimAHBFreqMHz
  float sTimAHBFreqMHz
  Частота шины тактирования таймера
  Definition general_tim.h:125
  TIM_SettingsTypeDef::sTimMode
  TIM_ITModeTypeDef sTimMode
  Настройки прерывания таймера
  Definition general_tim.h:122
  TIM_SettingsTypeDef::htim
  TIM_HandleTypeDef htim
  HAL handle таймера
  Definition general_tim.h:116
  TIM_SettingsTypeDef::sTimFreqHz
  float sTimFreqHz
  Желаемая частота таймера
  Definition general_tim.h:126

## Enumeration Type Documentation

## TIM_ITModeTypeDef

enum TIM_ITModeTypeDef

Режим прерываний таймера

Enumerator
TIM_DEFAULT | Прерываний отключены
TIM_IT_MODE | Прерываний включены

Definition at line 78 of file general_tim.h.

## TIM_MHzTickBaseTypeDef

enum TIM_MHzTickBaseTypeDef

Длительность тика таймера (частота тактирования таймера)

enum дает базовые длительности, но можно выставить другие (напр 500 - 0.5 мс)

Enumerator
TIM_Base_Disable | Таймер отключен
TIM_TickBase_1US | Таймер тактируется с частотой 1 МГц
TIM_TickBase_10US | Таймер тактируется с частотой 100 кГц
TIM_TickBase_100US | Таймер тактируется с частотой 10 кГц
TIM_TickBase_1MS | Таймер тактируется с частотой 1 кГц
TIM_TickBase_10MS | Таймер тактируется с частотой 100 Гц
TIM_TickBase_100MS | Таймер тактируется с частотой 10 Гц

Definition at line 92 of file general_tim.h.

## Function Documentation

## TIM_Base_Init()

HAL_StatusTypeDef TIM_Base_Init | ( | TIM_SettingsTypeDef * | stim | ) |

Инициализация таймера.

Parameters

  stim | Указатель на структуру с настройками таймера.

Returns
  HAL status.

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

- Длительность одного тика TIM_MHzTickBaseTypeDef
- Частота таймера (в Гц, float)
- Частота тактирования таймера от шины (в Гц, float)

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

При выставлении дефайна UPDATE_TIM_PARAMS_AFTER_INITIALIZATION новая длительность тика записывается в структуру.

Также остается возможность низкоуровневой настройки по структурам TIM_SettingsTypeDef. Для этого надо высокоуровневые настройки приравнять к нулю

Definition at line 34 of file general_tim.c.

## TIM_Base_MspInit()

void TIM_Base_MspInit | ( | TIM_HandleTypeDef * | htim,
|  | TIM_ITModeTypeDef | it_mode )

Инициализация CLK и NVIC таймеров.

Parameters

  htim | Указатель на хендл таймера.

Note
  Чтобы не генерировать функцию с иницилизацией неиспользуемых таймеров, дефайнами TIM Init defines в general_tim.h определяются используемые таймеры.

Definition at line 408 of file general_tim.c.

## TIM_Base_MspDeInit()

void TIM_Base_MspDeInit | ( | TIM_HandleTypeDef * | htim | ) |

Деинициализация CLK и NVIC таймеров.

Parameters

  htim | Указатель на хендл таймера.

Note
  Чтобы не генерировать функцию с деиницилизацией неиспользуемых таймеров, дефайнами TIM Init defines в general_tim.h определяются используемые таймеры.

Definition at line 617 of file general_tim.c.