Примеры: различия между версиями

Материал из me-robotics wiki
(Новая страница: «=== Запуск таймера в однократном или непрерывном режиме === (Объяснение работы с конфигура...»)
 
(Полностью удалено содержимое страницы)
 
(не показана 1 промежуточная версия этого же участника)
Строка 1: Строка 1:
=== Запуск таймера в однократном или непрерывном режиме ===
 
(Объяснение работы с конфигуратором. В разработке)
 
  
После генерации кода в конфигураторе в файле main.c должна быть функция Timer16_1_Init, в которой будут заданы настройки для Timer16_1. Выглядит она так:<syntaxhighlight lang="c" line="1" start="1">
 
static void Timer16_1_Init(void)
 
{
 
    htimer16_1.Instance = TIMER16_1;
 
 
    /* Настройка тактирования */
 
    htimer16_1.Clock.Source = TIMER16_SOURCE_INTERNAL_SYSTEM;
 
    htimer16_1.CountMode = TIMER16_COUNTMODE_INTERNAL;  /* При тактировании от Input1 не имеет значения */
 
    htimer16_1.Clock.Prescaler = TIMER16_PRESCALER_1;
 
    htimer16_1.ActiveEdge = TIMER16_ACTIVEEDGE_RISING;  /* Выбирается при тактированиии от Input1 */
 
 
    /* Настройка верхнего предела счета */
 
    htimer16_1.Period = 0xFFFF;
 
    /* Настрйока режима обновления регистра ARR и CMP */
 
    htimer16_1.Preload = TIMER16_PRELOAD_AFTERWRITE;
 
 
    /* Настройка тригера */
 
    htimer16_1.Trigger.Source = TIMER16_TRIGGER_TIM1_GPIO1_9;
 
    htimer16_1.Trigger.ActiveEdge = TIMER16_TRIGGER_ACTIVEEDGE_SOFTWARE;    /* При использовании триггера значение доложно быть отлично от software */
 
    htimer16_1.Trigger.TimeOut = TIMER16_TIMEOUT_DISABLE;  /* Разрешить повторное срабатывание триггера */
 
 
    /* Настройки фильтра */
 
    htimer16_1.Filter.ExternalClock = TIMER16_FILTER_NONE;
 
    htimer16_1.Filter.Trigger = TIMER16_FILTER_NONE;
 
 
    /* Настройка режима энкодера */
 
    htimer16_1.EncoderMode = TIMER16_ENCODER_DISABLE;
 
 
    HAL_Timer16_Init(&htimer16_1);
 
}
 
</syntaxhighlight>
 

Текущая версия на 11:26, 10 февраля 2023