Свежие обсуждения
Микроконтроллеры

Ликбез по программированию PIC

1 29 99

Allex: список "хотелок"
Подробно отвечу вечером, т.к. сейчас на работе.
А вообще в ветке про Чемберлена правильную мысль высказали - не стоит сейчас зацикливаться на асме. Достаточно иметь общее представление о нём. Современные компиляторы уже достаточно хороши. Девайс по техзаданию № 3 доделаем на асме, а потом можем для сравнения его же на Бейсике или на Си сделать.

 

picmaniac: Девайс по техзаданию № 3 доделаем на асме, а потом можем для сравнения его же на Бейсике или на Си сделать.
picmaniac, умоляю. Пусть в этой ветке будет асм. Ведь есть же ветка ликбеза №2, там и бейсик и си можно. Хочется все-таки в асме руку набить. Только - только начали чуть-чуть понимать эту тарабарщину, и сразу бейсик.
Вот для меня, например, чужие программы на асме так и остаются тайной за семью печатями, а хотелось бы уметь разбираться.
Ведь есть еще такие вещи, как директивы, многие их применяют, а хрен знает как ими пользоваться.
По поводу задания №3. Программу вчерне я сляпал, в мплабе не запускал еще, боюсь. Решил теперь алгоритм нарисовать. Вот здесь трудности. Как-то по дурацки выходит. Казалось бы сначала надо алгоритм, потом программу, а вот не получается. Выложу на суд сегодня попозже, к вечеру.

 

Хорошо, без проблем, я ничуть не возражаю. Пусть эта ветка будет посвящена только ассемблеру. Захотим - других тем насоздаём.
Статью прочитали? Перед рисованием алгоритма полезно сформулировать его подробно на словах. Затем неплохо бы нарисовать граф. Потом - алгоритм. А потом уже программу.

 

Alex: - для чего используется команда SWAP
А SWAP в пиках это как и в АВР-ках перестановка тетрад? Тогда это иногда удобно для быстрого сдвига на 4 бита. Вместо 4 команд - одна, но только иногда

 

Да. Ещё эта команда бывает полезна при организации табличной конвертации. См. программу Zandy на стр.26.

 

picmaniac: Статья на тему составления графов выложена мной в файлообменник на gmail.
Научите, как туда попасть.

 

Читал я читал статью про графы. Конечно, наверное хорошая штука, но как-то все уж очень формализовано. Ну не умею я мыслить глобально. Не понял особой связи с конкретикой. Может статья очень краткая. Должны же быть какие-то стандартные приемы, подходы и т. д. Короче, я понял, что этому тоже надо учиться и учиться. Ну не смог я нормальный граф нарисовать.
Да и блок-схему алгоритма нарисовал по мере написания программы на асме.
Вот выкладываю первую часть. Это такой укрупненный алгоритм.

60499.doc

 

А здесь более детализированный алгоритм. Ну может корявенько, не знаю, не умею рисовать алгоритмы. Кстати тут не разместил подпрограмму задержки, подумал, что и так ясно, как ее делать. В самой программе она конечно присутствует.

60500.doc

 

Ну и вот наконец и сама программа. Для ветвления на 4 сценария я воспользовался тем же приемом, что и с таблицами, но тут я применил переходы на подпрограммы.
Насчет дребезга контактов я думал. Вроде тут он особо влиять не будет, а может будет, кто его знает. Хотелось бы поподробнее с этим разобраться.
Да, есть еще вопросы и по мплабу. Я пользуюсь MPLAB IDE v7.43, т. е. последней версией. Как-то мне 7 версия больше по душе, чем 5. Там много нововведений по сравнению с 5 версией, вот только, "с чем их кушать"?
Ну, жду критики. А программа в симуляторе работает, гонял ее и вдоль и поперек.
Левон, ваш вариант?

60502.asm

 

Я не понял вот что: почему используется такая странная конструкция
movwf TRISB^80h
почему не просто
movwf TRISB

Еще конструкцию вида
movlw B'00000000'
movwf XXX
можно заменить на
clrf XXX