roboforum.ru

Технический форум по робототехнике.

 

Странного хочу. Примерчик на asm'е.

Раздел создан специально для людей которым интересна робототехника, но в силу разных причин они не знают с чего начать.
Задавайте ваши вопросы, какими бы простыми они не казались, постоянные посетители форума постараются ответить на них по мере своих сил.
Робот своими руками. Самодельный робот.

Странного хочу. Примерчик на asm'е.

Сообщение Pegasus » 15 авг 2005, 14:00

Доброго времени суток.
Вобчем начал разбираться с асмом для АВР.
хочу сделать простое - один порт разделить пополам, половина выходы половина входы (это получается), на один вход поставить кнопочку, и что бы при нажатии на неё один из выходов устанавливался в 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

Думаю тут есть что оптимизировать, посоветуйте.
Pegasus
 
Сообщения: 26
Зарегистрирован: 05 июл 2005, 08:06
Откуда: Пермь

Сообщение setar » 16 авг 2005, 13:08

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

Сообщение setar » 18 авг 2005, 17:43

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

Сообщение Pegasus » 19 авг 2005, 06:47

Я нашёл команды SBIS и SBIC, т.е. не надо выдёргивать бит из регистра.

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

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

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

P.S. сильно ногами не пинать, новичок я, но х86 асм знаю.
Pegasus
 
Сообщения: 26
Зарегистрирован: 05 июл 2005, 08:06
Откуда: Пермь

Сообщение setar » 19 авг 2005, 14:33

Pegasus писал(а):Я нашёл команды SBIS и SBIC, т.е. не надо выдёргивать бит из регистра.

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

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

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

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

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

да нормально, я тоже навичёк, хоть и проги большие писал,
это так быстро забывается , за месяц!
Аватара пользователя
setar
Site Admin
 
Сообщения: 9248
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Сообщение Mike_MA » 14 сен 2005, 12:46

Как то на форуме "Точка опоры " я давал примеры для AVR" типа "как надо писать " под него.

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

Сообщение Mike_MA » 14 сен 2005, 12:57

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


Вернуться в Новичкам или основы основ роботостроения.

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

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

Mail.ru counter