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

Обсуждаем контроллеры компании Atmel.
Demiurg
Это не хвост, это антенна
Сообщения: 1480
Зарегистрирован: Ср июн 25, 2008 15:19:44
Контактная информация:

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

Сообщение Demiurg »

ARV писал(а):...

Илья ответил из вежливости. Вопрос ТС элементарен до безобразия. Нужно взять книжку и почитать.
Давайте всем форумом соберемся и объясним ТС-у, какая команда за что отвечает?
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15547
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

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

Сообщение BOB51 »

Не кажiть ГОП...
в задачке не только отдельный бит, но и комбинация из двух (и более) единиц. Причем два из вариантов с одинаковым результатом.
А такой перебор четырех ( и более) возможных комбинаций простой побитовой проверкой накладненько делать.
Лучше уж переход по изменяемому вектору.
8)
Demiurg
Это не хвост, это антенна
Сообщения: 1480
Зарегистрирован: Ср июн 25, 2008 15:19:44
Контактная информация:

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

Сообщение Demiurg »

BOB51 писал(а):...

Согласитесь, тут мало данных? Что на входах? Контакты, нужно ли подавление дребезга? Цифровой сигнал? Какая задача в целом?
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15547
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

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

Сообщение BOB51 »

А не все ли равно - разбор четырех возможных комбинаций с применением последующего результата в каких-то целях.
Аппаратно это вариант дешифратора входной комбинации.
8)
Аватара пользователя
KyPA
Открыл глаза
Сообщения: 76
Зарегистрирован: Пт май 28, 2010 10:26:08

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

Сообщение KyPA »

Demiurg писал(а):
BOB51 писал(а):...

Согласитесь, тут мало данных? Что на входах? Контакты, нужно ли подавление дребезга? Цифровой сигнал? Какая задача в целом?


Более конкретно: Управление шаговыми двигателями с лпт порта. В частности хотелось бы не мучать бабушку, и провести желаемую логическую операцию с регистром настоящего и прошлого опрошенного значения. Потом проверить на нуль, прогнать биты по условию, и выполнить что хотелось. Также к программе шага собираюсь прикрутить недошим 1кГц на половину тока, если движки в простое N времени. Конечно необходимо, чтобы весь цикл программы вписывался в период импульса входа. Поэтому и спрашиваю, вдруг существует способ быстрой проверки на появившиеся единицы, нежели проверять каждый выход отдельно, и тратить драгоценное время.

В общем пока дискуссировали, накопал составляющие импликации. Пока вопрос закрыт.
Аватара пользователя
ILYAUL
Держит паяльник хвостом
Сообщения: 906
Зарегистрирован: Ср мар 28, 2012 21:45:24
Откуда: ВО

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

Сообщение ILYAUL »

ARV писал(а):
ILYAUL писал(а):

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

Sbic Portx,Pinx
rcall туда
rcall сюда

в вашем коде "сюда" будет выполняться ВСЕГДА, а "туда" - иной раз перед "сюда"

Ну не скажите , я ведь могу уйти из Rcall куда захочу , при необходимости. А TC было даже лень почитать про эту команду.
Ну пусть попробует прочитать про rjmp и в чём отличие от rcall.

Demiurg - Спасибо!
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15547
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

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

Сообщение BOB51 »

Тогда грамотный вектор-переход в лапы - более скоростного варианта не предвидится.
8)
Для АВРок
в Z базовый адрес таблицы векторов вида 0xnn00
в регистр ZL помещаем наши данные в виде 0b000000yy
делаем один lsl Zl
и выполняем ijmp
а в таблице векторов стоит второй JMP или ежли по-хитрее
icall на адрес содержащий команду подстановки с последующим ret - но тогда надо правильно скорректировать содержимое Zl перед вызовом
Вобчем вариантов... На любой вкус!
:beer:
Кстати...
насчет
rcall туда
rcall сюда
не есть хорошо - ибо попав в первый rcall возврат по ret без "подстановки адреса возврата через стек" вынесет нас на второй rcall со всеми проистекающими... другое дело ежли там rjmp поставить
:roll:
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

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

Сообщение ARV »

ILYAUL писал(а):я ведь могу уйти из Rcall куда захочу
о, мсье знает толк в извращениях!
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Demiurg
Это не хвост, это антенна
Сообщения: 1480
Зарегистрирован: Ср июн 25, 2008 15:19:44
Контактная информация:

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

Сообщение Demiurg »

ARV писал(а):о, мсье знает толк в извращениях!

А вы пишете на асме? Лично я дошел в написании программ на асме до уровня создания многоуровневых меню. Заопасался за свой рассудок, перешел на си. :)
Это я к тому, что на асме можно реализовать что хочешь, как хочешь. Главное, знать архитектуру, систему команд. И четко представлять, что ты делаешь, что будет происходить в программе и в кишках МК.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

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

Сообщение ARV »

я, как и многие, начинал с асма. дело в том, что я начинал в те времена, когда компиляторов Си для микроконтроллеров еще практически не было, да и из микроконтроллеров были, в основном, КР1816ВЕ31... поэтому освоение AVR прошло через ассемблер :) долгое время сопротивлялся Си, но потом как-то попривык, вошел во вкус.

Demiurg писал(а):на асме можно реализовать что хочешь, как хочешь
можно - не означает нужно

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

Мой уютный бложик... заходите!
Demiurg
Это не хвост, это антенна
Сообщения: 1480
Зарегистрирован: Ср июн 25, 2008 15:19:44
Контактная информация:

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

Сообщение Demiurg »

ARV писал(а):на форуме с определенной периодичностью появляются камрады, желающие из прерывания выходить не в прерванную точку, а в другую, или входить в подпрограмму, а выходить из нее при помощи jmp совсем в другое место...

Я тоже когда-то проходил этот этап. Пока не разобрался. Уже убей не вспомню зачем и почему мне нужен такой переход. :)))
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

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

Сообщение ARV »

чем меньше знаний, тем больше намерений :))) по мере накопления знаний желание использовать экзотику пропадает.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Demiurg
Это не хвост, это антенна
Сообщения: 1480
Зарегистрирован: Ср июн 25, 2008 15:19:44
Контактная информация:

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

Сообщение Demiurg »

Но я помню причину. дело в том, что железячников выбивает с толку зацикленность работы микроконтроллеров. И бесполезные телодвижения МК в программе с их точки зрения. Когда начинаешь понимать, что микроконтроллер работает по кругу основного цикла, потом мозги нужно заново разбирать и собирать в кучу, чтобы понять что такое распараллеливание процессов в программировании. Я имею в виду не программирование высшего уровня, а уровень МК.
Аватара пользователя
ILYAUL
Держит паяльник хвостом
Сообщения: 906
Зарегистрирован: Ср мар 28, 2012 21:45:24
Откуда: ВО

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

Сообщение ILYAUL »

КР1816ВЕ31 - знакомая вещь
Аватара пользователя
shads
Опытный кот
Сообщения: 882
Зарегистрирован: Ср фев 22, 2012 01:25:21

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

Сообщение shads »

ARV писал(а):на форуме с определенной периодичностью появляются камрады, желающие из прерывания выходить не в прерванную точку, а в другую, или входить в подпрограмму, а выходить из нее при помощи jmp совсем в другое место... и ни разу я никому не советовал так делать, хотя совершенно четко осознаю реальность реализации этого. не представляю, какая польза может перевесить извращенность такого подхода?
Здесь не в пользе дело, а дело в способности или неспособности программера, представить правильную структуру работы программы.
Т.е. просто напросто он пока еще не дорос до правильного решения, но уже хочет это как то делать...

Хотя... раньше, когда у процессоров совсем не было аппаратных способностей, они работали на пару мегагерцах, и еще нужно было программно обрабатывать графический буфер и звук, такое встречалось сплошь и рядом...
Но думается что те времена прошли... так что сегодня это либо не нужно, либо как я уже сказал - неправильное представление о реализации программы...
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15547
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

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

Сообщение BOB51 »

Вообще-то ветка по вопросам применения ассемблера.
8)
Не спорю насчет возможностей СИ... НО...
Уважаемые Котаны, давайте без излишних отступлений.
:wink:
Demiurg
Это не хвост, это антенна
Сообщения: 1480
Зарегистрирован: Ср июн 25, 2008 15:19:44
Контактная информация:

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

Сообщение Demiurg »

BOB51 писал(а):Вообще-то ветка по вопросам применения ассемблера.
8)
Не спорю насчет возможностей СИ... НО...
Уважаемые Котаны, давайте без излишних отступлений.
:wink:

Речь зашла о методах программирования. Или по вашему ассемблер к программированию не имеет отношения?
Аватара пользователя
СКАЗОЧНИК
Идёт направо - песнь заводит, Налево - сказку говорит.
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

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

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

Замотался на работе совсем... Туплю.

Можно ли так писать? А то мозг совсем не соображает.

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

sbis SCLpin, SCL
rjmp PC-1
Станислав
Demiurg
Это не хвост, это антенна
Сообщения: 1480
Зарегистрирован: Ср июн 25, 2008 15:19:44
Контактная информация:

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

Сообщение Demiurg »

Можно, но учитывайте, что некоторые команды занимают два слова. Поэтому, вместо rjmp +- PCx лучше применить метки. Это гарантированно избавит от ошибок. Согласен, метки добавляются, а куда деваться...
Аватара пользователя
СКАЗОЧНИК
Идёт направо - песнь заводит, Налево - сказку говорит.
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

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

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

Чет припоминаю такое.
А где поподробнее про два слова? И как на это не нарваться?
Станислав
Ответить

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