Да что ты знаешь о боли
Источник: https://vk.com/wall-46453123_226000
Отладка программы
Взято из книги, которую сейчас читаю - А.В. Столяров "Программирование. Введение в профессию", том 1, страницы 429-430.
Для начала мы попытаемся сформулировать ряд базовых принципов, связанных с отладкой, и сделаем это в такой форме, что они, возможно, покажутся вам шуткой; вы вскоре сами убедитесь, что в данной шутке доля шутки совсем незначительна, а всё остальное - самая настоящая правда. Итак:
- ошибка всегда есть;
- ошибка всегда не там;
- если вы точно знаете, где ошибка, то у ошибки может оказаться другое мнение;
- если вы считаете, что программа должна работать, то самое время вспомнить, что "должен" - это когда взял взаймы и не отдал;
- если отладка - это процесс исправления ошибок, то написание программы - это процесс их внесения;
- сразу после обнаружения ошибки дело всегла выглядит безнадёжным;
- найденная ошибка всегда кажется глупой;
- чем безнадёжнее всё выглядело, тем глупее кажется найденная ошибка;
- компьютер делает не то, что вы хотите, а то, о чём вы попросили;
- корректная программа работает правильно в любых условиях, некорректная - тоже иногда работает;
- и лучше бы она не работала;
- если программа работает, то это ещё ничего не значит;
- если программа "свалилась", надо радоваться: ошибка себя проявила, значит её теперь можно найти;
- чем громче грохот и ярче спецэффекты при "падении" программы, тем лучше - заметную ошибку искать гораздо проще;
- если ошибка в программе точно есть, а программа все-таки работает, вам не повезло - это самый противный случай;
- ни компилятор, ни библиотека, ни операционная система ни в чем не виноваты;
- никто не хочет вашей смерти, но если что - никто не расстроится;
- на самом деле всё совсем не так плохо - всё гораздо хуже;
- первая написанная строчка текста будущей программы делает этап отладки неизбежным;
- если вы не готовы к отладке - не начинайте программировать;
- компьютер не взорвётся; но большего вам никто не обещал.
Нужна помощь в подключении приемника 433 мГц и сдвигового регистра на ардуино
Уважаемые пикабушники! Никак не могу разобраться с феноменом. Есть плата Iskra Mini (аналог ардуино нано), подключенный к ней китайский модуль приемника на 433 мГц и два сдвиговых регистра 74HC595. Подключаю к плате. Тестирую. По отдельности все работает, как часы, но стОит только оба модуля запустить одновременно, как сдвиговый регистр начинает включать и выключать пины в случайном порядке. Сперва грешил на наводки, притянул пины и резисторами и конденсатором( все по-разному советуют) - не помогло. Тогда я оставил только код, который циклично по очереди включает и выключает пины регистра, и стал расскоменчивать код построчно и заливать его до того момента, пока ошибка вновь не появится. Таким образом, экспериментально я выяснил, что проблема с регистром начинается в тот момент, когда я задаю скорость передачи для приемника (библиотека VirtualWire, метод vw_setup(2000) . Именно эта строка кода и является причиной хаотичного поведения пинов сдвигового регистра. Уважаемые пикабушники, то-нибудь сталкивался с подобной проблемой? Или может быть кто-то знает пути решения? Буду очень признателен за любую помощь!




