95 подписчиков
Монитор воздуха.
Второй раз за более чем 10 лет.
Программист (это я) бездумно допрограммировался и Mega 2560 стала перезагружаться. Все симптомы указывают на безалаберную работу с памятью. За это по хорошему надо бить по рукам. Кроме меня самого по рукам мне дать некому. Поэтому в ближайшее время буду заниматься оптимизацией кода.
Пока наметки такие:
В программе много текста. Статичный вынесу в PROGMEM.
В программе слишком много процедур или функций (не знаю как правильно применительно к Ардуино) - это те которые void my_function () {}. Не особо запариваясь делал по функции на каждый пук. Теперь буду думать как сократить количество пуков в коде и запихать несколько функций в одну. Идеи есть.
Пока сделал следующее:
Пробежался по всем переменным и оптимизировал типы. Например, не обязательно использовать int для хранения часов и минут. Достаточно byte.
Отфигачил ненужный вывод в COM порт - Serial.print
В void loop() было много условий вида if (условие 1 && условие 2 && условие 3 && условие 4). Условие 4 было одинаковым для десятка таких конструкций. Общее для всех условие вынес наверх.
Мораль: не делайте как я. :) Берегите своё время. Сразу делайте правильно.
По традиции: оптимизированного кода вам в ленту.
1 минута
4 декабря 2023