Ассемблер (ASM) для AVR в вопросах и ответах
- Just_Fluffy
- Вымогатель припоя
- Сообщения: 532
- Зарегистрирован: Ср июн 29, 2022 16:25:45
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Игорь_396, вместо LD R16,Z+ можно взять ADIW ZH:ZL, 1
Белая и Пушистая
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Del
Последний раз редактировалось PicNov76 Пн июн 10, 2024 11:07:26, всего редактировалось 1 раз.
Ну что, ремонтировать будем или пусть работает?
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Код: Выделить всё
LPM - загрузка из ячейки ПЗУ с адресом в Z в ячейку ОЗУ R0
MOV Rd,Rd - как MOV Rd,R0
ADIW R30,K где К=1 (R31:R30 = Z)
SBIW R30,K где К=1Re: Ассемблер (ASM) для AVR в вопросах и ответах
LPM temp,Z+
Эквивалентно:
push r0
LPM
MOV temp,R0
ADIW R30,1;постинкремент
pop r0
Я вас правильно понял? Или надо еще из Z обратно 1 вычесть?
Эквивалентно:
push r0
LPM
MOV temp,R0
ADIW R30,1;постинкремент
pop r0
Я вас правильно понял? Или надо еще из Z обратно 1 вычесть?
Ну что, ремонтировать будем или пусть работает?
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Правильно.
Обычно R0 и R1 в программе не используются (резервируются для спец функций в командах математики и работы с ПЗУ). Так что если таковые команды в основной программе больше нигде не применяются можно R0 в стек не засылать.
То, что в Z осталось является следующим адресом в ПЗУ. Как с ним поступить дальше зависит от Вашей основной программы.

Обычно R0 и R1 в программе не используются (резервируются для спец функций в командах математики и работы с ПЗУ). Так что если таковые команды в основной программе больше нигде не применяются можно R0 в стек не засылать.
То, что в Z осталось является следующим адресом в ПЗУ. Как с ним поступить дальше зависит от Вашей основной программы.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Спасибо. Все скомпилилось. R0 в программе используется как переменная. В стек ее сохраню. LPM temp,Z+ конструкция R0 не использует.
Ну что, ремонтировать будем или пусть работает?
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Так LPM temp,Z+ (по факту LPM Rd,Z+ где Rd любой из регистров РОН) в перечне доступных команд из даташита на at90s2313 просто отсутствует.

Re: Ассемблер (ASM) для AVR в вопросах и ответах
Доброго времени всем))
Прошу сильно не ругать, но вопрос по LGT8f328p (но программирование на AVRASM-е же).
Начал таки изучать LGT8f328p, а куда деваться, я всего лишь радиолюбитель.
TWI - тоже самое что и в меге.
Со SPI разобрался, хоть и не сразу. Но понравился 32-х битный буфер. Удобно с TFT дисплеями работать, тем более на Fspi=16MHz
Сейчас с E2PROM-ом тоже разобрался.. почти.
Инициализировать, писать/читать сложностей не вызвало. Но не пойму как сохранять данные при перепрошивке. EESAVE наподобии.
Сейчас у меня код как и на мегах:
Подскажите пожалуйста, куда и как разместить .EESEG или добавить адрес через .ORG, что бы при перепрошивке сохранялись данные.
PS
Пробовал добавить .org 0x77FF (это минус 2к от 32к, но всё равно при перепрошивке вместо записаных данных выдаёт:
0xFF - если с инициализацией
и 0x00 - если без
PS2 в интернете пробовал искать.. но сами знаете, тотальное доминирование ардуины, и никакой информации толком нет
Прошу сильно не ругать, но вопрос по LGT8f328p (но программирование на AVRASM-е же).
Начал таки изучать LGT8f328p, а куда деваться, я всего лишь радиолюбитель.
TWI - тоже самое что и в меге.
Со SPI разобрался, хоть и не сразу. Но понравился 32-х битный буфер. Удобно с TFT дисплеями работать, тем более на Fspi=16MHz
Сейчас с E2PROM-ом тоже разобрался.. почти.
Инициализировать, писать/читать сложностей не вызвало. Но не пойму как сохранять данные при перепрошивке. EESAVE наподобии.
Сейчас у меня код как и на мегах:
Код: Выделить всё
.DSEG
.ORG SRAM_START
var: .byte 1
;
.ESEG
EE_var: .byte 1
;PS
Пробовал добавить .org 0x77FF (это минус 2к от 32к, но всё равно при перепрошивке вместо записаных данных выдаёт:
0xFF - если с инициализацией
и 0x00 - если без
PS2 в интернете пробовал искать.. но сами знаете, тотальное доминирование ардуины, и никакой информации толком нет
- Gudd-Head
- Друг Кота
- Сообщения: 20091
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Ассемблер (ASM) для AVR в вопросах и ответах
У АВР формировался отдельный файл для ЕЕПРОМ, который шился отдельной кнопкой в АВРСтудии.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Возможно код и адреса здесь непричём.. Возможно нужно смотреть опции заливки самой прошивки, что бы оставлять пространство..
Сейчас эксперементирую, е2пром если программно инициализировать, то после перепрошива данные читаются как 0хff, ну а потом пишет и читает как положенно.
А если е2пром не инициализировать программно (возможно предыдущая инициализация работает), то после перепрошива данные читаются как 0х00, и при этом опять же всё пишет и читает..
Странно всё конечно. Документации тоже нет нормальной.
А так контроллер мне понравился. С частью задач отлично справляется. Для меня основное, что среду разработки менять не нужно, а в производительности выигрыш очевиден.
Сейчас эксперементирую, е2пром если программно инициализировать, то после перепрошива данные читаются как 0хff, ну а потом пишет и читает как положенно.
А если е2пром не инициализировать программно (возможно предыдущая инициализация работает), то после перепрошива данные читаются как 0х00, и при этом опять же всё пишет и читает..
Странно всё конечно. Документации тоже нет нормальной.
А так контроллер мне понравился. С частью задач отлично справляется. Для меня основное, что среду разработки менять не нужно, а в производительности выигрыш очевиден.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
А как у той LGT8fхххх с протоколом прошивки?
Делается теми же средствами, что и для обычных АВРок или специальными программаторами?

Делается теми же средствами, что и для обычных АВРок или специальными программаторами?
Re: Ассемблер (ASM) для AVR в вопросах и ответах
[uquote="BOB51",url="/forum/viewtopic.php?p=4612376#p4612376"]А как у той LGT8fхххх с протоколом прошивки?
Делается теми же средствами, что и для обычных АВРок или специальными программаторами?
[/uquote]
Рекомендованный программатор от Logic Green слишком дорог для меня.
Многие шьют через ардуино со специальным скетчем.
Но это не наш метод
Нашёл в сети прошивку к USBASP-у.
Старая привычная AVRDUDE ругалась, поэтому поставил AVRDUDESS 2.17 (avrdude version 7.3). Но шью из консоли, точнее запускаю батник по F5 в Notepad++ , и сразу идёт компиляция и прошивка. В батнике команды к avrasm2.exe и avrdude.exe. Всё достаточно легко и просто.

Подключение:
Ссылку на прошивку USBASP-а не сохранил к сожалению, поэтому прикладываю скаченный ранее архив. Прошитый USBASP меги шить уже не будет с этой прошивкой.. На моём фото (а я помещаю USBASP-ы в обрезки кабельканала) я просто подписал его, что бы не путаться.
Через ардуино и USBASP не единственные способы, но про остальные не интересовался.
И ещё. Понимаю, что LGT тут не совсем в тему, и на этом форуме есть уже тема по LGT8f328p, но там как обычно ардуинщики обсуждают и меняются своими "библиотеками". Хотя гораздо полезнее рассматривать алгоритмы без привязки к какой либо среде. С удовольствием бы пообщался по данному контроллеру, можно в другой теме, но без ардуино
Ещё есть что спросить, и уже есть чем поделиться
И главное. Программирую на AVRASME, как и ранее. Немного только привёл свои старые файлы в соответствие
Добавлено after 50 minutes 3 seconds:
Сорри, чуть не забыл. lgt8f328Pdef.inc я взял из статьи Ревича:
1-я часть
2-я часть
Делается теми же средствами, что и для обычных АВРок или специальными программаторами?
Рекомендованный программатор от Logic Green слишком дорог для меня.
Многие шьют через ардуино со специальным скетчем.
Но это не наш метод
Нашёл в сети прошивку к USBASP-у.
Старая привычная AVRDUDE ругалась, поэтому поставил AVRDUDESS 2.17 (avrdude version 7.3). Но шью из консоли, точнее запускаю батник по F5 в Notepad++ , и сразу идёт компиляция и прошивка. В батнике команды к avrasm2.exe и avrdude.exe. Всё достаточно легко и просто.
Подключение:
Код: Выделить всё
PIN LGT8f328 USBASP PIN
[5] SWC MOSI [1]
[4] RST RESET [5]
[3] SWD MISO [9]
[1] GND [10]
[2] VCC [2]Через ардуино и USBASP не единственные способы, но про остальные не интересовался.
И ещё. Понимаю, что LGT тут не совсем в тему, и на этом форуме есть уже тема по LGT8f328p, но там как обычно ардуинщики обсуждают и меняются своими "библиотеками". Хотя гораздо полезнее рассматривать алгоритмы без привязки к какой либо среде. С удовольствием бы пообщался по данному контроллеру, можно в другой теме, но без ардуино
Ещё есть что спросить, и уже есть чем поделиться
И главное. Программирую на AVRASME, как и ранее. Немного только привёл свои старые файлы в соответствие
Добавлено after 50 minutes 3 seconds:
Сорри, чуть не забыл. lgt8f328Pdef.inc я взял из статьи Ревича:
1-я часть
2-я часть
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Таки печалька...

Re: Ассемблер (ASM) для AVR в вопросах и ответах
[uquote="BOB51",url="/forum/viewtopic.php?p=4612413#p4612413"]Таки печалька...
[/uquote] Печалька в чём? Я покупал самые дешёвые платки рублей по 80+
А с остальным проблем не возникло ))
А с остальным проблем не возникло ))
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Программатор городить надо...

Re: Ассемблер (ASM) для AVR в вопросах и ответах
Есть платы с юсб-и разъёмом. Шьются через загрузчик.. Но я в этом плохо разбираюсьBOB51 писал(а):Программатор городить надо...
У меня упрощёнка и ничего лишнего
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Это платки с бутлоадером для адуринки.
Но там соответствующие ограничения будут (согласно требованиям бутлоадера).
Да и загрузка из-под ардуино IDE...
Пока форсировать освоение ради спортивна интереса рановато... У китайцев много интересного, но основной гвоздь забивается при помощи отсутствия данных о протоколах загрузки прошивок (делает невозможным самостоятельное изготовление простых самодельных программаторов).
Да и пока тех МК не так уж и много в обозримом пространстве.

Но там соответствующие ограничения будут (согласно требованиям бутлоадера).
Да и загрузка из-под ардуино IDE...
Пока форсировать освоение ради спортивна интереса рановато... У китайцев много интересного, но основной гвоздь забивается при помощи отсутствия данных о протоколах загрузки прошивок (делает невозможным самостоятельное изготовление простых самодельных программаторов).
Да и пока тех МК не так уж и много в обозримом пространстве.
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Почему ide ? дудкой только в путь.
На GitHub есть проект Братца Яна там есть протокол прошивки
Добавлено after 6 minutes 25 seconds:
Может кто знает как в Студии прикрепить к проекту бинарный файл чтобы не делать из него массив байт ?
На GitHub есть проект Братца Яна там есть протокол прошивки
Добавлено after 6 minutes 25 seconds:
Может кто знает как в Студии прикрепить к проекту бинарный файл чтобы не делать из него массив байт ?
Re: Ассемблер (ASM) для AVR в вопросах и ответах
[uquote="BOB51",url="/forum/viewtopic.php?p=4612450#p4612450"]делает невозможным самостоятельное изготовление простых самодельных программаторов
[/uquote] Так же шьют и при помощи копеечного преобразователя USB-TTL.
Я не рассматривал все варианты, остановился на доступном для себя.
[uquote="BOB51",url="/forum/viewtopic.php?p=4612450#p4612450"]Да и пока тех МК не так уж и много в обозримом пространстве.
[/uquote] Ну как бы скорее мег становится не много, и цена на них всё выше и выше.
Но у LGT есть озвученные баги. Это вроде как с Timmer3. Возможно ещё появятся.
Я же с 32-х битной записью в еепром так до конца и не разобрался. Но по 8 байт пишет нормально. Промониторил буржуйские сайты, информации крайне мало.
Для большинства задач чипа хватит. А мои поделки ориентированы на TFT дисплеи, и чип мне как раз кстати
32MHz от внутреннего RC при 3,3V и 32-х битный SPI буфер, как раз под TFT 
Я не рассматривал все варианты, остановился на доступном для себя.
[uquote="BOB51",url="/forum/viewtopic.php?p=4612450#p4612450"]Да и пока тех МК не так уж и много в обозримом пространстве.
Но у LGT есть озвученные баги. Это вроде как с Timmer3. Возможно ещё появятся.
Я же с 32-х битной записью в еепром так до конца и не разобрался. Но по 8 байт пишет нормально. Промониторил буржуйские сайты, информации крайне мало.
Для большинства задач чипа хватит. А мои поделки ориентированы на TFT дисплеи, и чип мне как раз кстати
- ДядяВован
- Мучитель микросхем
- Сообщения: 482
- Зарегистрирован: Вс окт 25, 2020 22:13:25
- Откуда: Смоленск
Re: Ассемблер (ASM) для AVR в вопросах и ответах
Могли бы Вы выложить этот файл?shonty писал(а):lgt8f328Pdef.inc я взял из статьи
Не нахожу его в статье, может из-за отсутствия регистрации.