From 238542c31dec62c2ea386cdfc0c3ccbfb4c6bf1f Mon Sep 17 00:00:00 2001 From: Stanislav N Mikhailov Date: Fri, 27 Mar 2026 20:40:28 +0300 Subject: [PATCH] Cleaned up automatically added comments --- Examples/Thermometr/src/main.c | 46 +++++++++++++++++----------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/Examples/Thermometr/src/main.c b/Examples/Thermometr/src/main.c index 1dd3936..21c87ed 100644 --- a/Examples/Thermometr/src/main.c +++ b/Examples/Thermometr/src/main.c @@ -21,42 +21,42 @@ static bool frame_timer_cb(repeating_timer_t* t) // Callback аппаратно } static inline void wait_for_irq(void) // Вспомогательная функция для энергосберегающего ожидания прерываний. -{ // Начало функции ожидания IRQ. +{ __asm volatile ("wfi"); // Инструкция ARM Wait For Interrupt: CPU спит до любого IRQ. -} // Конец функции ожидания IRQ. +} static uint16_t text_width_px(const wchar_t* str) // Считаем фактическую ширину строки в пикселях через таблицу ширин глифов. -{ // Начало функции расчета ширины строки. +{ uint16_t width = 0; // Накапливаем итоговую ширину строки. while (*str) // Пока не дошли до нулевого терминатора строки. - { // Начало цикла по символам. + { width = (uint16_t)(width + get_char_width(*str)); // Добавляем ширину текущего символа. str++; // Переходим к следующему символу. - } // Конец цикла по символам. + } return width; // Возвращаем итоговую ширину строки. -} // Конец функции расчета ширины строки. +} static void update_axis_reflect(int* pos, int* dir, int min_pos, int max_pos) // Обновляем одну координату с зеркальным отражением от границ. -{ // Начало функции обновления координаты. +{ if (max_pos <= min_pos) // Если объект больше доступного диапазона или диапазон вырожден. - { // Начало обработки вырожденного диапазона. + { *pos = min_pos; // Фиксируем позицию в единственной доступной точке. *dir = 0; // Останавливаем движение по этой оси. return; // Завершаем обработку оси. - } // Конец обработки вырожденного диапазона. + } *pos += *dir; // Двигаем объект на 1 пиксель по текущему направлению. if (*pos < min_pos) // Проверяем удар о минимальную границу (верх/лево). - { // Начало отражения от минимальной границы. + { *pos = min_pos + (min_pos - *pos); // Зеркально отражаем координату внутрь диапазона. *dir = -*dir; // Инвертируем направление движения. - } // Конец отражения от минимальной границы. + } else if (*pos > max_pos) // Проверяем удар о максимальную границу (низ/право). - { // Начало отражения от максимальной границы. + { *pos = max_pos - (*pos - max_pos); // Зеркально отражаем координату внутрь диапазона. *dir = -*dir; // Инвертируем направление движения. - } // Конец отражения от максимальной границы. -} // Конец функции обновления координаты. + } +} static void on_frame_done(void) {} // Callback завершения DMA-кадра оставлен пустым (логика в main). @@ -100,19 +100,19 @@ int main() render_ctx_t rc; // Контекст рендера, который будет привязываться к текущему буферу кадра. while (1) // Бесконечный основной цикл приложения. - { // Начало тела основного цикла. + { display_poll(); // Обрабатываем внутренние события дисплейного движка (например, frame_done flag). if (!frame_tick_due) // Если тик таймера еще не пришел. - { // Начало ветки "тика нет". + { wait_for_irq(); // Спим до прерывания, чтобы не крутить пустой busy-loop. continue; // Переходим к следующей итерации цикла. - } // Конец ветки "тика нет". + } frame_tick_due = false; // Сбрасываем флаг и разрешаем обработать ровно один кадр на этот тик. if (!display_ready()) // Если прошлый кадр все еще передается DMA на дисплей. - { // Начало ветки "дисплей занят". + { continue; // Пропускаем этот кадр, не накапливая задержку. - } // Конец ветки "дисплей занят". + } uint16_t* buf = display_get_draw_buffer(); // Получаем буфер, в который разрешено рисовать текущий кадр. render_begin(&rc, buf, WIDTH, HEIGHT); // Привязываем контекст рендера к буферу и размерам экрана. @@ -133,10 +133,10 @@ int main() phase += 0.16f; // Продвигаем фазу синусоиды для плавной анимации. if (phase > 6.2831853f) // Если фаза превысила 2*pi. - { // Начало нормализации фазы. + { phase -= 6.2831853f; // Возвращаем фазу в базовый диапазон без скачка формы. - } // Конец нормализации фазы. + } display_submit(); // Отправляем подготовленный кадр на вывод через DMA. - } // Конец тела основного цикла. -} // Конец функции main. + } +}