Я не ИИ, поэтому могу ошибаться.
Ассемблер (ASM) для AVR в вопросах и ответах
- Сообщения: 551
- Зарегистрирован: Ср июн 29, 2022 16:25:45
Игорь_396, вместо LD R16,Z+ можно взять ADIW ZH:ZL, 1
Белая и Пушистая
Я не ИИ, поэтому могу ошибаться.
Я не ИИ, поэтому могу ошибаться.
- Реклама
Код: Выделить всё
LPM - загрузка из ячейки ПЗУ с адресом в Z в ячейку ОЗУ R0
MOV Rd,Rd - как MOV Rd,R0
ADIW R30,K где К=1 (R31:R30 = Z)
SBIW R30,K где К=1- Сообщения: 58
- Зарегистрирован: Сб дек 01, 2007 12:24:20
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 вычесть?
Ну что, ремонтировать будем или пусть работает?
Правильно.
Обычно R0 и R1 в программе не используются (резервируются для спец функций в командах математики и работы с ПЗУ). Так что если таковые команды в основной программе больше нигде не применяются можно R0 в стек не засылать.
То, что в Z осталось является следующим адресом в ПЗУ. Как с ним поступить дальше зависит от Вашей основной программы.

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

- Сообщения: 473
- Зарегистрирован: Ср янв 11, 2012 18:20:26
Доброго времени всем))
Прошу сильно не ругать, но вопрос по 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 в интернете пробовал искать.. но сами знаете, тотальное доминирование ардуины, и никакой информации толком нет
У АВР формировался отдельный файл для ЕЕПРОМ, который шился отдельной кнопкой в АВРСтудии.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- Сообщения: 473
- Зарегистрирован: Ср янв 11, 2012 18:20:26
Возможно код и адреса здесь непричём.. Возможно нужно смотреть опции заливки самой прошивки, что бы оставлять пространство..
Сейчас эксперементирую, е2пром если программно инициализировать, то после перепрошива данные читаются как 0хff, ну а потом пишет и читает как положенно.
А если е2пром не инициализировать программно (возможно предыдущая инициализация работает), то после перепрошива данные читаются как 0х00, и при этом опять же всё пишет и читает..
Странно всё конечно. Документации тоже нет нормальной.
А так контроллер мне понравился. С частью задач отлично справляется. Для меня основное, что среду разработки менять не нужно, а в производительности выигрыш очевиден.
Сейчас эксперементирую, е2пром если программно инициализировать, то после перепрошива данные читаются как 0хff, ну а потом пишет и читает как положенно.
А если е2пром не инициализировать программно (возможно предыдущая инициализация работает), то после перепрошива данные читаются как 0х00, и при этом опять же всё пишет и читает..
Странно всё конечно. Документации тоже нет нормальной.
А так контроллер мне понравился. С частью задач отлично справляется. Для меня основное, что среду разработки менять не нужно, а в производительности выигрыш очевиден.
А как у той LGT8fхххх с протоколом прошивки?
Делается теми же средствами, что и для обычных АВРок или специальными программаторами?

Делается теми же средствами, что и для обычных АВРок или специальными программаторами?
- Сообщения: 473
- Зарегистрирован: Ср янв 11, 2012 18:20:26
[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-я часть
- Сообщения: 473
- Зарегистрирован: Ср янв 11, 2012 18:20:26
[uquote="BOB51",url="/forum/viewtopic.php?p=4612413#p4612413"]Таки печалька...
[/uquote] Печалька в чём? Я покупал самые дешёвые платки рублей по 80+
А с остальным проблем не возникло ))
А с остальным проблем не возникло ))
- Сообщения: 473
- Зарегистрирован: Ср янв 11, 2012 18:20:26
Есть платы с юсб-и разъёмом. Шьются через загрузчик.. Но я в этом плохо разбираюсьBOB51 писал(а):Программатор городить надо...
У меня упрощёнка и ничего лишнего
Это платки с бутлоадером для адуринки.
Но там соответствующие ограничения будут (согласно требованиям бутлоадера).
Да и загрузка из-под ардуино IDE...
Пока форсировать освоение ради спортивна интереса рановато... У китайцев много интересного, но основной гвоздь забивается при помощи отсутствия данных о протоколах загрузки прошивок (делает невозможным самостоятельное изготовление простых самодельных программаторов).
Да и пока тех МК не так уж и много в обозримом пространстве.

Но там соответствующие ограничения будут (согласно требованиям бутлоадера).
Да и загрузка из-под ардуино IDE...
Пока форсировать освоение ради спортивна интереса рановато... У китайцев много интересного, но основной гвоздь забивается при помощи отсутствия данных о протоколах загрузки прошивок (делает невозможным самостоятельное изготовление простых самодельных программаторов).
Да и пока тех МК не так уж и много в обозримом пространстве.
- Сообщения: 24
- Зарегистрирован: Вт ноя 15, 2016 12:48:20
Почему ide ? дудкой только в путь.
На GitHub есть проект Братца Яна там есть протокол прошивки
Добавлено after 6 minutes 25 seconds:
Может кто знает как в Студии прикрепить к проекту бинарный файл чтобы не делать из него массив байт ?
На GitHub есть проект Братца Яна там есть протокол прошивки
Добавлено after 6 minutes 25 seconds:
Может кто знает как в Студии прикрепить к проекту бинарный файл чтобы не делать из него массив байт ?
- Сообщения: 473
- Зарегистрирован: Ср янв 11, 2012 18:20:26
[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 дисплеи, и чип мне как раз кстати
Могли бы Вы выложить этот файл?shonty писал(а):lgt8f328Pdef.inc я взял из статьи
Не нахожу его в статье, может из-за отсутствия регистрации.


