Ассемблер (ASM) для AVR в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
Ответить
Встал на лапы
Сообщения: 106
Зарегистрирован: Чт сен 10, 2015 06:59:03
Откуда: Гродно, BY

Сообщение trofim2 »

[uquote="city77",url="/forum/viewtopic.php?p=3332268#p3332268"]
Jetetex писал(а):Возникла идея устройства на тини 2313 для управления светодиодной матрицей 32х32. Всем она подошла, кроме обьема памяти. Решил вынести масивы данных для матрицы на внешний носитель.
купите какую нибудь мегу и не ищите проблем, "головная боль" и потраченное время обойдутся дороже.[/uquote]
А полученный опыт и удовольствие?
Реклама
Встал на лапы
Аватара пользователя
Сообщения: 117
Зарегистрирован: Ср окт 15, 2014 12:45:46
Откуда: Анапа

Сообщение Jetetex »

Пускай даже купить Мегу (правда я с ней еще ни разу не работал, и не знаю как пройдет переход с MicroAVR на MegaAVR) да и trofim где-то прав, то остается открытым вопрос с самой программой, ибо в сях я ваще ни ку-ку.
Если я чего-то не знаю, это не говорит о моем невежестве, а только о том, что раньше этот вопрос лежал вне сферы моих интересов.
Реклама
Открыл глаза
Сообщения: 53
Зарегистрирован: Чт дек 28, 2017 23:07:31

Сообщение city77 »

Jetetex писал(а):не знаю как пройдет переход с MicroAVR на MegaAVR
открою "страшную тайну" разница между тинькой и мегой не больше, чем между 2-мя тиньками. Если быть точным, то отличие только в периферии (ну и размере памяти, конечно). Качните книжку Лебедева - правда там синтаксис под CV Avr, но объясняется все доходчиво.
trofim2 писал(а):А полученный опыт и удовольствие?
пытаться впихнуть, то что явно не влезет - это скорее мазохизм, а не удовольствие ... хотя о вкусах спорить не буду :)
Встал на лапы
Аватара пользователя
Сообщения: 117
Зарегистрирован: Ср окт 15, 2014 12:45:46
Откуда: Анапа

Сообщение Jetetex »

[uquote="city77",url="/forum/viewtopic.php?p=3332420#p3332420"]открою "страшную тайну" разница между тинькой и мегой не больше, чем между 2-мя тиньками.[/uquote]

Ну что ж, один вопрос решили (и всего за 5 постов :)) ). Остался еще один: принцип работы вреде понимаю с SPI работал (на регистрах), но намного проще будет с помощью наглядного примера (потому как читать даташит на английском со словарем :dont_know: ) . Думаю перейти с Ассемблера на другой язык немного сложнее. :)

Добавлено чуть позже:

.. и да - карту все равно подключать придется, все таки есть разница между Кило и Гига байтами.
Если я чего-то не знаю, это не говорит о моем невежестве, а только о том, что раньше этот вопрос лежал вне сферы моих интересов.
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Сообщения: 3342
Зарегистрирован: Ср янв 02, 2013 08:37:35

Сообщение АСУ »

[uquote="Jetetex",url="/forum/viewtopic.php?p=3332430#p3332430"]Мож у кого-то завялялся кусок кода по инициализации и работе с картой? (для наглядного примера)
И как записать данные на карту? (ведь по сути мне нужен массив чисел)[/uquote]
Вот что-то подобное… http://www.getchip.net/posts/116-sdc-sh ... etodiodov/
Исходник правда написан на Algorithm Builder (графический ассемблер).
Думаю перейти с Ассемблера на другой язык немного сложнее. :)
В установленной программе АВ (Algorithm Builder) есть очень хорошо расписанная справка… при знании классического ассемблера, разобраться в синтаксисе АВ не составит труда. Программа АВ создана была Геннадием Громовым, а значит и справка на русском языке. :) Удачи.
Реклама
Открыл глаза
Сообщения: 53
Зарегистрирован: Чт дек 28, 2017 23:07:31

Сообщение city77 »

Jetetex писал(а):Остался еще один: принцип работы вреде понимаю с SPI работал (на регистрах), но намного проще будет с помощью наглядного примера (потому как читать даташит на английском со словарем :dont_know: ) . Думаю перейти с Ассемблера на другой язык немного сложнее
наглядного примера чего? Любой С-компилятор умеет генерить листинг, в том числе и ассемблерный, так что не совсем понимаю проблему. Да, и еще один момент про SD-карту - удобная работа с картой возможна тольео через FAT (ИМХО), пусть ваш АВР будет читать карту, но для этого на нее нужно что-то залить...
Реклама
Встал на лапы
Аватара пользователя
Сообщения: 117
Зарегистрирован: Ср окт 15, 2014 12:45:46
Откуда: Анапа

Сообщение Jetetex »

Для тех кто только подошел и хочет помочь, цитирую собственное сообщение:
СпойлерДоброго времени суток всем форумчанам. Возникла идея устройства на тини 2313 для управления светодиодной матрицей 32х32. Всем она подошла, кроме обьема памяти. Решил вынести масивы данных для матрицы на внешний носитель. Шаря по просторам тырнета, нашол уйму статей по подключению сд карты к МК, но все примеры в статьях написаны на сях. :shock:

Из вышесказанного вытекает пара вопросов:

1) Мож у кого-то завялялся кусок кода по инициализации и работе с картой? (для наглядного примера)
2) И как записать данные на карту? (ведь по сути мне нужен массив чисел)

Что бы было меньше каментов типа МК не потянет, сразу скажу - есть проэкт подключения карты к тини (к сожалению тож на сях :( )

http://www.getchip.net/posts/087-attiny ... ng-device/
К этому моменту тини 2313 решено заменить на мегу, остальные еще открыты.

=====
city77
Транслированый код, насколько я понимаю идет без каментов
Если я чего-то не знаю, это не говорит о моем невежестве, а только о том, что раньше этот вопрос лежал вне сферы моих интересов.
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 333
Зарегистрирован: Ср мар 09, 2016 08:07:41

Сообщение JackSmith »

[uquote="Jetetex",url="/forum/viewtopic.php?p=3332741#p3332741"]1) Мож у кого-то завялялся кусок кода по инициализации и работе с картой? (для наглядного примера)
2) И как записать данные на карту? (ведь по сути мне нужен массив чисел)[/uquote]

тема рассматривалась в книге: "Практическое программирование avr на ассемблер" Ю.Ревич в главе одиннадцатой, на примере MMC карт. Об отличиях SD от MMC можно почитать например здесь http://we.easyelectronics.ru/AVR/mmcsd- ... aciya.html

Самое неприятное в работе с SD, 1) это необходимость подсчета CRC, 2) необходимость поддержки FS или на худой конец какого-либо файла контейнера.

ЗЫ Сейчас продают мегабайтные SPI-флешки, неужели этого недостаточно для матрицы 32x32?
ЗЗЫ Если вы не воспринимаете Си, то что вам мешает скомпилировать Си-исходник в машкод, и дизассемблировать полученную прошивку?
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич

Сообщение Alexeyslav »

С FAT на мелких контроллерах вы упрётесь в малый объем оперативки. Там в памяти надо держать достаточно много чисел чтобы не перечитывать одно и то же по сотне раз. Цепочу кластеров вытаскивать по FAT без запоминания адресов предыдущего кластера превратится в сплошной гемор. Можно карту памяти использовать в так сказать RAW-режиме, оставив первые 1023 кластера операционной системе чтобы оан не вопила об неотформатированной карте и забить туда "болванку" MBR в которой будет указаны два раздела один пустой околонулевого размера, а второй RAW на весь оставшийся объём, и к нему уже получать доступ в посекторном режиме из программы на МК, код при этом упростится до кода работы с самой картой. Адрес первого свободного кластера RAW-раздела можно кстати считать прямо с MBR, или записать в первых кластерах сразу после MBR и до FAT-таблицы обычно они там НИКАК не используются операционками и просто болтаются невостребованными. Тогда появится гибкость и можно будет любую карточку подготовить под свои цели откусив от неё необходимый объём для использования в своём девайсе и при этом она не потеряет свой основной функционал для других систем.
Работать с RAW-разделом можно при помощи таких программ как WinHEX или HexEditor, а разделить карточку - элементарными утилитами DISKPART или аналогичными. Хотя после исследования устройства MBR у вас зачешутся руки сделать это вручную.
Контактная информация:
Встал на лапы
Аватара пользователя
Сообщения: 117
Зарегистрирован: Ср окт 15, 2014 12:45:46
Откуда: Анапа

Сообщение Jetetex »

Alexeyslav

А не подскажете, где можно почерпнуть информацию по этому вопросу. В даташите ниче похожего нет, а гугль выдает кучу инфы по фотографиям и восстановлению файловой системы, не говоря уже о том, как работать с ней)
Если я чего-то не знаю, это не говорит о моем невежестве, а только о том, что раньше этот вопрос лежал вне сферы моих интересов.
Открыл глаза
Сообщения: 55
Зарегистрирован: Вс май 03, 2015 15:05:58

Сообщение Feruz »

Не могу понять почему протеус криво компонует исходник? При пошаговом выполнении вылетает "No source code in this line". Или я что-то делаю не так.
Вложения
2.JPG
(159.54 КБ) 441 скачивание
1.JPG
(169.2 КБ) 372 скачивания
Это не хвост, это антенна
Сообщения: 1491
Зарегистрирован: Ср июн 25, 2008 15:19:44

Сообщение Demiurg »

Самый лучший симулятор - симулятор AVR-Studio. Поясняю: AVR-Studio продукт ATMEL, то есть - производителя МК AVR. И НИКТО лучше производителя симулятор не сделает. Это очевидно.
Для оппонентов: да, можно накалякать схему и как бы вживую ее просимулировать. С этим не буду спорить. Это как бы экономит время. Но такой подход аналогичен русской народной пословице: выигранная битва не означает выигранную войну. В конечном итоге, в перспективе симуляция на протеусе проигрывает симуляции в AVR-Studio.
Протеус показывает работу визуально на схеме. Но не показывает, что происходит в кишках МК. В AVR-Studio изначально весь процесс наблюдается в кишках. А для того, чтобы нормально в ней работать, нужно отлаживать программу помодульно. Отладили модуль, выбрасываем его из головы и поехали дальше. Для этого нужно научиться делать тестовые куски программы.

P.S. И кстати, обратите внимание. Очень часто всплывают очередные сообщения. "В протеусе работает, в железе нет." Или наеборот. "Шо делать?!". На AVR-Studio очень редко кто жалуется.
Контактная информация:
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич

Сообщение Alexeyslav »

На студию не жалуются потому что не используют. В ней критически НЕВОЗМОЖНО симулировать прошивки требующие взаимодействие через внешнюю обвязку, порой с аналоговой частью. Может верхний уровень и можно отлаживать, когда уже написаны все процедуры взаимодействия с внешним миром, но очень редко когда это удаётся в полной мере - например обратные связи через прерывания и без них смысла запускать симуляцию программы нет.
Всёравно дальше идёт этап железа или протеус. С железом интересно, есть такие ситуации когда ошибка в коде - и схема сгорает к чертям. Так вот протеус позволяет уменьшить количество сожженных радиоэлементов. Даже если не заработает после него с первого раза, 6 предыдущих виртуальных попыток не приведут к волшебному дыму и целых 6 комплектов элементов останутся живы.

Да и кто сказал что протеус не позволяет смотреть внутреннее состояние контроллера? Между прочим, там есть внутренний отладчик и предусмотрена возможность подключения ВНЕШНЕГО отладчика, в роли которого... может выступать сама студия! Плагин был такой, но увы только под 4-ю версию студии, для 5-й и старше я такого уже не видел. Похоронили? Хм... может для вас гугл будет более благосклонен и уже есть аналогичный плагин под 7-ю студию?
А не подскажете, где можно почерпнуть информацию по этому вопросу. В даташите ниче похожего нет
Так даташит надо читать по файловой системе... а он ууупс... оказывается что FAT проприетарная и все даташиты на сильно платной основе. Но она настолько проста что люди расковыряли по кирпичикам. Где почитать... ну не знаю, было много всякого рода статей и все они у меня остались лишь в виде опыта и знаний. WinHEX в руки и можно ковырять. Описание MBR можно почитать в статьях про восстановление дисков, он не сложен и где-то даже есть описание всей его структуры - прост как пробка. Начать можно прямо с википедии.
Контактная информация:
Встал на лапы
Сообщения: 106
Зарегистрирован: Чт сен 10, 2015 06:59:03
Откуда: Гродно, BY

Сообщение trofim2 »

"С железом интересно, есть такие ситуации когда ошибка в коде - и схема сгорает к чертям. "
Интересный вариант: программно спалить железо. Зачем такое железо делать?
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич

Сообщение Alexeyslav »

Всего лишь какой-нибудь инвертор на десяток-другой киловатт. Всякое бывает...
Контактная информация:
Встал на лапы
Сообщения: 106
Зарегистрирован: Чт сен 10, 2015 06:59:03
Откуда: Гродно, BY

Сообщение trofim2 »

Инвертор надо делать на специализированной микросхеме, тогда все будет в порядке.
Контроллер всегда может зависнуть в самый не подходящий момент и тогда точно будет бабах.
Открыл глаза
Сообщения: 55
Зарегистрирован: Вс май 03, 2015 15:05:58

Сообщение Feruz »

И все же, кто сталкивался с подобным поведением компоновщика протеуса? Может дело в настройках?
Это не хвост, это антенна
Сообщения: 1491
Зарегистрирован: Ср июн 25, 2008 15:19:44

Сообщение Demiurg »

[uquote="Alexeyslav",url="/forum/viewtopic.php?p=3335661#p3335661"]Всего лишь какой-нибудь инвертор на десяток-другой киловатт. Всякое бывает...[/uquote]
Ага, дорогостоящий проект симулировать в недосимуляторе... Не знаю что вы хотели этим сказать, может многозначительно так указать, типа занимаетесь ТАКИМИ проектами.
Как я уже написал, модульное программирование и отладка сначала модулей, затем верхний уровень.
Контактная информация:
Встал на лапы
Аватара пользователя
Сообщения: 117
Зарегистрирован: Ср окт 15, 2014 12:45:46
Откуда: Анапа

Сообщение Jetetex »

Возможно Proteus и недосимулятор, но почти всегда проблема не в нем, а в коде или схеме.

Feruz:

1) Если Вам нужна реальная помощ, то нужен полный текст кода, так как проблема может возникать уже в процессе выполнения рабочего кода
а не в ходе инициализации.
2) на чем все это работает?
3) Фьюз биты.

ЗЫ: И еще: зачем вручную забивать РОНы и оперативку нулями?
Последний раз редактировалось Jetetex Ср мар 21, 2018 15:53:58, всего редактировалось 7 раз.
Если я чего-то не знаю, это не говорит о моем невежестве, а только о том, что раньше этот вопрос лежал вне сферы моих интересов.
Вымогатель припоя
Сообщения: 615
Зарегистрирован: Вс дек 28, 2014 21:54:05

Сообщение dgrett »

[uquote="Demiurg",url="/forum/viewtopic.php?p=3335438#p3335438"]Протеус показывает работу визуально на схеме. Но не показывает, что происходит в кишках МК.[/uquote]
Да нормально Протеус показывает кишочки. Не так наглядно, конечно, как Студия, но показывает.
Только вот изменить вручную во время симуляции не удастся ни содержимое регистров, ни портов, ни памяти. Другое дело, что едет с затянутым ручником, но если убрать всё лишнее, то вполне сносно.
Я всё-всё узнAю и стану профессором.
Ответить

Вернуться в «AVR»