Ассемблер (ASM) для AVR в вопросах и ответах
- pyzhman
- Друг Кота
- Сообщения: 7016
- Зарегистрирован: Вс июл 12, 2009 19:15:29
- Откуда: Ижевск
- Контактная информация:
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Не помню. Самому время повспоминать. 
Docendo discimus
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Прочесать флеш (где программный код), каждый раз со смещением, считать N байт и поксорить их. Для 8 бит последовательности вполне сойдёт имхо...
- pyzhman
- Друг Кота
- Сообщения: 7016
- Зарегистрирован: Вс июл 12, 2009 19:15:29
- Откуда: Ижевск
- Контактная информация:
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Это не есть гут. Вычисляться должно по формуле, ибо должно быть повторяемо. В смысле другим/в другое время. Но если для сэба....
Docendo discimus
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Разумеется, это так, чтобы быстро, эффективно и без гугла. Но не есть правильно.
Часто приходится прибегать к таким методам. Например, (пришлось недавно) чтобы идентифицировать пару кнопок на пульте ДУ, можно не раскуривать весь алгоритм (что было бы правильно), а сдвинуть в регистр несколько ключевых бит из всей последовательности.
Часто приходится прибегать к таким методам. Например, (пришлось недавно) чтобы идентифицировать пару кнопок на пульте ДУ, можно не раскуривать весь алгоритм (что было бы правильно), а сдвинуть в регистр несколько ключевых бит из всей последовательности.
- Engineer_Keen
- Друг Кота
- Сообщения: 3868
- Зарегистрирован: Пт янв 29, 2010 10:27:40
- Откуда: Москва
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Gudd-Head писал(а):вместо последовательности максимальной длины 2^N-1 = 255 у меня получается... 217!Ладно бы 127, а тут вообще какое-то странное число.
Вроде как длина зависит от позиции и количества бит, с которых идет обратная связь и 2^N-1 = это идеальный вариант. Хотя может я путаю с другим ГСЧ...
Re: Ассемблер (ASM) для AVR в вопросах и ответах
у меня для световой "чехарды" стояли 8 8-байтовых ГСЧ (по Хоровицу-Хиллу) с разными узлами ОС и результат каждого выводился в соответствуюший бит байта вывода + "плавающее" изменение узловой точки при каждом переопустошении... однако уж больно "нервирующий" результат получился 
- Engineer_Keen
- Друг Кота
- Сообщения: 3868
- Зарегистрирован: Пт янв 29, 2010 10:27:40
- Откуда: Москва
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Вот вам 255:
К удивлению тоже сначала получилось 217, перевернул "маску" задом-наперед и последовательность удлинилась.
Полезная информация бралась: тут
Код: Выделить всё
INIT:
...
LDI RND,0x01 ;инициализация генератора (что угодно, кроме 0)
...
RCALL RANDOM8 ;получение случайного байта, результат в RND
...
;функция получения случайного байта...
RANDOM8:
RCALL RANDOM1 ;...методом последовательного получения
RCALL RANDOM1 ;8 случайных бит
RCALL RANDOM1
RCALL RANDOM1
RCALL RANDOM1
RCALL RANDOM1
RCALL RANDOM1
RCALL RANDOM1
RET
RANDOM1: ;получение случайного бита (РСЛОС Галуа)
LDI R17,0b10000111 ;отводы из битов 7,2,1,0
SBRS RND,0 ;умножаем на бит 0
LDI R17,0b00000000
BST RND,0 ;сохраняем бит 0
EOR RND,R17 ;XOR с битом 0
ROR RND ;сдвиг
BLD RND,7 ;бит 0 теперь 7-й
RET
К удивлению тоже сначала получилось 217, перевернул "маску" задом-наперед и последовательность удлинилась.
Полезная информация бралась: тут
- Gudd-Head
- Друг Кота
- Сообщения: 20091
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Engineer_Keen, респект вам за сцылку!
Значит, нужны были хитрые обратные связи! А я-то брал из механизма образования CRC на DS18B20 в полной уверенности, что у них последовательность максимальной длины!!!
Правда, в ваш код я не вглядывался — он мне показался каким-то страшным
ploop, вот мой код (в виде цикла):
Значит, нужны были хитрые обратные связи! А я-то брал из механизма образования CRC на DS18B20 в полной уверенности, что у них последовательность максимальной длины!!!
Правда, в ваш код я не вглядывался — он мне показался каким-то страшным
ploop, вот мой код (в виде цикла):
Код: Выделить всё
clr r17 очищаем вспомогательный регистр;
ldi r16, 0b10000000 загружаем любое число кроме 0b00000000;
loop: ;зацикливание
bst r16, 0; сохраняем перед сдвигом нулевой бит в флаг Т
lsr r16; лог. сдвиг влево
bld r17, 7; загружаем флаг Т в седьмой
bld r17, 6; шестой
bld r17, 5; пятый
bld r17, 0; и нулевой бит (согласно http://www.newwaveinstruments.com/resources/articles/m_sequence_linear_feedback_shift_register_lfsr/8stages.txt для 8-ми бит)
eor r16, r17; искл. "ИЛИ" регистров
rjmp loop; результат в R16[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- GP1
- Поставщик валерьянки для Кота
- Сообщения: 2401
- Зарегистрирован: Пт май 23, 2008 19:32:22
- Откуда: Россия, Волгоград
- Контактная информация:
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Gudd-Head
что-то туплю, не нашел выхода из цикла
что-то туплю, не нашел выхода из цикла
- Gudd-Head
- Друг Кота
- Сообщения: 20091
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Ассемблер (ASM) для AVR в вопросах и ответах
GP1 писал(а):что-то туплю, не нашел выхода из цикла
Выходить можно по таймеру или оформить один шаг цикла в виде функции.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- GP1
- Поставщик валерьянки для Кота
- Сообщения: 2401
- Зарегистрирован: Пт май 23, 2008 19:32:22
- Откуда: Россия, Волгоград
- Контактная информация:
Re: Ассемблер (ASM) для AVR в вопросах и ответах
а я то подумал - "лыжи не едут" 
Re: Ассемблер (ASM) для AVR в вопросах и ответах
ploop, вот мой код (в виде цикла)
Благодарю!
Надо будет проверить как-нибудь...
Re: Ассемблер (ASM) для AVR в вопросах и ответах
вполне и одного узла хватит
не совсем верная обработка исходного байта - там вроде результат должен дописываться в исходник после каждого шага а затем следующий шаг:roll:
не совсем верная обработка исходного байта - там вроде результат должен дописываться в исходник после каждого шага а затем следующий шаг:roll:
- vitalik_1984
- Поставщик валерьянки для Кота
- Сообщения: 2482
- Зарегистрирован: Пт авг 27, 2010 05:57:06
- Откуда: Тюмень
- Контактная информация:
Re: Ассемблер (ASM) для AVR в вопросах и ответах
GP1 писал(а):hammer2000 писал(а):...кстати как подключить *.inc файл? потому что слабо представляю где его искать:(
...
файлы описания идут в комплекте с AVRStudio пути к ним прописаны в системе, так что необходимо в нужном месте исходника вставить строку:
.include <имя def-файла>
именуются эти файлы примерно так:
m48def.inc
tn13def.inc и т.п.
описание камня вставляют в самом начале исходника, обычно сразу после директивы
.device
шпрота не юзаю из-за его глючности
а в студии в дефайне прописано .device ...
Последний раз редактировалось vitalik_1984 Чт дек 01, 2011 16:02:58, всего редактировалось 1 раз.
В поисках истины человек развивается.
- GP1
- Поставщик валерьянки для Кота
- Сообщения: 2401
- Зарегистрирован: Пт май 23, 2008 19:32:22
- Откуда: Россия, Волгоград
- Контактная информация:
Re: Ассемблер (ASM) для AVR в вопросах и ответах
я начинал в 3.65 и там надо было прописывать
и это не проблема если ты дважды определишь девайс.
и это не проблема если ты дважды определишь девайс.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Кто знает самый короткий и быстрый алгоритм сравнения двухбайтных чисел? Придумал только такое (d1, d2 - регистры с числами):
Код: Выделить всё
mov r1,d1H
mov r2,d1L
sub r1,d2H
sub r2,d2L
or r1,r2
breq(ne)....- Engineer_Keen
- Друг Кота
- Сообщения: 3868
- Зарегистрирован: Пт янв 29, 2010 10:27:40
- Откуда: Москва
Re: Ассемблер (ASM) для AVR в вопросах и ответах
А чем связка CP-CPC не годится?
Код: Выделить всё
CP XL,YL
CPC XH,YH
BRxx
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Тем, что спать надо больше... Спасибо 
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Подскажите, с чего начать свои первые "часы" (в будущем будильник) ?
AVR немножко знаю (экзамен по ассемблеру x8086 в университете сдавал), светодиодом мигаю, есть 16мега(для тестов) и семисегментник на 4 числа
AVR немножко знаю (экзамен по ассемблеру x8086 в университете сдавал), светодиодом мигаю, есть 16мега(для тестов) и семисегментник на 4 числа
- vitalik_1984
- Поставщик валерьянки для Кота
- Сообщения: 2482
- Зарегистрирован: Пт авг 27, 2010 05:57:06
- Откуда: Тюмень
- Контактная информация:
Re: Ассемблер (ASM) для AVR в вопросах и ответах
mansoff писал(а):Подскажите, с чего начать свои первые "часы" (в будущем будильник) ?
AVR немножко знаю (экзамен по ассемблеру x8086 в университете сдавал), светодиодом мигаю, есть 16мега(для тестов) и семисегментник на 4 числа
начать с начала- с проекта как обычно что хотите от устройства, чем управляться будет.может решите туда пульт прикошачить.
А почему именно мегу16? люди вон на си! слепили из тини часики нормальные такие еще и с датчиком температуры.А если асмом творить, то еще меньше код можно сделать.(умеючи, конечно)я конечно не умею %)
В поисках истины человек развивается.

