|
|
|
|
Почитал ликбез1. Раньше не читал (обходил стороной), каюсь. :) Кое какие замечания для тех, кто будет читать и анализировать. А ведь именно для этого он (ликбез) и создавался. 1) Исчезла принципиальная схема учебного проекта. Единственная ссылка на нее, которую приводил picmaniac, не работает http://www.pic16.nm.ru/schema01.gif 2) Осталось не понятно, зачем все-таки нужен граф? Так упорно его все рисовали, а пользы я что-то не ощутил. 3) Рисование блок-схемы алгоритма до написания самой программы либо ограничивает фантазию при последующем написании программы, либо рисовать блок-схему надо уже после того, как примерно прикинул сам смысл будущей программы, либо вообще это надо делать параллельно. 4) Обидно и досадно, что вариант, предложенный ganом, так и остался без обсуждения. А вариант интересный и поучительный. Предлагаю обсудить.
|
|
|
Ответы на замечания по пунктам. 1. Схему восстановлю. Видимо, случайно удалил. 2. Граф позволяет лучше увидеть "подводные камни". На нем хорошо видны все возможные состояния автомата, пути перехода между ними, и условия, при которых эти переходы происходят. Всё это можно охватить "одним взглядом". Другое дело что правильно нарисовать его с непривычки сложно. Зато потом вся дальнейшая работа упрощается. 3. Тут каждый сам для себя выбирает вариант. 4. Слово предоставляется учаснегу Zandy :) Что именно желаете обсудить? |
|
|
picmaniac: 4. Слово предоставляется учаснегу Zandy :) Да вот тут накропал. Неоптимально, наверное, длинно, зато просто. Всего один цикл. Прошу указать на ошибки. Хотя в симуляторе работает. :) Может я зря там кучу команд перебрал: andlw, xorlw, comf, swapf? Может проще можно? С портом, когда часть разрядов на вход работает, часть на выход, а мы считываем и записываем сразу весь байт, как то не совсем понятно. Если разряды на вход, а мы туда что-то записываем, может ли это где-то вылезти боком? 60107.asm |
|
|
Не может, пока выводы на вход настроены, оба выходных транзистора закрыты. См. схемы портов в даташите. Вот когда на выход ногу переключим - тогда на ней записанные в защелки значения и появятся. Схему http://www.pic16.nm.ru/schema01.gif восстановил. Программа мне понравилась. Неплохо бы снабдить её хорошими комментариями, всё-таки для начинающих пишем. Да и тут рассказать подробнее про организацию таблиц. |
|
|
Похоже, что можно ещё проще сделать. Вместо: ss movf PORTB,W andlw B'11110000' xorlw B'00001111' movwf TEMP comf TEMP,F swapf TEMP,W call table movwf PORTB goto ss end сделать так: loop swapf PORTB,W andlw B'00001111' call Table movwf PORTB goto loop end Только в этом случае таблицу переделать придётся. ВСЕМ. Смотрите в файлообменнике на gmail статью о применении графов при проектировании микроконтроллерных устройств. Только что я её туда отправил. Пригодится. |
|
|
picmaniac, спасибо, программу поправил по вашему совету (элементарно, Ватсон :) ), добавил подробные комментарии и выкладываю. Рассказать про организацию таблиц мне сложновато, т. к. сам все делаю по наитию. 60176.asm |
|
|
picmaniac, ваша инициатива и помощь по изучению пиков неоценима! Без ложной скромности хочу попросить еще пару, тройку каких-нибудь несложных заданий в асме. Знаете, чисто психологически самообучение как-то плоховато идет. Все-таки вариант: строгий преподаватель и бестолковый ученик веселее движет дело. Какая-то ответственность появляется что-ли. Может и люди еще подтянутся. Левон вот что-то затих. Левон, ау-у! Можно конечно и самому придумать какую-нибудь задачку и тихо сам с собою..., но это не то, понимаете,... дела..., текучка всякая..., семья..., и т. д. А при народе-то стыдно будет сачковать. :) Без лишней теории и рассусоливания. Типа: задание - разбор полетов. |
|
|
Zandy: Левон, ау-у Да тут я, тут... :) Сейчас я нахожусь в положении "студента", пропустившего несколько лекций... Придётся либо "списать", либо как-нибудь "обмануть" или "подкупить" преподавателей... :-D Но, хочется, всё таки изучить предмет. Поэтому ничего другого, как "помоги себе сам" не вижу! А сесть "за уроки" - то нет времени, то вдохновения... Вам всем, наверное знакомо такое чувство... Приходится это сознавать самому себе, как это ни прискорбно! Но, вот только то, что я написал эти строки (повыше) ущемили моё же самолюбие, и прямо таки захотелось доказать себе обратное. Надо взять себя в руки! Литература у меня есть, нужно только выбрать время, когда ничего/никто не будет мешать процессу восприятия материала... Кстати, я твёрдо решил, что изучать буду PIC-и и ассемблер. Следующим будет "С" для PIC-ов. А дальше, если мне чего-то не будет хватать в PIC-ах перейду на AVR... Извините, если кому-то показалось бредом то, что я написал выше. Нахожусь в здравом уме и твёрдой памяти! :) |
|
|
Левон, приветствую! Давай порассуждаем - а так ли нужен ассемблер в современной радиолюбительской практике? (Вопрос с подковыркой) :\)+ С уважением, Николай. |
|
|
Левон: в здравом уме и твёрдой памяти! Да мы нисколько в этом не сомневаемся! Читайте, изучайте, и не стесняйтесь задавать вопросы - любые! Если здесь не желаете спрашивать - пишите по мэйлу, мой адрес доступен каждому. Зимой побольше времени на контроллеры, так что будем продолжать. Zandy: еще пару, тройку каких-нибудь несложных заданий в асме Хорошо, я подумаю.
|
|
|
|
|