Програмирование PIC с помощью ассемблера.

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Родился
Сообщения: 14
Зарегистрирован: Вт апр 21, 2009 13:43:25
Откуда: Беларусь

Сообщение levscha »

Счётчик команд как раз и управляет контроллером. Он указывает ту команду, которую необходимо извлечь из памяти программ и выполнить в следующем цикле работы.
Для контроллеров младших семейств (PIC12, PIC16) для изменения доступен только младший байт счётчика PCL. В PIC18 можно производить операции как над младшим, так и над старшим байтами PC.
Не бывает безвыходных ситуаций. Есть только ситуации, выход из которых Вас не устраивает...
Реклама
Мучитель микросхем
Сообщения: 429
Зарегистрирован: Пт ноя 20, 2009 20:38:12
Откуда: Калининград (Koenigsberg)

Сообщение FlySnake »

levscha писал(а):Для контроллеров младших семейств (PIC12, PIC16) для изменения доступен только младший байт счётчика PCL
С каких пор? PCLATH для этого существует. См. даташиты.
И с таблицами ничего страшного если ознакомится с AN556 - Implementing a Table Read запросто делаются сколь угодно большие таблицы без опасности вылететь за пределы
Контактная информация:
Реклама
Родился
Сообщения: 14
Зарегистрирован: Вт апр 21, 2009 13:43:25
Откуда: Беларусь

Сообщение levscha »

Код: Выделить всё

С каких пор? PCLATH для этого существует. См. даташиты.
Извиняюсь, немного напутал.
Не бывает безвыходных ситуаций. Есть только ситуации, выход из которых Вас не устраивает...
Друг Кота
Аватара пользователя
Сообщения: 15615
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

"И с таблицами ничего страшного " - не страшного, а излишне напрягающего :)))
сравнить
movc a,@a+dptr ; где dptr 16-разрядный, а при сложении учитывается перенос из А.7
или
movc a,@a+PC ; mcs51
или
pchl
sphl; - intel 8080
или разновидности чтения и переходов для AVR :roll:
с
retlw
где надо отслеживать и границу страниц и содержимое pclath... :shock:
а попробуй простенький условный возврат из подпрограммы выполнить или табличный селектор переходов(без излишнего внимания) :cry:
Реклама
Эиком - электронные компоненты и радиодетали
Мучитель микросхем
Сообщения: 400
Зарегистрирован: Сб апр 17, 2010 10:30:13

Сообщение misterkuk »

Есть с счётчиком команд разобрался. :)
Теперь прошу объяснить (что это, как эго понимать и как это делается), такие пункты.
1.Определить активный фронт прерывания.
2.Если мы установили прерывание из порта Б, тоесть любая изменение на какойнибуть ноге этого порта приведёт к уходу в подпрограмму, но как узнать какая именно нога отправила в ПП? Опрашивать каждую в ПП?
Контактная информация:
Реклама
Мучитель микросхем
Сообщения: 429
Зарегистрирован: Пт ноя 20, 2009 20:38:12
Откуда: Калининград (Koenigsberg)

Сообщение FlySnake »

По п.1 видимо идёт речь про внешнее прерывание (INTE). Не путать с прерыванием по изменению уровня. Тут смысл что прерывание будет срабатывать по фронту либо спаду (это выбирается данным битом) импульса на ноге с этим прерыванием. Т.е. подав меанд на эту ногу прерывания будут происходить по 1 разу за период этого меандра. А в случае с изменеием уровня - 2 раза за период, ибо фронт (0->1) = спаду (1->0) = прерывание.
2. Так и есть. Только внимательно даташит смотри потому что особенно у старых камней не все ноги имеют интеррапт-он-чендж. Вообще часто не обязательно уводить проц в прервание (кнопки, например), а достаточно опрашивать соответствующие флаги/ноги_портов по ходу работы, ибо если запретить все прерывания глобально, но включить по отдельности их то на соответствущее событие будет вставать флаг-бит, но проц не уйдёт в прерывание.
Контактная информация:
Реклама
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»