Обсуждаем контроллеры компании Atmel.
Ответить

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

Пт мар 16, 2018 16:12:29

Jetetex писал(а):Возникла идея устройства на тини 2313 для управления светодиодной матрицей 32х32. Всем она подошла, кроме обьема памяти. Решил вынести масивы данных для матрицы на внешний носитель.
купите какую нибудь мегу и не ищите проблем, "головная боль" и потраченное время обойдутся дороже.

А полученный опыт и удовольствие?

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

Пт мар 16, 2018 18:56:31

Пускай даже купить Мегу (правда я с ней еще ни разу не работал, и не знаю как пройдет переход с MicroAVR на MegaAVR) да и trofim где-то прав, то остается открытым вопрос с самой программой, ибо в сях я ваще ни ку-ку.

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

Пт мар 16, 2018 19:20:35

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

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

Пт мар 16, 2018 19:32:17

открою "страшную тайну" разница между тинькой и мегой не больше, чем между 2-мя тиньками.


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

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

.. и да - карту все равно подключать придется, все таки есть разница между Кило и Гига байтами.

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

Пт мар 16, 2018 19:58:18

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

Вот что-то подобное… http://www.getchip.net/posts/116-sdc-sh ... etodiodov/
Исходник правда написан на Algorithm Builder (графический ассемблер).
Думаю перейти с Ассемблера на другой язык немного сложнее. :)

В установленной программе АВ (Algorithm Builder) есть очень хорошо расписанная справка… при знании классического ассемблера, разобраться в синтаксисе АВ не составит труда. Программа АВ создана была Геннадием Громовым, а значит и справка на русском языке. :) Удачи.

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

Сб мар 17, 2018 09:18:55

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

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

Сб мар 17, 2018 11:32:36

Для тех кто только подошел и хочет помочь, цитирую собственное сообщение:

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

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

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

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

http://www.getchip.net/posts/087-attiny ... ng-device/


К этому моменту тини 2313 решено заменить на мегу, остальные еще открыты.

=====
city77
Транслированый код, насколько я понимаю идет без каментов

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

Сб мар 17, 2018 13:01:22

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


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

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

ЗЫ Сейчас продают мегабайтные SPI-флешки, неужели этого недостаточно для матрицы 32x32?
ЗЗЫ Если вы не воспринимаете Си, то что вам мешает скомпилировать Си-исходник в машкод, и дизассемблировать полученную прошивку?

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

Сб мар 17, 2018 18:12:53

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

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

Пн мар 19, 2018 11:43:40

Alexeyslav

А не подскажете, где можно почерпнуть информацию по этому вопросу. В даташите ниче похожего нет, а гугль выдает кучу инфы по фотографиям и восстановлению файловой системы, не говоря уже о том, как работать с ней)

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

Вт мар 20, 2018 15:40:33

Не могу понять почему протеус криво компонует исходник? При пошаговом выполнении вылетает "No source code in this line". Или я что-то делаю не так.
Вложения
2.JPG
(159.54 KiB) Скачиваний: 379
1.JPG
(169.2 KiB) Скачиваний: 356

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

Вт мар 20, 2018 16:43:43

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

P.S. И кстати, обратите внимание. Очень часто всплывают очередные сообщения. "В протеусе работает, в железе нет." Или наеборот. "Шо делать?!". На AVR-Studio очень редко кто жалуется.

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

Вт мар 20, 2018 23:49:16

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

Да и кто сказал что протеус не позволяет смотреть внутреннее состояние контроллера? Между прочим, там есть внутренний отладчик и предусмотрена возможность подключения ВНЕШНЕГО отладчика, в роли которого... может выступать сама студия! Плагин был такой, но увы только под 4-ю версию студии, для 5-й и старше я такого уже не видел. Похоронили? Хм... может для вас гугл будет более благосклонен и уже есть аналогичный плагин под 7-ю студию?

А не подскажете, где можно почерпнуть информацию по этому вопросу. В даташите ниче похожего нет

Так даташит надо читать по файловой системе... а он ууупс... оказывается что FAT проприетарная и все даташиты на сильно платной основе. Но она настолько проста что люди расковыряли по кирпичикам. Где почитать... ну не знаю, было много всякого рода статей и все они у меня остались лишь в виде опыта и знаний. WinHEX в руки и можно ковырять. Описание MBR можно почитать в статьях про восстановление дисков, он не сложен и где-то даже есть описание всей его структуры - прост как пробка. Начать можно прямо с википедии.

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

Ср мар 21, 2018 07:01:09

"С железом интересно, есть такие ситуации когда ошибка в коде - и схема сгорает к чертям. "
Интересный вариант: программно спалить железо. Зачем такое железо делать?

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

Ср мар 21, 2018 07:32:55

Всего лишь какой-нибудь инвертор на десяток-другой киловатт. Всякое бывает...

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

Ср мар 21, 2018 07:42:57

Инвертор надо делать на специализированной микросхеме, тогда все будет в порядке.
Контроллер всегда может зависнуть в самый не подходящий момент и тогда точно будет бабах.

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

Ср мар 21, 2018 09:30:47

И все же, кто сталкивался с подобным поведением компоновщика протеуса? Может дело в настройках?

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

Ср мар 21, 2018 09:33:16

Всего лишь какой-нибудь инвертор на десяток-другой киловатт. Всякое бывает...

Ага, дорогостоящий проект симулировать в недосимуляторе... Не знаю что вы хотели этим сказать, может многозначительно так указать, типа занимаетесь ТАКИМИ проектами.
Как я уже написал, модульное программирование и отладка сначала модулей, затем верхний уровень.

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

Ср мар 21, 2018 14:50:42

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

Feruz:

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

ЗЫ: И еще: зачем вручную забивать РОНы и оперативку нулями?
Последний раз редактировалось Jetetex Ср мар 21, 2018 15:53:58, всего редактировалось 7 раз(а).

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

Ср мар 21, 2018 15:13:04

Протеус показывает работу визуально на схеме. Но не показывает, что происходит в кишках МК.

Да нормально Протеус показывает кишочки. Не так наглядно, конечно, как Студия, но показывает.
Только вот изменить вручную во время симуляции не удастся ни содержимое регистров, ни портов, ни памяти. Другое дело, что едет с затянутым ручником, но если убрать всё лишнее, то вполне сносно.
Ответить