Menu

Commit [r21]  Maximize  Restore  History

[*] Оптимизация прошивки с помощью Quen Chat:

Экономия RAM: static uint8_t rx_frame[16] вместо 64 байт в стеке. Это гарантирует, что твой код не упадет из-за нехватки памяти при вызове других функций.
Скорость: Замена uint32_t на uint16_t для времени. На 8-битном AVR вычитание двух 16-битных чисел занимает ~4-6 тактов, а 32-битных — ~12-16 тактов + лишняя память. Математика с переполнением (now - start >= period) работает безупречно.
Читаемость: Удалено ~15 строк дублирующегося кода. Логика "проверить данные или таймаут" теперь выражена в одном месте.
Надежность: ATOMIC_BLOCK гарантирует, что ты не сломаешь работу других прерываний, случайно включив их через sei().
Типы данных: req_idx изменен на uint8_t, так как он принимает значения только от 0 до 4. Нет смысла использовать int (который на AVR является 16-битным).
Примечание: Убедись, что константы UART_SEND_COMMAND_PERIOD, UART_PERIOD_BETWEEN_SEND_COMMAND и LED_BLINK_PERIOD в твоем TIME_CONSTANT.h не превышают 65000 (если они заданы в миллисекундах). Для 3000 мс и 500 мс это идеально.

dynamicsalex 2026-08-20

changed /trunk/CLPCOM_Magnit/CLPCOM_Magnit.pdsprj.DESKTOP-3993H9V.User.workspace
added /trunk/CLPCOM_Magnit/DipTrace/Расчет стоимости монитор ошибок принтеров TSC CLPCOMM 1_2_0.xlsx
changed /trunk/CLPCOM_Magnit/Firmware/CLPCOM_Magnit/CLPCOM_Magnit.atsuo
changed /trunk/CLPCOM_Magnit/Firmware/CLPCOM_Magnit/CLPCOM_Magnit/CLPCOM_Magnit.cpp
changed /trunk/CLPCOM_Magnit/Firmware/CLPCOM_Magnit/CLPCOM_Magnit/Debug/CLPCOM_Magnit.d
changed /trunk/CLPCOM_Magnit/Firmware/CLPCOM_Magnit/CLPCOM_Magnit/Debug/CLPCOM_Magnit.elf
changed /trunk/CLPCOM_Magnit/Firmware/CLPCOM_Magnit/CLPCOM_Magnit/Debug/CLPCOM_Magnit.hex
changed /trunk/CLPCOM_Magnit/Firmware/CLPCOM_Magnit/CLPCOM_Magnit/Debug/CLPCOM_Magnit.lss
changed /trunk/CLPCOM_Magnit/Firmware/CLPCOM_Magnit/CLPCOM_Magnit/Debug/CLPCOM_Magnit.map
changed /trunk/CLPCOM_Magnit/Firmware/CLPCOM_Magnit/CLPCOM_Magnit/Debug/CLPCOM_Magnit.srec
/trunk/CLPCOM_Magnit/CLPCOM_Magnit.pdsprj.DESKTOP-3993H9V.User.workspace Diff Switch to side-by-side view
Loading...
/trunk/CLPCOM_Magnit/Firmware/CLPCOM_Magnit/CLPCOM_Magnit/CLPCOM_Magnit.cpp Diff Switch to side-by-side view
Loading...
/trunk/CLPCOM_Magnit/Firmware/CLPCOM_Magnit/CLPCOM_Magnit/Debug/CLPCOM_Magnit.d Diff Switch to side-by-side view
Loading...
/trunk/CLPCOM_Magnit/Firmware/CLPCOM_Magnit/CLPCOM_Magnit/Debug/CLPCOM_Magnit.hex Diff Switch to side-by-side view
Loading...
/trunk/CLPCOM_Magnit/Firmware/CLPCOM_Magnit/CLPCOM_Magnit/Debug/CLPCOM_Magnit.lss Diff Switch to side-by-side view
Loading...
/trunk/CLPCOM_Magnit/Firmware/CLPCOM_Magnit/CLPCOM_Magnit/Debug/CLPCOM_Magnit.map Diff Switch to side-by-side view
Loading...
/trunk/CLPCOM_Magnit/Firmware/CLPCOM_Magnit/CLPCOM_Magnit/Debug/CLPCOM_Magnit.srec Diff Switch to side-by-side view
Loading...