roboforum.ru

Технический форум по робототехнике.
Текущее время: 22 июн 2025, 16:56

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Странного хочу. Примерчик на asm'е.
СообщениеДобавлено: 15 авг 2005, 14:00 
Не в сети

Зарегистрирован: 05 июл 2005, 08:06
Сообщения: 26
Откуда: Пермь
Доброго времени суток.
Вобчем начал разбираться с асмом для АВР.
хочу сделать простое - один порт разделить пополам, половина выходы половина входы (это получается), на один вход поставить кнопочку, и что бы при нажатии на неё один из выходов устанавливался в 0 (при инициализации стоит 1). На входах подтягивающие резюки включены (те которые внутри). Получается совсем просто: то что на входе надо передать на выход.
Не хватает опыта :(.

P.S. Чес слово я не тупой :).
P.S. Надо простой пример в 10-15 строчек (я думаю многие с этого начинали)

Вобчем дошёл до этого:
Код:
.INCLUDE "m8def.inc"   ; Определение имен для регистров
.DEVICE ATmega8         ; Определяем устройство - ATmega8

.DSEG               ; Сегмент данных (ОЗУ)

.ESEG               ; Сегрмент EEPROM

.CSEG               ; Программный сегмент

   ldi r16, 0b00001111
   out DDRB, r16

   ldi r16, 0b11111111
   out PORTB, r16

loop:
   
   in r16, PINB
   bst r16, 4
   brts loop1
   sbi PORTB, PB0
   rjmp loop2

loop1:
   cbi PORTB, PB0

loop2:
   nop
   nop
   rjmp loop

Думаю тут есть что оптимизировать, посоветуйте.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 16 авг 2005, 13:08 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 04 окт 2004, 12:58
Сообщения: 10990
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко
:? совсем мало времени, если никто не подскажет тогда я отпишусь.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 18 авг 2005, 17:43 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 04 окт 2004, 12:58
Сообщения: 10990
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко
молчат все, ладно сейчас сообразим что нить,
сам то какие продвижки сделал ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 19 авг 2005, 06:47 
Не в сети

Зарегистрирован: 05 июл 2005, 08:06
Сообщения: 26
Откуда: Пермь
Я нашёл команды SBIS и SBIC, т.е. не надо выдёргивать бит из регистра.

Есть две команды, установить бит в порту ввода-вывода и сбросить бить в порту ввода вывода, а есть ли команда с двумя операндами сделать бит в порту равным 0 если второй операнд 0, и 1 в противном случае? - это вопрос номер раз
Вопрос номер two - Есть ли возможность установить бит в порту равным биту в другом порту?

И ещё - не нашёл побитного НЕ, логическое нашёл. Также не нашёл побитного И. Или я не туда смотрел?

--- поправки
побитное НЕ нашёл - com
---

P.S. сильно ногами не пинать, новичок я, но х86 асм знаю.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 19 авг 2005, 14:33 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 04 окт 2004, 12:58
Сообщения: 10990
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко
Pegasus писал(а):
Я нашёл команды SBIS и SBIC, т.е. не надо выдёргивать бит из регистра.

всё верно
Цитата:
Есть две команды, установить бит в порту ввода-вывода и сбросить бить в порту ввода вывода, а есть ли команда с двумя операндами сделать бит в порту равным 0 если второй операнд 0, и 1 в противном случае? - это вопрос номер раз

Логические команды юзай
Это AND
ещё активно XOR применяется - битовые маски
Цитата:
Вопрос номер two - Есть ли возможность установить бит в порту равным биту в другом порту?

маска AND в буфер, затем маска OR
Цитата:
И ещё - не нашёл побитного НЕ, логическое нашёл. Также не нашёл побитного И. Или я не туда смотрел?

--- поправки
побитное НЕ нашёл - com
---

P.S. сильно ногами не пинать, новичок я, но х86 асм знаю.

да нормально, я тоже навичёк, хоть и проги большие писал,
это так быстро забывается , за месяц!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 14 сен 2005, 12:46 
Не в сети

Зарегистрирован: 07 фев 2005, 17:41
Сообщения: 367
Откуда: Санкт-Петербург
Как то на форуме "Точка опоры " я давал примеры для AVR" типа "как надо писать " под него.

Сейчас конечно могу поискать ссылочку....


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 14 сен 2005, 12:57 
Не в сети

Зарегистрирован: 07 фев 2005, 17:41
Сообщения: 367
Откуда: Санкт-Петербург
Вот например примерно тоже самое обсуждалось здесь:
http://www.fulcrum.ru/cgi-bin/bbs/mess_sel_i.pl?v=i&FID=1&TID=2468&page=&Sp=0&LID=0


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10


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

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO