|
Вопрос по ликбезу: насколько сильно надо переделывать (и вообще, надо ли?) asm-программы, написанные под PIC16F84, чтобы они шли на PIC16F628? Ответ найти, конечно же, могу, но для этого надо перелопачивать документацию. Если кто даст ссылку на пошаговую инструкцию, было бы вообще замечательно. |
|
|
Ага, пока я был на работе в оффлайне, здесь процесс шел вовсю. Это хорошо Со всеми, кто уже успел высказаться в этой ветке, я полностью солидарен. Насчет системы команд на листке - да, это очень помогает, сам всегда так делал на первых порах. Очень полезно распечатать (в нескольких экземплярах, и покрупнее) также карту памяти того микроконтроллера, для которого пишете программу, и также держать перед глазами. Карта обычно есть в даташите. В неё удобно вписывать наименования, которые мы присваиваем регистрам ОЗУ. И, конечно же, бумажный даташит - без него поначалу практически никак. Вот какие памятки я делал для себя (см. присоединенный архив). О литературе: есть очень хорошая книга: В.С. Яценков "Микроконтроллеры Microchip. Практическое руководство" - Москва, Горячая линия-Телеком, 2002. 296с. Я купил в Москве, когда в командировке был. Кстати, автор этой книги известен под ником picman (почти тёзка мой ), я читал его статьи в "Компьютерре". Далее, вношу предложение: не бить растопыренными пальцами, а нанести серию ударов кулаком по незнанию. То бишь, сосредоточиться сначала на решении простой учебной задачи. Успешно её решив (думаю, это не займет много времени), постепенно идти дальше, накапливая опыт. Предложенное Левоном устройство интересно, только вот "с ходу" такую задачу не одолеть. Устройство не такое уж простое, легко запутаться. Теперь насчёт asm или C. Сам пишу пока только на асме. Считаю, что лучше начать с него. PIC16 - достаточно простые контроллеры, и при программировании на асме всё очень наглядно получается. Потом можно постепенно освоить С. Теперь о бароне, тьфу, о графе. Изобразить его, безусловно, полезно. Но для простых конструкций для начала можно ограничиться подробной формулировкой на словах. Желательно также составить блок-схему алгоритма. Хорошо нарисованный граф наглядно показывает логику работы устройства. Сам я для своих конструкций, честно говоря, ни разу его не рисовал О переносимости программы с 84 на 628. Обычно это не вызывает особых затруднений. Достаточно лишь перенести регистры, задействованные пользователем, с адресов 0Ch...0Fh на 5Сh...5Fh например. Правильно задать слово конфигурации. В самом начале программы отключить компараторы командами: movlw 07h movwf CMCON Засада подстерегает в случае работы с энергонезависимой памятью EEPROM. Адреса различаются, и банки памяти тоже. И прерывания от EEPROM по-другому программируются. Приходится переделывать. Начнём помаленьку действовать? Для начала прошу высказать мнения по предложенному техзаданию. Если оно годится, то переходим к первому шагу. Определяемся с версией MPLAB (моей душе особенно мила 5.70.40) и со схемой - куда кнопки подключим, куда светодиоды. Предлагаю: кнопки RB4-RB7, светодиоды RA0-RA3. Программа-минимум: создать проект в MPLAB, произвести инициализацию контроллера, сконфигурировать порты, научить PIC зажигать один светодиод в ответ на нажатие одной кнопки. Проще некуда. 34910.zip |
|
|
У меня уже грабли: нет версии 5.70.40, так что прошу у кого есть прислать на мэйл. Техзадание устраивает, правда я уже привык ко входам на ПОРТА, а выходы на ПОРТВ. Может перевернем: кнопки RA0-RA3, светодиоды RB4-RB7/ Барона (то бишь графа) для этого ТЗ я набросал, причешу завтра и покажу, чтобы покритиковали. |
|
|
MPLAB 5.70.40 есть здесь (порядка 13 мегабайт): http://www.microchip.ru/?mid=2x2&file=mplab5xx.htm Преимущества: небольшой объем (легче скачать), есть описание на русском языке, в том числе и в "Радио", и самое главное - мне 5-я версия нравится, там интерфейс удобный. Позже при желании можно будет перейти на новую версию. Подключение я неспроста такое предложил: на выводах PORTB предусмотрены внутренние "подтягивающие" резисторы к "плюсу" питания, килоом эдак по 50. Поэтому кнопки можно просто подключить между выводом и "общим". А еще есть прерывание по изменению уровня на входах RB4-RB7. Вот описание MPLAB5 на русском языке (не помню откуда скачал, давно было): http://www.pic16.nm.ru/MPLABinfo.zip
|
|