Ассемблер (ASM) для AVR в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
Ответить
Идёт направо - песнь заводит, Налево - сказку говорит.
Аватара пользователя
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Сообщение СКАЗОЧНИК »

Спасибо. Уже сделал. ) В три команды вышло. У меня ТИНИ2313.

Код: Выделить всё

in R16, PINB
			eor R16, R20
			out PORTB, R16
Станислав
Реклама
Друг Кота
Аватара пользователя
Сообщения: 15793
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Сразу все биты?
8)
может усе же только "один из" нужен...
:roll:
Реклама
Идёт направо - песнь заводит, Налево - сказку говорит.
Аватара пользователя
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Сообщение СКАЗОЧНИК »

Нужно два, вообще-то. Но пока мне не важно было, что с остальными выводами порта происходит, ибо на них пока ничего не подключено.
А потом, конечно думать надо.
Станислав
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

tiny2313a есть такая фича.

Выделяете один РОН, под маску для инвертирования. Тогда в прерывании понадобится одна однотактовая команда, OUT PINX, РОН.
Если Ваше прерывание ничего больше не делает, кроме как инвертирует порт, то не надо ничего скидывать на стек и забирать оттуда. Думаю быстрее некуда.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Аватара пользователя
Сообщения: 15793
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Ладныть... гляну...
АВР конечно не mcs51 с CPL bit но усе же чегось нашкарябать можно.
Кстати... у 2313 "троглобит" поддерэивается, так что можно с портом отак схимичить:
ldi tmp,(1<<bit_a | 1<<bit_b)
out pin_х,tmp
где bit_a и bit_b требуемые позиции, а pin_х регистр выводов соответствующего порта.
:roll:
Z_h_e
держать маску в регистрвом файле по ресурсам накладно (ежли только не в r2-r15).
скорее или непосредственная загрузка или получение из ОЗУ...
интересно...
а будет ли равноценно при (1<<bit_a | 1<<bit_b) предварительно загруженном в ячейку mask ОЗУ воть такой конструктив:
lds tmp,mask
sts (pin_х+0x20),tmp
?? :roll:

Еще одна версия "троглодитства" с учетом особенностей 2313 и порта би... (для диапазона портов УВВ 0x00-0x1f)
банальное
sbi pin_х,(1<<bit_a | 1<<bit_b)
:hunger:
Последний раз редактировалось BOB51 Вт окт 04, 2016 20:30:32, всего редактировалось 3 раза.
Реклама
Идёт направо - песнь заводит, Налево - сказку говорит.
Аватара пользователя
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Сообщение СКАЗОЧНИК »

Благодарность всем. Забрал все для использования. Но не гарантирую, что я это буду помнить через пол года. Все равно забуду.... :cry: :cry: :cry:
Станислав
Реклама
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

BOB51 писал(а):держать маску в регистрвом файле по ресурсам накладно (ежли только не в r2-r15).
Я конечно задачу СКАЗОЧНИКа не знаю. Но почти наверняка, не будет никакого накладства, особенно, если стоит задача максимально быстро инвертировать порт. Некоторые процы вобще одним РОН обходятся - аккумулятором, а тут аж 32 штуки, даже скорее всего можно пожертвовать из блатных РОН, а не только r2-r15, но смысла конечно нет в этом.
BOB51 писал(а):lds tmp,mask
sts (pin_х+0x20),tmp
Эти команды двухтактовые, плюс придется сохранять на стек tmp.
sbi pin_х,(1<<bit_a | 1<<bit_b)
Команда двухтактовая и работает только с одним битом.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Друг Кота
Аватара пользователя
Сообщения: 15793
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Мндя...
С SBI "ляпсус" одначе... (поставил "по аналогии с sbr" по недосмотру)
:oops:
А "помечтать" было б неплохо...
:(
Модератор
Аватара пользователя
Сообщения: 19102
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Сообщение Starichok51 »

господа, кто-нибудь может дать текст обмена по USB для АТМега8, а то использовать преобразователь USB-СОМ не очень то хочется.
сам пробовал искать - не нашел.
для СОМ порта (USART) у меня есть наработки, но хотелось бы сделать прямо по USB.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

Starichok51, поясните что Вы имеете ввиду во фразе "текст обмена по USB для АТМега8".
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Модератор
Аватара пользователя
Сообщения: 19102
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Сообщение Starichok51 »

ну, я хочу свои устройства на АТМега8 связать с компьютером. то есть нужно написать какой-то протокол обмена по USB. вот текст этого протокола и нужен.
соответственно, потом нужен будет драйвер для компа, чтобы связываться со своими устройствами.
сейчас я начал писать обмен по СОМ порту, проверить я его смогу на стареньком компе с СОМ портом (пока у меня преобразователя USB-СОМ нет в наличии).
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

Э неее, тут так просто не прокатит и я даже не про физический уровень. Если Вам очень хочется самому заморочиться, то читайте Агурова. Не очень книга, но на русском.

Самый простой вариант, наверное, будет V-USB.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Друг Кота
Аватара пользователя
Сообщения: 15793
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Лучше уж енто китайско чудо поставить:
http://img.radiokot.ru/files/20529/x83zlfcbc.jpg
на базе PL2303
ds_pl2303HXD_v1_4_4.pdf
(1.11 МБ) 190 скачиваний
дык там и дрова приличные и выход сразу в ТТЛ уровнях и ежли приловчится можно полный набор линий СОМ порма с микрухи вытянуть...
а на компе - виртуальный СОМ порт появляется...
пользуюся аж мурмчу...
:hunger:
Друг Кота
Аватара пользователя
Сообщения: 4906
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск

Сообщение WiseLord »

Выходит это чудо из строя на раз-два. У меня из пяти три накрылись буквально после нескольких втыканий в компьютер. Похоже на то, что PL2303 очень капризны к статике или что-то вроде.

А вот такое чудо на CP2102 за сравнимые деньги работает как часы.

И для полного набора линий COM-порта и ловчить ничего не надо - уже всё есть.
Последний раз редактировалось WiseLord Ср окт 05, 2016 19:17:41, всего редактировалось 1 раз.
Контактная информация:
Модератор
Аватара пользователя
Сообщения: 19102
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Сообщение Starichok51 »

у меня есть книга Агурова, но он там рассматривает МК с аппаратным модулем USB. мне это не годится.
почитал данную ссылку на википедию, там говорится про довольно большую тактовую частоту, 12 МГц и выше.
а я использую внутренний генератор на 1 МГц. наверное, у меня ничего не получится при такой низкой скорости.
и похоже, не потянуть мне это дело. буду делать через СОМ порт.
на алиэкспресс полно разных преобразователей USB-СОМ, куплю там не дорогой.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Друг Кота
Аватара пользователя
Сообщения: 6349
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Сообщение Jack_A »

Программный USB, по мнению людей, его делавших - фуфло, тем боле на 1MHz, видимо, не заработает. USB-UART как отдельный преобразователь или встроенный на FT232 ( или аналогичн. ) - самое то. Недорого - и без геморра на свою ... голову.
Вариант - FT245 , там со стороны МК параллельный интерфейс, это если у МК свободных пинов много. Я делал, полет нормальный.
Изображение
Первый раз сказал Мяу!
Сообщения: 31
Зарегистрирован: Сб сен 17, 2016 18:56:30

Сообщение dimmer »

Если будете делать через COM порт, то могу помочь. Только со стороны контроллера на ассемблере, а со стороны ПК на С++. Как-то так.
Держит паяльник хвостом
Сообщения: 933
Зарегистрирован: Ср апр 13, 2011 11:09:20
Откуда: Екатеринбург

Сообщение Alkul »

Неплоха также микросхема CH340G. Если интересно, то для этой микросхемы у меня есть схема принципиальная переходника USB<->TTL. Подключаете её к МК линиями TTL, а на линии USB припаиваете разъем USB-B.
Встал на лапы
Сообщения: 106
Зарегистрирован: Чт сен 10, 2015 06:59:03
Откуда: Гродно, BY

Сообщение trofim2 »

Уважаемые коллеги.
Можно-ли расположить стек в регистрах АТмега48?
Памяти не хватает.
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18791
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

у AVR область регистров пересекается с областью ОЗУ, так что сделать это можно. но я уверен на 100500%, что грабельки вы такие при этом заимеете, что можно будет в граните отливать в назидание потомкам ваш опыт...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Ответить

Вернуться в «AVR»