в твоем коде нет ни одной структуры на 100кб текста. Ты не знаешь, что это такое, вообще. Поэтому это лабораторная работа по использованию массивов, не более. Для того, чтобы автоматизировать что-либо, надо изучить ТАУ, до начала автоматизации. Ты не знаешь, что это такое, вообще. Ты спросил мое мнение, вот оно: твой код - говно. Я могу быть свободен?
Да тебе вообще никто не держит.
Ты дурак, нет? сверни код. Ctrl + K + 0. Весь код на функции разбит… Выносить это в отдельные файлы, создавать классы, заголовочный файл это не умение программировать это просто разные подходы. Мне удобнее так, ты себе можешь хоть 500 файлов сделать.
яж и говорю, ты не знаешь, что такое структуры. угомонись, ты тонешь все глубже с каждой новой не очень умной мыслью, выраженной текстом.
договорились. ты свободен.
нет, теперь уже поздно. Ты спросил, не дурак ли я? Нет, я не дурак, мы вообще здесь такое слово не испольузем (с).
ты натаскал каких то библиотек от таких же как ты, неучей, у тебя чето там чудом скомплиилось, и вот ты подумал что ты программист ахахахах. Где то там память течет стопудово, но для тебя это темный лес, дяденька. печально. Порхай, как бабочка, жаль, что ты лох.
Обычно через капчу не лезу (оно мне надо?), но после
таки полез. Интересно же! Посмотрел ESP_CHAT_036.ino
.
Ну, что, классный код! Всё необходимое для необъяснимых перезагрузок на борту имеется (начиная с 77 глобальных переменных). Всё отлично!
@narayanabox , и чего Вы до завтра-то с этой темой не подождали? Так торопитесь?
https://www.c-cpp.ru/books/struktury
Хорошо, согласен, структуры не одной нету… А на кой ляд она там нужна? или ты просто открыл код, нажал поиск struct, ничего не нашел и решил, что код говно? У тебя любой код измеряется наличием или отсутствием структур в нём?
структуры нужны для реализации парадигмы ООП.
нет.
нет.
Так это ты зашел сразу с хамством, в ответ получил такое же общение.
я не считаю что спросить у человека дурак ли он - это хамство. я просто ответил, без претензий.
ТС, flexprint тебе еще сильно польстил с названием кода. Не удивляйся неожиданным перезагрузкам, раз оно тебе “так удобнее”.
Вы мне все тут хотите какие-то мотивы приписать вдвоем, которых у меня нету. Нет, это не лабораторная работа. Нет, мне никуда её сдавать не надо.
Все глобальные переменные должны быть глобальными. К ним происходит постоянное обращение из разных функций. Стринги все обнуляются, после использования в местах, где они используются. А переменные статического размера не знаю кому мешают в глобале. Мне не мешают.
хороший форум, и критика конструктивная.
я так тоже умею “всё непонятное - говно”…
претензии к форме, а не к содержанию, относятся к низшим ступеням пирамиды Грэма, но ты же и так это знаешь, просто тебе так удобнее)
@narayanabox
Тоже посмотрел. Примерно половина (если не две трети) кода посвящено отчаянному сражению автора с матрицей из адрессной ленты.
Символы для матрицы закодированы следующим образом:
byte ClockArray_PERCENTAGE [6] = {1, 1, 1, 1, 1, 1,};
byte ClockArray_digit1 [14];
byte ClockArray_digit2 [14];
byte ClockArray_digit3 [14];
byte ClockArray_digit4 [14];
byte ClockArray_DOT [1] = {1,};
byte ClockArray_digit5 [14];
byte ClockArray_digit6 [14];
byte ClockArray_digit7 [14];
byte ClockArray_digit8 [14];
byte ClockArray_digit9 [14];
byte ClockArray_digit10 [14];
byte ClockArray_digit11 [14];
byte ClockArray_COLON [2] = {1, 1,};
byte ClockArray_digit12 [14];
byte ClockArray_digit13 [14];
и еще несколько таких же наборов под другие размеры.
Естесственно, такое неумение обращаться с данными влечет за собой появление функций типа этой
void Clock_Array_trans_func() // конвертация 7ми сегментного массива в массив и 14ти светодиодов //
{
digit_to_segment_converter (ClockArray4_full_13_numbers [0]);
for (int i=0; i<7; i++)
{
ClockArray2_digit1 [i] = ClockArray4_temprorary [i];
}
for (int i=0; i<14; i++)
{
ClockArray_digit1 [i] = ClockArray2_digit1 [ClockArray4_digit1_2 [i]];
}
digit_to_segment_converter (ClockArray4_full_13_numbers [1]);
for (int i=0; i<7; i++)
{
ClockArray2_digit2 [i] = ClockArray4_temprorary [i];
}
for (int i=0; i<14; i++)
{
ClockArray_digit2 [i] = ClockArray2_digit2 [ClockArray4_digit1_2 [i]];
}
digit_to_segment_converter (ClockArray4_full_13_numbers [2]);
for (int i=0; i<7; i++)
{
ClockArray2_digit3 [i] = ClockArray4_temprorary [i];
}
for (int i=0; i<14; i++)
{
ClockArray_digit3 [i] = ClockArray2_digit3 [ClockArray4_digit3 [i]];
}
digit_to_segment_converter (ClockArray4_full_13_numbers [3]);
for (int i=0; i<7; i++)
{
ClockArray2_digit4 [i] = ClockArray4_temprorary [i];
}
for (int i=0; i<14; i++)
{
ClockArray_digit4 [i] = ClockArray2_digit4 [ClockArray4_digit4_5 [i]];
}
digit_to_segment_converter (ClockArray4_full_13_numbers [4]);
for (int i=0; i<7; i++)
{
ClockArray2_digit5 [i] = ClockArray4_temprorary [i];
}
for (int i=0; i<14; i++)
{
ClockArray_digit5 [i] = ClockArray2_digit5 [ClockArray4_digit4_5 [i]];
}
digit_to_segment_converter (ClockArray4_full_13_numbers [5]);
for (int i=0; i<7; i++)
{
ClockArray2_digit6 [i] = ClockArray4_temprorary [i];
}
for (int i=0; i<14; i++)
{
ClockArray_digit6 [i] = ClockArray2_digit6 [ClockArray4_digit6_7_8_9 [i]];
}
digit_to_segment_converter (ClockArray4_full_13_numbers [6]);
for (int i=0; i<7; i++)
{
ClockArray2_digit7 [i] = ClockArray4_temprorary [i];
}
for (int i=0; i<14; i++)
{
ClockArray_digit7 [i] = ClockArray2_digit7 [ClockArray4_digit6_7_8_9 [i]];
}
digit_to_segment_converter (ClockArray4_full_13_numbers [7]);
for (int i=0; i<7; i++)
{
ClockArray2_digit8 [i] = ClockArray4_temprorary [i];
}
for (int i=0; i<14; i++)
{
ClockArray_digit8 [i] = ClockArray2_digit8 [ClockArray4_digit6_7_8_9 [i]];
}
digit_to_segment_converter (ClockArray4_full_13_numbers [8]);
for (int i=0; i<7; i++)
{
ClockArray2_digit9 [i] = ClockArray4_temprorary [i];
}
for (int i=0; i<14; i++)
{
ClockArray_digit9 [i] = ClockArray2_digit9 [ClockArray4_digit6_7_8_9 [i]];
}
digit_to_segment_converter (ClockArray4_full_13_numbers [9]);
for (int i=0; i<7; i++)
{
ClockArray2_digit10 [i] = ClockArray4_temprorary [i];
}
for (int i=0; i<14; i++)
{
ClockArray_digit10 [i] = ClockArray2_digit10 [ClockArray4_digit10_11_12_13 [i]];
}
digit_to_segment_converter (ClockArray4_full_13_numbers [10]);
for (int i=0; i<7; i++)
{
ClockArray2_digit11 [i] = ClockArray4_temprorary [i];
}
for (int i=0; i<14; i++)
{
ClockArray_digit11 [i] = ClockArray2_digit11 [ClockArray4_digit10_11_12_13 [i]];
}
digit_to_segment_converter (ClockArray4_full_13_numbers [11]);
for (int i=0; i<7; i++)
{
ClockArray2_digit12 [i] = ClockArray4_temprorary [i];
}
for (int i=0; i<14; i++)
{
ClockArray_digit12 [i] = ClockArray2_digit12 [ClockArray4_digit10_11_12_13 [i]];
}
digit_to_segment_converter (ClockArray4_full_13_numbers [12]);
for (int i=0; i<7; i++)
{
ClockArray2_digit13 [i] = ClockArray4_temprorary [i];
}
for (int i=0; i<14; i++)
{
ClockArray_digit13 [i] = ClockArray2_digit13 [ClockArray4_digit10_11_12_13 [i]];
}
}
где на каждую позицию приходится писать отдельный код…
Ну а как иначе, если у вас каждая цифра в своем массиве…
Комментировать не буду, автор реагирует болезненно.
Похоже не судьба мне поучится
не комплексуйте и не оправдывайтесь! Зато у Вас есть switch
на 210 строк (с №536 по №746). Этого вполне достаточно, чтобы всё начинало неожиданно перегружаться и без структур!
Та не, я просто давно так не смеялся.
@narayanabox
Теперь по сути вопроса в первом посту.
Когда программа перегружается из-за наводок, обычно это происходит при включении мощных источников помех в самой схеме или рядом. Я вижу у вас на фото какие-то моторы или сервы огромные. Не замечали, что перезагрузка совпадает с их включением?
Второе - какие именно “проблемы на линии земли” вы имели в виду? Есть предположения? Если у вас что-то происходит, когда вы касаетесь проводов или платы - обычно это говорит о плохих контактах. Проверяйте провода и пайку, имейте в виду что дюпоны - очень ненадежный вариант.
Ну и третье. Все проблемы с железом характерны тем, что девайс перегружается нерегулярно. Может 10 раз за полчаса зависнуть, а может и неделю отработать.
Если же программа перегружается через примерно равные, особенно длительные интервалы - это почти наверняка код. В вашем случае про код уже сказали, повторятся не буду, вероятность что он виснет или перегружается - я бы сказал процентов 90-95.
Да не болезненно я реагирую. Не знаю как еще реагировать на хамство.
Вот это уже похоже на конструктив.
Ну так эти массивы создают отображение данных на табло. Может есть какое-то более красивый способ это сделать. Я его не придумал. Если есть сходу идея, которую вы можете описать - я как раз с удовольствием её выслушаю.
Небольшое описание проблемы, чтобы было понятно.
Библиотека FastLED работает с массивом, в котором состоят все светодиоды по очереди.
На табло лента припаяна змейкой, соответственно для какой-то цифры “первый” сегмент будет первым, а для какой-то “первый” сегмент будет четвертым. Отсюда и появились эти функции преобразования.
Ну и от самой функции преобразования Цифры в семи-сегментный формат тоже никуда не деться.
Чувак, тебе рановато Стива Джобса изображать, ну типа “я не знаю как надо, но вот это слишком хамство, а это слишком зеленое, а вот это оооо, вот это похоже на конструктив.” С ним, кстати, из-за этого как дебилом общались одно время, чтоб не волновать. Любые совпадения случайны.