roboforum.ru

Технический форум по робототехнике.
Текущее время: 30 ноя 2024, 19:22

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




Начать новую тему Ответить на тему  [ Сообщений: 266 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7 ... 18  След.
Автор Сообщение
 Заголовок сообщения: Re: Магический кристалл
СообщениеДобавлено: 02 мар 2010, 07:53 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Ой, главное-то забыл: "с преферансом и куртизанками" и "можно грабить корованы" :lol:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Магический кристалл
СообщениеДобавлено: 02 мар 2010, 10:37 
Не в сети

Зарегистрирован: 06 июн 2009, 20:42
Сообщения: 231
Откуда: Москва
Вопрос по ассемблеру:
если результат команды cp равен нулю, то команды breq и brpl равны? Или в команду brpl не входит ноль?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Магический кристалл
СообщениеДобавлено: 02 мар 2010, 10:40 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
ноль входит. ноль считается "положительным"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Магический кристалл
СообщениеДобавлено: 02 мар 2010, 10:53 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Нафига ассемблер то? :shock:

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Магический кристалл
СообщениеДобавлено: 02 мар 2010, 11:00 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Цитата:
Нафига ассемблер то? :shock:

Потому что он проще!
В си слишком много ненужных (для такой задачи) условностей.
Ассемблер же однозначен.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Магический кристалл
СообщениеДобавлено: 02 мар 2010, 11:04 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Ну удач :) проще всего вообще-то васик, дальше си, а в конце асм.
А вообще машинные коды еще однозначней, никаких тебе непрозрачных дефайнов, круче их только яйца :)

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Магический кристалл
СообщениеДобавлено: 02 мар 2010, 11:32 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Dead, люди разные и только этим они ценны.
Не надо мерить всех под одну гребенку.

Вам просто освоить новый компилятор только потому, что вы до этого освоили десяток.
А новичок самостоятельно будет только пару недель осознавать что за мейкфайл
и зачем линкер... это еще даже не написав ни строчки.
а уж вопросы типа "на что она тут ругается" часто возникают и у опытных сишников.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Магический кристалл
СообщениеДобавлено: 02 мар 2010, 11:40 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Не спорю, но предлагать начинающему чего-то делать на асме, когда он очевидно захочет всяких фенек прикрутить к девайсу - это ИМХО - повергнуть его в пучину отладки из которой выбраться будет ой как не легко :)

Добавлено спустя 2 минуты 7 секунд:
Michael_K писал(а):
А новичок самостоятельно будет только пару недель осознавать что за мейкфайл
и зачем линкер...

Регулярное заблуждение. AVR Studio + WinAVR - создаёшь "main.c", пишешь код, указываешь под какой МК собирать, комплируешь, получаешь "myproject.hex".

Добавлено спустя 32 секунды:
Подозреваю, что с васиком может быть еще проще :)

Добавлено спустя 33 секунды:
Я не говорю что асм отстой, си рулит, я говорю, что как минимум странно так однозначно советовать асм начинающему.

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Магический кристалл
СообщениеДобавлено: 02 мар 2010, 11:45 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Я не советовал - он сам выбрал.
Значит ЕМУ так удобнее, с этой стороны понятнее, нашел понятную ЕМУ книжку,
понимает как работает логика и проц... или любые другие причины...

Согласитесь, от понимания логики битиков и байтиков и МК
до СИ - огромная пропасть исторически сложившихся условностей и абстракций.
А ассемблер в этом смысле МОЖЕТ быть ближе.

Люди разные. И это хорошо :wink: :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Магический кристалл
СообщениеДобавлено: 02 мар 2010, 11:48 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Ну если сам осознанно выбрал - тогда нет вопросов :) а то звучало как однозначный совет - си сложно, асм просто, а это совсем не так :) как минимум для большого числа людей. Я уж не говорю о том, что асм везде разный, а си везде одинаковый :)

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Магический кристалл
СообщениеДобавлено: 02 мар 2010, 14:17 
Не в сети

Зарегистрирован: 06 июн 2009, 20:42
Сообщения: 231
Откуда: Москва
Michael_K писал(а):
ноль входит. ноль считается "положительным"

Спасибо.

Ещё 4 вопроса в процессе написания кода появилось:
1) Чтобы получить данные с порта/ножки МК PD0 и записать эти данные в регистр Temp, нужно сделать так: in Temp,PD0 или как-то иначе?
2) Нужно ли регистр (например, Temp) очищать, чтобы туда можно было нормально записать новые данные командой clr Temp или всё, что в регистр записывается, автоматически затирает все предыдущие данные в регистре?
3) Команда rjmp позволяет перепрыгнуть к любому месту всего кода (по метке) или только в каких-то пределах? Если в пределах, то как мне тогда из подпрограммы переходить к определённой метке, находящейся не в данной подпрограмме?
4) Насчёт задержки: Скольки циклам задержки (см. ниже) равняется одна секунда реального времени?
Цикл задержки:
ldi Time,0
Loop: dec Time
brne Loop


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Магический кристалл
СообщениеДобавлено: 02 мар 2010, 14:29 
Не в сети
Аватара пользователя

Зарегистрирован: 30 янв 2009, 01:24
Сообщения: 784
Откуда: Запорожье
прог. языки: Си, AvrASM, STL, САС, учу Си++
ФИО: Павел
1) похоже на то. У АВР вроде нету побитового обращения к портам
2) нет.
3) впринципе подпрограмма от программы ничем не отличается и такой переход не запрещен (ограничего только расстояние, смотри в ДШ у jmp и rjmp они разные). Но корректно будет писать функции, подпрограммы и прерывания с одной точкой выхода по оператору ret и reti (для прерывания), тогда будет меньше проблем со стеком и флагами управления МК
4) время такта процессора высчитывается из тактовой частоты Т=1/f. Каждая операция занимает 1-4 такта (см. ДШ). Легче всего этот цикл прогнать пошагово в симуляторе и по таймеру засечь задержку.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Магический кристалл
СообщениеДобавлено: 02 мар 2010, 14:38 
Не в сети

Зарегистрирован: 06 июн 2009, 20:42
Сообщения: 231
Откуда: Москва
Спасибо за ответы.
Цитата:
2) нет.
Там было два оппозиционных вопроса :) Задам тогда один, что точно понять, что Вы имели ввиду: Нужно ли регистр (например, Temp) очищать командой clr Temp, чтобы туда можно было нормально записать новые данные?
Цитата:
прогнать пошагово в симуляторе
посоветуйте, пожалуйста, симулятор (если есть уже с лекарством/кряком - буду рад :roll: )


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Магический кристалл
СообщениеДобавлено: 02 мар 2010, 14:43 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
2) Не нужно.

Для программирования AVR на асме можно взять AVR Studio, она бесплатна и имеет встроенный симулятор.

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Магический кристалл
СообщениеДобавлено: 02 мар 2010, 14:59 
Не в сети

Зарегистрирован: 06 июн 2009, 20:42
Сообщения: 231
Откуда: Москва
Спасибо.

Ещё 4 вопроса:
1) Команда cp Temp1,Temp2 сравнивает регистры между собой, а команда cpi Temp1,0 сравнивает регистр с константой?

2) Данные с порта (например, PD0) могут равняться 0 или 1?
Т.е. верен ли пример:
ldi Temp,0d00000001
out DDRD,Temp
ldi Temp,0d00000001
out PortD,Temp
in Temp,PD0

и Temp теперь равен 1, так?

3) Можно ли управлять портом отдельно от других портов?
Т.е. верен ли пример:
ldi Temp,0d00000001
out DDRD,Temp
ldi Temp,1
out PD0,Temp
in Temp,PD0

и Temp теперь равен 1, так?

4) определять (командой .def) регистры можно в промежутке от R0 до R32 без ограничений/особенностей?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 266 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7 ... 18  След.

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


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

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


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

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