Микроконтроллеры | Ликбез по программированию PIC , vol. # 2 |
|
---|---|---|
Вопрос по Test01.pbas: Строки 63, 71, 75, 79 обозначены комментом как задержка. Имеестя в виду задержка на время выполнения одной операции, т.е.1мкс при 4 МГц резонаторе? Её цель? PS: в железе проверялась работа программы? |
|
|
Задержки предусмотрены между выводом данных в порт и чтением данных из того же порта. Служат для гарантированного установления логических уровней на выводах контроллера перед опросом клавиатуры. Их длительность может быть от 1 до нескольких тактов, в данном случае это не принципиально. Точную величину можно увидеть в ассемблерном файле, который создается при компиляции. Об этом был разговор в "ликбезе-1". |
|
|
picmaniac , АУ! Вот это "тяпница"! Завтра уже очередная, а picmaniac еще из той не выбрался! Я разобрался с программой сканирования и прикрутил к схеме индикатор WM1611 на Порт А: RA0 - DI, RA1 - clock, RA2 - H/K. Если не понравится, то можно переставить на Порт В. Проект на mb в аттаче. PS: до 13-го (ориентировочно) вечером недоступен (нет сети). |
|
|
Схема подключения клавиатуры и индикатора в аттаче. |
|
|
Да жив я, жив... Просто занят по работе и дома сильно. К зиме готовимся. Беру тайм-аут ненадолго. |
|
|
picmaniac: К зиме готовимся. Наверное берлогу утепляет. А мы тута к зиме привычные, мы обычно к лету готовимся. |
|
|
ПРЕВЕД!!! И берлогу тоже - сегодня вот окно меняли... В основном на работе заморочки. |
|
|
picmaniac: Мы еще напрограммируем Как Вам мои дополнения к Вашей проге? PS: Ув. Левон, пора бы Вам присоединиться к обсуждению, задать вопросы, если появятся. Ведь практически 50%, а то и более Вашего Т.З. по кодовому замку уже спроектировано, а отзыва не слышно. |
|
|
Splav56, прога эта не моя, а общая, как википедия. И любой желающий может вносить в неё изменения и дополнения, а затем представлять на всеобщее обозрение. И это я приветствую и одобряю. Схемка .spl у меня чего-то не открывается. Может лучше её в GIF превратить для показа? Пару слов о программе. Если она нормально работает с реальным железом - это главный плюс. В этом, можно сказать, и есть цель и смысл её существования на белом свете. Практика - критерий истины. Немного об оптимизации. goto в ассемблере неизбежны. В ЯВУ они уже считаются нежелательными. Хороший алгоритм позволяет обойтись без них. Или, хотя бы, свести их к минимуму. В процедурах, работающих с портами, для универсальности полезно не просто сохранять значение TRISA, но и перенастраивать порт под нужды процедуры. Кто знает, а вдруг RA0 и RA1 были настроены как входы перед вызовом процедуры WT1611out ? Пример есть: TEMPPORT = PORTB ' Сохранение состояния порта Настройку не требующихся в процедуре выводов лучше не изменять. Был выходом - им и останься, был входом - что ж, сохраняй свою ориентацию. Возможно, потребуется явно задать и состояние защелок (я еще подумаю). Не обязательно использовать глобальную переменную COUNT в процедуре ClearInd. Там можно и локальную использовать. ClearInd() - скобки не нужны. Просто ClearInd. Еще одно выявленное мной замечание по mb. Каждую задержку delay_ms, delay_us он преобразует в отдельную последовательность ассемблерных инструкций (посмотрите сгенерированный asm). Это приводит к бесполезному и очень приличному расходу памяти программ. Поэтому, если в программе много одинаковых задержек, гораздо выгоднее один раз использовать delay с фиксированным аргументом, описав процедуру: sub procedure delay200ms ' Для экономии памяти программ А затем уже вызывать эту процедуру сколько угодно раз. Экономия весьма и весьма ощутимая. И если требуется задержка вдвое, втрое длительней - выгодней дважды, трижды вызвать эту процедуру, а не использовать отдельный delay_ms или delay_us. Вывод последовательности на индикатор, конечно, можем осуществить и "в лоб". Каждому биту - свой кусок кода. Однотипный. И свой кусок памяти программ. Просто и вполне работоспособно. Это хорошо, если битов четыре. А если их 1024? Так что в общем случае неплохо бы использовать тут цикл. И напоследок то, о чём я уже неоднократно упоминал. При работе с битами регистров портов необходима повышенная внимательность и осторожность. http://www.pro-radio.ru/controllers/2883/ |
|
|
Splav56: пора бы Вам присоединиться к обсуждению |
|
|
Форум про радио — сайт, посвященный обсуждению электроники, компьютеров и смежных тем. pro-radio.online | Обратная связь |
© 2003—2024 |