Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 14.02.2009, 14:20  
Vov123
Вид на жительство
 
Регистрация: 03.06.2007
Сообщений: 368
Сказал спасибо: 3
Сказали Спасибо 59 раз(а) в 52 сообщении(ях)
Vov123 на пути к лучшему
По умолчанию

Пардон,забылся,ошибся.
Реклама:
Vov123 вне форума  
Непрочитано 14.02.2009, 22:04  
SwanSwan
Супер-модератор
 
Аватар для SwanSwan
 
Регистрация: 12.04.2007
Адрес: Урал
Сообщений: 2,459
Сказал спасибо: 1,463
Сказали Спасибо 6,183 раз(а) в 1,468 сообщении(ях)
SwanSwan на пути к лучшему
По умолчанию

Цитата:
Команды одинаковые!!!! для всего семейства AVR
прото некоторые каманды не доступны в некоторых контролерах.

пример. в AT90S1200 нет ОЗУ, нет стека, нельзя читать и писать память FLASH и нет перемножителя, и в нём нет команд поддерживающих эти функции.
sts
lds
st
ls
push
pop
lpm
muv

аналогично и другие контроллеры. Если неельзя чего то делать то и комманда не реализована в микропрограмном автомате этого контроллера.

блин... по моему это ясно как бозий день... просто ПИПЕЦ что приходится РАЗЖОВЫВАТЬ icon_biggrin.gif
Считаю, что в таком нервном состоянии нельзя ничего объяснять. Тем более начинающим, иначе это отобъет у них все желание учиться!. Если бесят глупые (хотя они не такие уж глупые, а вполне нормальные) вопросы, лучше вообще не отвечать ИМХО.
Потом, при объяснении начинающим надо быть точным:
1. Стек у 1200 есть, правда он не программный, а аппаратный.
2. Команда st у этого микроконтроллера есть!
Для picavr:

Прикрепленный файл: 6036841.pdf
SwanSwan вне форума  
Непрочитано 14.02.2009, 22:06  
SwanSwan
Супер-модератор
 
Аватар для SwanSwan
 
Регистрация: 12.04.2007
Адрес: Урал
Сообщений: 2,459
Сказал спасибо: 1,463
Сказали Спасибо 6,183 раз(а) в 1,468 сообщении(ях)
SwanSwan на пути к лучшему
По умолчанию

Для FedorChek. Посмотри, я давным-давно для себя переводил хелп от Студио. Может пригодится

Прикрепленный файл: 1329156.zip
SwanSwan вне форума  
Непрочитано 14.02.2009, 22:09  
SwanSwan
Супер-модератор
 
Аватар для SwanSwan
 
Регистрация: 12.04.2007
Адрес: Урал
Сообщений: 2,459
Сказал спасибо: 1,463
Сказали Спасибо 6,183 раз(а) в 1,468 сообщении(ях)
SwanSwan на пути к лучшему
По умолчанию

Да и с Vov123 я согласен. По-моему
Цитата:
вот к примеру команда
sts 0,R16
аналогична
mov R0,R16
НЕ ВЕРНО!!!
SwanSwan вне форума  
Непрочитано 16.02.2009, 12:05  
FedorChek
Прописка
 
Регистрация: 24.07.2008
Сообщений: 151
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
FedorChek на пути к лучшему
По умолчанию

Спасибо за книги. Если есть возможнось посмотрите часть кода

Прикрепленный файл: 4734359.rar
FedorChek вне форума  
Непрочитано 16.02.2009, 13:08  
nml
Супер-модератор
 
Аватар для nml
 
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,378
Сказал спасибо: 1,956
Сказали Спасибо 1,328 раз(а) в 578 сообщении(ях)
nml на пути к лучшему
По умолчанию

Сообщение от SwanSwan
Да и с Vov123 я согласен. По-моему
Цитата:
вот к примеру команда
sts 0,R16
аналогична
mov R0,R16
НЕ ВЕРНО!!!
Почему же неверно? Код сгенерится разный. Во втором случае на 1 слово (2 байта) больше. Но результат будет один.

У АВРок все адресное пространство линейное. Сначала идут 32 регистра - с адреса 0. Потом - регистры спец. функций(РСФ) - ну, порты, таймеры и т.д. Они начинаются с адреса 0x20, но при обращении к ним с помощью команд IN/OUT адрес пишется -0x20, то есть STS 0x20,R16 будет аналогичен OUT 0x00,R16
Длина адресного пространства РСФ у classic семейства была от 0x20 до 0x60, в новых часто адресов не хватает и используются адреса до 0x100 - но в этом случае IN/OUT уже не работают! И используются те же LD/ST или LDS/STS

Именно эту особенность я использовал в своем отладчике - есть возможность просматривать и менять не только ОЗУ, но и РСФ
nml вне форума  
Непрочитано 16.02.2009, 18:12  
sciff
Заблокирован
 
Регистрация: 05.05.2008
Сообщений: 121
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
sciff на пути к лучшему
По умолчанию Re: ассемблер и ARV (посмотрите код)

Сообщение от FedorChek
Добрый день. С ассемблером и основными приемами программирования на нем под микроконтроллеры я сталкивался редко. Сейчас пытаюсь заполнить этот пробел крупицами знания. А заполняю я их с помощью готовых рабочих кодов выполняя какие-то задания, переход с Меги8 на Мегу88 у меня затянулся с Си кодом разобрался осталось разобраться с «асм» вставками ну ладно хватит флудить. Перейду к вопросам, вот малая часть кода написанная под мегу8.
Пожалуйста добавти комментарии к строкам и как его переделать под Мегу88 (если есть разница) куда «смотреть» и на что обращать внимание, с портами все просто а вот что такое регистры понять не могу. Да и если есть книга по асму для АВР киньте ссылочку.
Код:
.equ  PORTB     =$18 Адрес регистра B
   .equ  PIND        =$10 Адрес регистра D
   .def  out_prep    =r16 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
sciff вне форума  
Непрочитано 16.02.2009, 18:24  
FedorChek
Прописка
 
Регистрация: 24.07.2008
Сообщений: 151
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
FedorChek на пути к лучшему
По умолчанию

.equ PORTB =$18 Адрес регистра B
.equ PIND =$10 Адрес регистра D
.def out_prep =r16 out_prep то-же,что и r16
.def out_noprep =r17 и остальное так-же.

Хм... а я думал .equ PORTB =$05 Адрес регистра B
под мегу88
FedorChek вне форума  
Непрочитано 16.02.2009, 18:57  
nml
Супер-модератор
 
Аватар для nml
 
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,378
Сказал спасибо: 1,956
Сказали Спасибо 1,328 раз(а) в 578 сообщении(ях)
nml на пути к лучшему
По умолчанию

Сообщение от FedorChek
Хм... а я думал .equ PORTB =$05 Адрес регистра B
под мегу88
И адреса, и даже позиции бит (например в регистре масок таймеров) могуть быть разными для различных АВРок. Именно для этого и придуманы INC файлы. В начале программы вставляете что-то типа
Код:
	.include "8535def.inc"
- далее пусть компилятор сам подставляет нужное.
nml вне форума  
Непрочитано 16.02.2009, 21:59  
SwanSwan
Супер-модератор
 
Аватар для SwanSwan
 
Регистрация: 12.04.2007
Адрес: Урал
Сообщений: 2,459
Сказал спасибо: 1,463
Сказали Спасибо 6,183 раз(а) в 1,468 сообщении(ях)
SwanSwan на пути к лучшему
По умолчанию

Цитата:
Почему же неверно? Код сгенерится разный. Во втором случае на 1 слово (2 байта) больше. Но результат будет один.

У АВРок все адресное пространство линейное. Сначала идут 32 регистра - с адреса 0. Потом - регистры спец. функций(РСФ) - ну, порты, таймеры и т.д. Они начинаются с адреса 0x20, но при обращении к ним с помощью команд IN/OUT адрес пишется -0x20, то есть STS 0x20,R16 будет аналогичен OUT 0x00,R16
Длина адресного пространства РСФ у classic семейства была от 0x20 до 0x60, в новых часто адресов не хватает и используются адреса до 0x100 - но в этом случае IN/OUT уже не работают! И используются те же LD/ST или LDS/STS

Именно эту особенность я использовал в своем отладчике - есть возможность просматривать и менять не только ОЗУ, но и РСФ
Согласен. Запамятовал, давненько асмом не баловался. В знак примерения:

Прикрепленный файл: 2297580.zip
SwanSwan вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ассемблер для AVR. Andrewg Микроконтроллеры, АЦП, память и т.д 46 26.09.2011 16:55
Код Грея, алгоритм ассемблер? picavr Микроконтроллеры, АЦП, память и т.д 8 27.03.2009 04:39
преобразователь код-код zazan111 TTL и CMOS логика 18 05.01.2009 06:11
Ассемблер PIC AnB Микроконтроллеры, АЦП, память и т.д 12 01.07.2005 03:07


Часовой пояс GMT +4, время: 22:33.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot