MyLibs 1.0
Расширенные библиотеки для STM32
Loading...
Searching...
No Matches
Time measurement

Библиотека для измерения времени/тиков между событиями More...

Collaboration diagram for Time measurement:

Macros

#define BenchTime_Init()
#define BenchTime_Start(channel, ticks, tick_period)
#define BenchTime_End(channel, ticks)
#define BenchTime_GetMin(channel)
#define BenchTime_GetMax(channel)
#define BenchTime_GetAverage(channel)
#define BenchTime_GetCount(channel)
#define BenchTime_GetLast(channel)
#define BenchTime_ResetStats(channel)

Detailed Description

Библиотека для измерения времени/тиков между событиями

Поддерживает:

  • Многоканальные измерения (несколько независимых таймеров)
  • Платформонезависимый интерфейс
  • Измерение в тиках или временных единицах
  • Статистику измерений (мин/макс/среднее)
  • Настраиваемый размер тиков для каждого канала

Параметры для конфигурации:

Пример использования:
#include "bench_time.h"
// Инициализация
BenchTime_Init();
// Измерение с SysTick
BenchTime_Start(0, HAL_GetTick, 0xFFFFFFFF);
some_function();
uint32_t time = BenchTime_End(0, HAL_GetTick);
// Измерение с TIM2 (16-бит)
BenchTime_Start(1, TIM2->CNT, 0xFFFF);
fast_function();
uint32_t time2 = BenchTime_End(1, TIM2->CNT);
// Измерение с DWT цикловым счетчиком
BenchTime_Start(2, DWT->CYCCNT, 0xFFFFFFFF);
critical_function();
uint32_t cycles = BenchTime_End(2, DWT->CYCCNT);
// Многоканальное измерение
BenchTime_Start(0, HAL_GetTick, 1000); // общее время
BenchTime_Start(1, TIM3->CNT, 500); // часть 1
// ... код 1
uint32_t part1 = BenchTime_End(1, TIM3->CNT);
BenchTime_Start(2, TIM4->CNT, 200); // часть 2
// ... код 2
uint32_t part2 = BenchTime_End(2, TIM4->CNT);
uint32_t total = BenchTime_End(0, HAL_GetTick); // общее время
// Статистика
uint32_t min_time = BenchTime_GetMin(0);
uint32_t max_time = BenchTime_GetMax(0);
uint32_t avg_time = BenchTime_GetAverage(0);
uint32_t count = BenchTime_GetCount(0);
Заголовочный файл для измерения времени между событиями

Macro Definition Documentation

◆ BenchTime_Init

#define BenchTime_Init ( )

Definition at line 241 of file bench_time.h.

◆ BenchTime_Start

#define BenchTime_Start ( channel,
ticks,
tick_period )
Value:
0

Definition at line 242 of file bench_time.h.

◆ BenchTime_End

#define BenchTime_End ( channel,
ticks )
Value:
0

Definition at line 243 of file bench_time.h.

◆ BenchTime_GetMin

#define BenchTime_GetMin ( channel)
Value:
0

Definition at line 244 of file bench_time.h.

◆ BenchTime_GetMax

#define BenchTime_GetMax ( channel)
Value:
0

Definition at line 245 of file bench_time.h.

◆ BenchTime_GetAverage

#define BenchTime_GetAverage ( channel)
Value:
0

Definition at line 246 of file bench_time.h.

◆ BenchTime_GetCount

#define BenchTime_GetCount ( channel)
Value:
0

Definition at line 247 of file bench_time.h.

◆ BenchTime_GetLast

#define BenchTime_GetLast ( channel)
Value:
0

Definition at line 248 of file bench_time.h.

◆ BenchTime_ResetStats

#define BenchTime_ResetStats ( channel)

Definition at line 249 of file bench_time.h.