Страница 110 из 400
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Ср ноя 30, 2011 13:53:21
pyzhman
Не помню. Самому время повспоминать.

Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Ср ноя 30, 2011 13:56:28
ploop
Прочесать флеш (где программный код), каждый раз со смещением, считать N байт и поксорить их. Для 8 бит последовательности вполне сойдёт имхо...
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Ср ноя 30, 2011 14:01:20
pyzhman
Это не есть гут. Вычисляться должно по формуле, ибо должно быть повторяемо. В смысле другим/в другое время. Но если для сэба....
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Ср ноя 30, 2011 14:13:05
ploop
Разумеется, это так, чтобы быстро, эффективно и без гугла. Но не есть правильно.
Часто приходится прибегать к таким методам. Например, (пришлось недавно) чтобы идентифицировать пару кнопок на пульте ДУ, можно не раскуривать весь алгоритм (что было бы правильно), а сдвинуть в регистр несколько ключевых бит из всей последовательности.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Ср ноя 30, 2011 15:04:32
Engineer_Keen
Gudd-Head писал(а):вместо последовательности максимальной длины 2^N-1 = 255 у меня получается... 217!

Ладно бы 127, а тут вообще какое-то странное число.
Вроде как длина зависит от позиции и количества бит, с которых идет обратная связь и 2^N-1 = это идеальный вариант. Хотя может я путаю с другим ГСЧ...
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Ср ноя 30, 2011 15:24:46
BOB51
у меня для световой "чехарды" стояли 8 8-байтовых ГСЧ (по Хоровицу-Хиллу) с разными узлами ОС и результат каждого выводился в соответствуюший бит байта вывода + "плавающее" изменение узловой точки при каждом переопустошении... однако уж больно "нервирующий" результат получился

Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Ср ноя 30, 2011 16:25:09
Engineer_Keen
Вот вам 255:
Код: Выделить всё
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, перевернул "маску" задом-наперед и последовательность удлинилась.
Полезная информация бралась:
тут
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Ср ноя 30, 2011 19:52:44
Gudd-Head
Engineer_Keen, респект вам за сцылку!
Значит, нужны были хитрые обратные связи! А я-то брал из механизма образования 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
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Ср ноя 30, 2011 21:11:20
GP1
Gudd-Head
что-то туплю, не нашел выхода из цикла
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Чт дек 01, 2011 08:02:46
Gudd-Head
GP1 писал(а):что-то туплю, не нашел выхода из цикла

Это просто пример — погонять посмотреть псевдослучайную последовательность в R16.
Выходить можно по таймеру или оформить один шаг цикла в виде функции.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Чт дек 01, 2011 08:16:47
GP1
а я то подумал - "лыжи не едут"

Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Чт дек 01, 2011 10:17:51
ploop
ploop, вот мой код (в виде цикла)
Благодарю!
Надо будет проверить как-нибудь...
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Чт дек 01, 2011 13:19:35
BOB51
вполне и одного узла хватит
не совсем верная обработка исходного байта - там вроде результат должен дописываться в исходник после каждого шага а затем следующий шаг:roll:
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Чт дек 01, 2011 15:28:09
vitalik_1984
GP1 писал(а):hammer2000 писал(а):...кстати как подключить *.inc файл? потому что слабо представляю где его искать:(
...
файлы описания идут в комплекте с AVRStudio пути к ним прописаны в системе, так что необходимо в нужном месте исходника вставить строку:
.include <имя def-файла>
именуются эти файлы примерно так:
m48def.inc
tn13def.inc и т.п.
описание камня вставляют в самом начале исходника, обычно сразу после директивы
.device
шпрота не юзаю из-за его глючности

а в студии в дефайне прописано
.device ...
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Чт дек 01, 2011 15:59:10
GP1
я начинал в 3.65 и там надо было прописывать
и это не проблема если ты дважды определишь девайс.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Чт дек 08, 2011 20:59:05
ploop
Кто знает самый короткий и быстрый алгоритм сравнения двухбайтных чисел? Придумал только такое (d1, d2 - регистры с числами):
Код: Выделить всё
mov r1,d1H
mov r2,d1L
sub r1,d2H
sub r2,d2L
or r1,r2
breq(ne)....
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Чт дек 08, 2011 21:27:10
Engineer_Keen
А чем связка CP-CPC не годится?
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Чт дек 08, 2011 21:53:13
ploop
Тем, что спать надо больше... Спасибо

Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Вт дек 13, 2011 17:22:39
mansoff
Подскажите, с чего начать свои первые "часы" (в будущем будильник) ?
AVR немножко знаю (экзамен по ассемблеру x8086 в университете сдавал), светодиодом мигаю, есть 16мега(для тестов) и семисегментник на 4 числа

Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Вт дек 13, 2011 18:27:27
vitalik_1984
mansoff писал(а):Подскажите, с чего начать свои первые "часы" (в будущем будильник) ?
AVR немножко знаю (экзамен по ассемблеру x8086 в университете сдавал), светодиодом мигаю, есть 16мега(для тестов) и семисегментник на 4 числа

начать с начала- с проекта как обычно что хотите от устройства, чем управляться будет.может решите туда пульт прикошачить.

А почему именно мегу16? люди
вон на си! слепили из тини часики нормальные такие еще и с датчиком температуры.А если асмом творить, то еще меньше код можно сделать.(умеючи, конечно)я конечно не умею %)