Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.02.2011, 21:19   #1
shev.mitia
 
Регистрация: 10.01.2011
Сообщений: 4
По умолчанию SPI-обмен между ATmega644 (Master) и ATtiny2313 (Slave

Нужна программа на асемблере.Необходимо взять данные с разных выводов ATmega644 (PB3,PB4, PD7,PC0-PC7) и передать их ATtiny2313 (Slave) для последующего отображения на ЖК-модуле (на основе контроллера HD44780).Помогите пожалуйста кто чем может
И еще проблемка.При трансляции программы Build в AVR-Studio для ATmega644 в строке sbis SPSR,SPIF выдается ошибка
error:Operand 1 out of range:0x2d
Не знаю как исправить.Может хоть кто-то умное подскажет??????
shev.mitia вне форума Ответить с цитированием
Старый 03.02.2011, 02:07   #2
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,432
По умолчанию

Цитата:
И еще проблемка.При трансляции программы Build в AVR-Studio для ATmega644 в строке sbis SPSR,SPIF выдается ошибка
error:Operand 1 out of range:0x2d
Не знаю как исправить.Может хоть кто-то умное подскажет??????
команда sbis работает с 32-мя первыми (младшими) регистрами пространства I\O, а регистр SPSR имеет адрес 0x2d, что превышает диапазон команды sbis.

Выход:
загрузить регистр SPSR в РОН (команда in, либо lds)
сравнивать значение бит в РОН (команды sbrs, либо sbrc)

Кстати, об этом написано в даташите:
Цитата:
The code examples assume that the part specific header file is included before compilation. For
I/O registers located in extended I/O map, "IN", "OUT", "SBIS", "SBIC", "CBI", and "SBI" instructions
must be replaced with instructions that allow access to extended I/O. Typically "LDS" and
"STS" combined with "SBRS", "SBRC", "SBR", and "CBR".
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Старый 26.02.2011, 13:00   #3
shev.mitia
 
Регистрация: 10.01.2011
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Ulex Посмотреть сообщение
команда sbis работает с 32-мя первыми (младшими) регистрами пространства I\O, а регистр SPSR имеет адрес 0x2d, что превышает диапазон команды sbis.

Выход:
загрузить регистр SPSR в РОН (команда in, либо lds)
сравнивать значение бит в РОН (команды sbrs, либо sbrc)

Кстати, об этом написано в даташите:
Спасибо за помощ.Уже это сделал.А вот по SPI передать из двух РОН ATmega 644 в ATiny 2313 пока не получилось.Вроде делаю как описано в книгах но пока глухо.
shev.mitia вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SPI-обмен между ATmega644 (Master) и ATtiny2313 (Slave) shev.mitia Софт 1 02.02.2011 21:01
Обмен данными между формами viktory Помощь студентам 3 19.10.2009 22:59
Обмен данными между С++ и С# Stellvertreter Общие вопросы C/C++ 0 14.11.2008 14:18
Обмен данными между формами Maks1978 Общие вопросы C/C++ 3 22.07.2008 15:35
Обмен данными между формами Demien Общие вопросы Delphi 14 23.04.2008 22:04