Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
12.02.2009, 12:06
|
|
Прописка
Регистрация: 24.07.2008
Сообщений: 151
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
ассемблер и ARV (посмотрите код)
Добрый день. С ассемблером и основными приемами программирования на нем под микроконтроллеры я сталкивался редко. Сейчас пытаюсь заполнить этот пробел крупицами знания. А заполняю я их с помощью готовых рабочих кодов выполняя какие-то задания, переход с Меги8 на Мегу88 у меня затянулся с Си кодом разобрался осталось разобраться с «асм» вставками ну ладно хватит флудить. Перейду к вопросам, вот малая часть кода написанная под мегу8.
Пожалуйста добавти комментарии к строкам и как его переделать под Мегу88 (если есть разница) куда «смотреть» и на что обращать внимание, с портами все просто а вот что такое регистры понять не могу. Да и если есть книга по асму для АВР киньте ссылочку.
Код:
|
.equ PORTB =$18
.equ PIND =$10
.def out_prep =r16
.def out_noprep =r17
.def prep =r4
.def inc_buf_lo =r6
.def inc_buf_hi =r7
.def sum_lo =r18
.def sum_hi =r19
.def timeout1 =r5
.def i =r20 |
|
|
|
|
12.02.2009, 12:20
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
|
ARV - это чувачило такой КРУТОЙ с РадиоКота !
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
|
|
|
|
12.02.2009, 12:22
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
|
Re: ассемблер и ARV (посмотрите код)
Сообщение от FedorChek
|
с портами все просто а вот что такое регистры понять не могу.
|
Регистр - такой "ящичек" в котором 8 бит обычно - т.е. регистр это 1 байт обычно.
У "ящичка"-регистра есть адрес. Эти адреса в таблице в конце даташита.
Подробно "Устройство AVR" - http://avr123.nm.ru/02.htm
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
|
|
|
|
12.02.2009, 12:24
|
|
Вид на жительство
Регистрация: 03.06.2007
Сообщений: 368
Сказал спасибо: 3
Сказали Спасибо 59 раз(а) в 52 сообщении(ях)
|
Это команды препроцессора,можно обойтись и без них,но если возникла необходимость модификации программы,то можно много ошибок понаделать.
.equ - по каковски "это"
Значит-слово "PORTB" это то ,что находится в регистре ввода-вывода под шестнадцатеричным адресом-18.
.def - слово,которым именуем конкретный регистр общего назначения,т.е.РОН r16 в этой программе будем называть "out_prep"
|
|
|
|
12.02.2009, 12:25
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
|
Сообщение от FedorChek
|
если есть книга по асму для АВР киньте ссылочку.
|
Качайте КНИГИ в библиотеке по той же
ссылке выше и читайте.
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
|
|
|
|
12.02.2009, 12:35
|
|
Вид на жительство
Регистрация: 03.06.2007
Сообщений: 368
Сказал спасибо: 3
Сказали Спасибо 59 раз(а) в 52 сообщении(ях)
|
Ну,после уважаемого avr123-nm-ru мне добавить нечего,только что дерективой .equ именуют константы
|
|
|
|
12.02.2009, 12:39
|
|
Супер-модератор
Регистрация: 03.05.2007
Сообщений: 2,695
Сказал спасибо: 28
Сказали Спасибо 4,508 раз(а) в 956 сообщении(ях)
|
Вот тебе прямая ссылка на книжку Ю.Ревича "Практическое программирование микроконтроллеров
Atmel AVR на языке ассемблера" на Рапиде, если лень глаза поднять на тему книги. Только-что проверил - оно там лежит. Главу 2 - читать срочно!!!
http://rapidshare.com/files/19078847..._pr_mk_avr.rar
|
|
|
|
12.02.2009, 13:09
|
|
Прописка
Регистрация: 24.07.2008
Сообщений: 151
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Спасибо. В названии я ошибся, извиняюсь. Спасибо!!!
|
|
|
|
12.02.2009, 13:45
|
|
Прописка
Регистрация: 24.07.2008
Сообщений: 151
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Ёёёёё..... классно кажется начинаю понимать. Согласно "даташиту" Мега8 (PORTB 0x18 (0x3 ) Мега88 (PORTB 0x05 (0x25)) значит меняем equ PORTB =$18 на equ PORTB =$05 и т.д. Осталось понять что такое r6 (есть ли отличия) в строке .def inc_buf_lo =r6
|
|
|
|
12.02.2009, 13:52
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
|
Сообщение от FedorChek
|
Осталось понять что такое r6 (есть ли отличия) в строке .def inc_buf_lo =r6
|
Это РОН - регистры их 32 с 0 до 31
Щас ты просто присваиваешь ЧЕЛОВЕЧЕСКИЕ имена адресам регистра.
Имена могут быть какие тебе нравятся. Но приянто назначать имена из даташите.
Это не обязательно, просто удобно писать PORTD а не помнить его адрес и писать адрес.
Ты задаешь обычные текстовые подстановки -
"Считать такой-то текст вот таким".
в Си это #define
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 14:12.
|
|