ВитГо писал(а):
мне нужно прочитать данные из программной памяти используя индексную адресацию
аналог LDD Rd , X + s
где s - смещение адреса для чтения... если правильно помню 6-ти битовое...
Если x + S у Вас подразумевается, как неизменная константа, то проще так:
ВитГо писал(а):
мне нужно прочитать данные из программной памяти используя индексную адресацию
аналог LDD Rd , X + s
где s - смещение адреса для чтения... если правильно помню 6-ти битовое...
Если конечно я Вас понял.
нет.. не правильно.. после выполнения операции чтения Z должен остаться прежним..
Ну такого конечно нет. Для этого надо инициализировать пару на начало массива, потом к ней прикладывать число, сохранённое в регистре. После операции снова нужна инициализация пары. Я работал с двумя массивами, когда писал парсер для расшифровки символов CP1251, можно сказать одновременно. Положение по массиву сохранял в отдельных регистрах, которые потом складывал к паре при выполнении операций. Только так.
Ну ладно, раз вопрос снят, значит снят. На счёт программирования FLASH, я сам бы почитал, так как как-то пытался это реализовать, не понял до конца и забросил, в виду ненадобности.
ploop писал(а):Так как запускать программы из ОЗУ не позволяет архитектура, то это единственный способ сделать самомодифицирующийся вирус для AVR
Из восьмибитных не знаю, кто так умеет, но знаю, что старый ЗЫ80 это умеет, если вместе с ПЗУ ему подключить чип SRAM. Причём линию CS чипа посадить на линию MREQ процессора.
Когда я мало знал его инструкций, я сажал RAM через триггер с линиями IORQ и MREQ.
P.S. Этот процессор никогда не умрёт среди контроллеров.
Даже самая мощная МЕГА не идёт с ним ни в какое сравнение, разве что, архитектура RISC.
I am DX168B and this is my favourite forum on internet!
Я вчера почти добил по самопрограммированию код.. программирование проходит только после этого мега виснет (ну или еще чтото делает - я так и не понял что с ней происходит, но после повторного включения вижу что байты записались)
думаю сегодня вечером добью... завтра выложу..
пока все лишь немного видоизменилось относительно того что я написал выше (там SPMCR нужно заполнять для каждого действия еще (заполнение буфера, стирание, запись)
Может подскажете новичку в чём дело. Нашел такую вот штуку: http://elm-chan.org/works/vp/report.html
Снизу есть архив с прошивками (hex и asm). Установил winavr и AVR Studio 4.18. Захожу в студию - hex она открывает, а на asm ругается типо файл поврежден и т.п. Тогда я просто открыл asm в блокноте, скопировал код в Atmel AVR assembler. К примеру:
Как обещал даю работающий код для самопрограммирования atmega64
запись возможна в область RWW
как настраивать фюзы - смотрите в моих сообщених позавчера.
я поставил BOOTSZ1=1 и BOOTSZ0=1 (в программе моего программатора это ПУСТЫЕ клеточки без галочки)..
так же фюз управляющий вектором RESET оставил прежним (старт с 0x0000)
в модуль самопрограммирования обращаюсь вызовом CALL
в файле все немного комментировал..
Настройки для меги 64 взяты из m64def.inc файла приведены ниже..
;+-----------------------------------------+
;| Примеры использования вызовов модуля |
;+-----------------------------------------+
; Запишем буфер DEBUG_BUFF по адресу 0x6000 во Flash
LDI YL , low(DEBUG_BUFF) ; адрес буфера в RAM для записи
LDI YH , High(DEBUG_BUFF)
LDI ZH , 0x60 ; адрес для записи в FLASH
LDI ZL , 0x00
CALL FIRSTBOOTSTART ; переходим на программирование
Помогите, не могу понять что к чему!
Хотелось бы повторить в железе сей проект http://elm-chan.org/works/vp/report.html, а именно FIR (КИХ) фильтр.
Вот его описание, которое дано на сайте:
This is just like digital signal processing in these examples. For the fundamentals of digital filter, please refer to any textbooks on digital signal processing. Figure 8 shows the signal flow diagram of FIR filter. The filter response is determined by filter parameter witch is summing gain for each taps. Larger number of taps increase frequency resolution, however, number of multiply/accumulate operation will also increase proportional to the number of taps.
Since the ATtiny26 does not have multiplier, an unsigned multiply takes 34 clocks. Plus memory access, sign conversion and accumulation are required for each taps, so that number of taps will be very limited. I tried to replace the multiplication with table conversion, it could be take 14 clocks for each taps, 23 taps are secured at 38.5k sps. I have not heard about digital signal processor with no multiplier, however, such the cheap microcontroller seems able to be used as a digital signal processor. The ATmega series microcontroller which has signed unsigned multiplication will take 8 clocks for each taps.
Firmware for this process is VP_FIL.ASM, and multiplication table VP_FIL_M.HEX.
И не смотря на то, что он тут пишет про программу с и без матрицы умножений, програмка в asm даётся только одна. Вот я никак и не пойму что там к чему! Что это ФНЧ фильтр могу предположить только из осцилки, которую автор рядом выкладывает в качестве иллюстрации.
Хотелось бы смочь влиять на его частоту среза и т.п., но не пойму даже где смотреть эту частоту!
orion777 писал(а):Хотелось бы повторить в железе сей проект
Зачем?
Очень надо, честно- честно!! Либо что угодно, что можно было бы назвать именно цифровым фильтром или его элементом.. Я умею только на ОУ фильтры делать, а с МК я на Вы. А надо очень т.к. такой уж вот достался мне проект на бакалаврскую.. Если не сделаю хоть что то- порежут меня на ремни в июне Вот нашел код, который можно вшить - хотел попробовать. Может частоту среза подкорректировать под свои нужды..
Ещё подкинули ссылку на 8-полосный анализатор спектра http://arv.radioliga.com/content/view/98/44/ - подумываю на нём ПШ организовать может.. Дело в том что я в авиационном учусь и надо хоть как то к этой теме привязаться (т.е. фильтр может быть связан со связью, либо та же локация и другие приборы).
Вышкой был бы калман на gps+инерциалка, но при моих знаниях реализовать его в цифре ... искалка сигнала ниже уровня шума - тоже было бы очень круто. Может что посоветуете?
Уважаемые Коты, помогите начинающему, кому не трудно. Можно ли в Асме при обращении к конкретной области оперативки указывать смещение в виде переменной? например, есть определение
Студия ругается на второй вариант, - error: syntax error, unexpected REGDEF
В описании команд Асма нашел LDD Rd, Z+q. Подозреваю, что это то что нужно, но как в Z подставить адрес digits?
[color=#800000]Техноманьяк и IT-шаман. Танцы с бубном на дому.[/color]