Если ноги все заняты?
Если бы было больше ног, можно было бы использовать UART и например на компьютер что-то выводить.
А если свободно 1-2 ноги, и нет среди них USI, то как отлаживать?
Отлаживать - в симуляторе, тестировать - в железе, и так по кругу до результата.
Ещё я практиковал "непонятки" скидывать в EEPROM, пото'м программатором считать и анализировать.
1 - Знание архитектуры МК.
2 - Осциллограф.
3 - Светодиод.
4 - Вывод на дисплей.
5 - Отладка всех программных модулей в симуляторе AVR-Studio. В этом случае следует знать, что студия ядро и программный код симулирует на все 100. Но, периферийные модули не всегда корректно. И это следует учитывать. Научитесь создавать тестовые программные закладки. Список я привел выше.
Если свободна хоть 1 нога - софтовый Тх вам поможет. Если даже нет ни одной ноги - временно для тестов освободите одну, которая не участвует в проверяемом куске кода или ногу, для которой код точно работает правильно. Далее в интересующем месте выплёвывается например номер этой строки и следом то, что хотите посмотреть ( х=...). Далее выводишь enter и перевод строки. И таких закладок может быть доуя, сколько памяти или чтоб на экране небыли каши.
Если данные сыпятся что не разглядеть паузу или делэй вставьте.
Уарт это привязка к частоте тактирования. SPI софтово реализуется на раз. Очень неплохой инструмент для отладки символьный дисплей. Можно сделать на отдельном мк вывод на дисплей и принимать SPI.
В своих проектах я на дисплей выводил состояние переменных, регистров периферии. АЦП, трансиверы, RTC и прочее.
Как пример видео.
[uquote="dgrett",url="/forum/viewtopic.php?p=3894892#p3894892"]Если свободна хоть 1 нога - софтовый Тх вам поможет.[/uquote]
Однажды светодиод посадил параллельно кнопке и выводил текстовую инфо. По морскому.)))
Ведь вывести информацию можно часто даже на занятую ногу. Обычно - это нога входа какого-нибудь датчика, которая развязывается резистором и на которую выводится последовательным кодом отладочная информация. Считываем логическим анализатором.
Отлаживал через debugWIRE, у аттини он по одному проводу, только вот после этой отладки спасает или параллельный программатор или фьюздоктор с полным стиранием.
Электроника -очень точная наука, бубен необходимо держать в левой руке!!!
Здравствуйте, собрал фьюздоктор http://www.getchip.net/posts/059-isprav ... it-doctor/,
горит красный светодиод,если нажать кнопку и отпустить, красный не горит , пару сек. моргает зелёный после загорается красный а зелёный не горит, микроконтроллеры не лечит,пробовал поставить исправный микроконтроллер (который видит программатор),тоже самое,вопрос как проверить работоспособность фьюздоктора?с уважением.
[uquote="ARV",url="/forum/viewtopic.php?p=3900330#p3900330"]протеус позволяет отлично оладить программу, в железе останется только убедиться, что все работает.[/uquote]
Да, только иногда много гемороя привносит.(
В Протеусе как то делал отладочный вывод через ресет-пин. Удобно.
[uquote="PombI4",url="/forum/viewtopic.php?p=3949939#p3949939"]использования пина для debugWire исключает одновременную работу этого пина как обычного GPIO?[/uquote]
у аттини этот пин является ресетом.
Электроника -очень точная наука, бубен необходимо держать в левой руке!!!
[uquote="ZyaK",url="/forum/viewtopic.php?p=3900313#p3900313"]Отлаживал через debugWIRE, у аттини он по одному проводу,[/uquote]
Доступен только с фирменными отладчиками, как я понимаю. Снимается через SPI - в "студии" есть опция по его отключению. Строго говоря это 1 бит конфигурационного регистра и если перед этим SPI программирование не отключили - то без проблем.