Страница 1 из 1

Упрямый PIC18f2520

Добавлено: Вт сен 03, 2013 12:50:39
SeGun
Привет всем, я не имею опыта в программирование контроллеров, но хочу научиться. Имеется железка pic18f2520, собранный программатор ExtraPIC, MPLAB IDE v7.50
Вопрос заключается в синтаксисе написания программы на ассемблере, потому как в большинство книг и документации приводит устаревшие примеры программ, с иным синтаксисом который вызывает ошибку при компиляции. Если кто ни будь программировал для pic18 или есть простейшие программы на ассемблере, поделитесь пожалуйста, заранее благодарю :)) :solder:

Re: Упрямый PIC18f2520

Добавлено: Вт сен 03, 2013 13:06:49
otest
Лучше своей поделись. Посмотрим на ошибку.

Re: Упрямый PIC18f2520

Добавлено: Вт сен 03, 2013 13:12:40
dosikus
http://www.pic18f.com/category/tutorial/

И там же на С http://www.pic18f.com/18f4550-c-tutoria ... c/#more-19

Чип для вхождения не из лучших , тем более на асме ...

Re: Упрямый PIC18f2520

Добавлено: Вт сен 03, 2013 14:52:45
Аlex
На самом деле АСМ очень простой язык. И никаких примеров не нужно (разве что голой "шапки"). Достаточно открыть даташит и ознакомиться с командами. Так же нужно выучить этот МК, что он из себя представляет, что умеет, какая периферия и как ей управлять. Если Вы во всё это дело "вкурите", то будете писать уже программы самостоятельно, без всякого чужого кода.
А примеры на АСМе есть в папке examle в установленной директории МПЛАБа.

Re: Упрямый PIC18f2520

Добавлено: Вт сен 03, 2013 15:15:10
SeGun
LIST P=PIC16F84A ; это как видно программа для другого контроллера но в этой строчке жалуется что ее не должно быть а вместо этой строчки вставляется такая #INCLUDE <P18F2520.INC>

__CONFIG H3FF1 ; тут жалуется что директива конфиг устарела, и я опрделил что это директива должна выглядеть вот так CONFIG OSC = XT
CONFIG CP0 = OFF
CONFIG CP1 = OFF


STATUS EQU H0003
PORTB EQU H0006 ; тут говорит что нельзя использовать такие имена для операндов, что они зарезервированы под регистры и описаны вот в это файле P18F2520.INC, в котором уже присвоены все необходимые адреса
TRISB EQU H0006
Reg_1 EQU H000C
Reg_2 EQU H000D
Reg_3 EQU H000E

org 0 ; начало программы
; подготовительные моменты
bsf STATUS,5 ; переход в Банк 1 ; тут происходит выбор какого то банка, тут ошибки нет, но вся проблема в том что в этом регистре для pic18 5 бит вообще отсутствует, и как на нем выбрать банк я не знаю
clrf TRISB
bcf STATUS,5 ; переход назад в Банк 0
; установка сигналов на порту В
m1 movlw b11111111 ; запись в аккумулятор; тут говорит что так нельзя присваивать значения только вот так 0xff
movwf PORTB ; перенос из аккумулятора в порт
call Pause ; переход на метку (с возвратом)
clrf PORTB ; "очистка" порта
call Pause ; переход на метку (с возвратом)
goto m1 ; переход на метку (зацикливание)


;delay = 500000 machine cycles ;этот код вообще не разумен, кроме того имеет ошибку и входит в бесконечный цикл
Pause movlw .85
movwf Reg_1
movlw .138
movwf Reg_2
movlw .3
movwf Reg_3
wr decfsz Reg_1, F
goto wr
decfsz Reg_2, F
goto wr
decfsz Reg_3, F
goto wr

return

end ; конец программы

Я все же добился что б программа откампелировалась, но после загрузки, контроллер все равно не работает. Мне не нужно что б заработала именно это программа. Мне нужно что б в контроллере установился высокий уровень хотя б на одном порту, дальше я думаю разберусь.

Re: Упрямый PIC18f2520

Добавлено: Вт сен 03, 2013 15:25:57
dosikus
Жесть . Компилить код под говно мамонта из Midle range на 18е.
У них и ассемблер то совершенно разный .
Вы ссылки мои смотрели? Или снова- моя не понимай , там инглиш...

Re: Упрямый PIC18f2520

Добавлено: Вт сен 03, 2013 15:26:31
otest
Да вы батенька совсем не читали азов. Выше уже посоветовали что нужно знать.

Re: Упрямый PIC18f2520

Добавлено: Вт сен 03, 2013 15:27:26
dosikus
SeGun писал(а): дальше я думаю разберусь.


Методом тыка ? Это навряд ли...

Re: Упрямый PIC18f2520

Добавлено: Вт сен 03, 2013 15:38:55
SeGun
:) :) За ссылки Большое спасибо, жаль на английском, но думаю разберусь. Программу выложил потому что otest просил в сообщении выше. И честно сказать не могу понять почему нет, мануала под этот контроллера на русском языке, а только под 16 пики
:hunger:

Re: Упрямый PIC18f2520

Добавлено: Вт сен 03, 2013 16:05:58
Dmitry Dubrovenko
SeGun писал(а):не могу понять почему нет, мануала под этот контроллера на русском языке, а только под 16 пики
Потому, что начинать учиться лучше на 16-м. :)

Re: Упрямый PIC18f2520

Добавлено: Ср сен 04, 2013 13:14:36
BOB51
Для начала обнови IDE до версии 8.92 :
http://www.microchip.com/stellent/idcpl ... t=SW007002

http://www.microchip.com/Microchip.WWW. ... =SW007002#

там кстати для 18-х описание фузов изменено, надо смотреть встроенный хелп :cry:

насчет документации - есть несколько книжек в инете по 18-м:
http://vprl.ru/index/mikrokontrollery/0-98
http://elektromehanika.org/
ну и в других местах...
8)

Re: Упрямый PIC18f2520

Добавлено: Ср сен 04, 2013 14:09:02
КРАМ
Хоть обчитайся:
http://www.microchip.ru/files/d-sheets- ... manual.pdf

И вообще для испытывающих идиосинкразию к пиндосам: http://www.microchip.ru/lit/?mid=1x0

Re: Упрямый PIC18f2520

Добавлено: Чт сен 05, 2013 06:38:42
BOB51
Не лучшее из описаний, но почитать можно... :(
Каждый МК хорош в своей области, главное понять - где явная реклама и фанатики, а где истинная суть и беспристрастный анализ.
8)

Re: Упрямый PIC18f2520

Добавлено: Чт сен 05, 2013 08:28:23
КРАМ
BOB51 писал(а):Не лучшее из описаний, но почитать можно... :(

Обычный перевод даташита с небольшой адаптацией.
Что касается применимости контроллеров, то под задачу выбирают ресурсы. А тип и производитель не имеют никакого значения.
Учитывая квалификацию ТС, выбор достаточно типовой и беспроблемный.
Если хватит сил обуздать жабу и купить PICkit2(3), а контроллер такой же, но дешевле (PIC18F25K20), то он получит удовольствие от возможности отладки, чего в иных конфигурациях он будет лишен...
Резиновая Зина Протеус дает отдаленное представление о работе железа... :cry: