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

Обсуждаем контроллеры компании Atmel.
Ответить
Мучитель микросхем
Аватара пользователя
Сообщения: 473
Зарегистрирован: Ср янв 11, 2012 18:20:26

Сообщение shonty »

[uquote="ARV",url="/forum/viewtopic.php?p=3561324#p3561324"]если "мсек" это МИЛЛИсекунды, то 10 - это очень много! это очень большая задержка по МК-шным меркам. .[/uquote]
Извините, 10мксек (код в сети готовый Delay10us).
Экспериментирую с большими tft диплеями, вот если чтото не допишет, а бывает и проглотит, то на дисплее сразу отражается.
Реклама
Встал на лапы
Сообщения: 147
Зарегистрирован: Чт янв 10, 2013 21:03:18

Сообщение МКС »

[uquote="Alexeyslav",url="/forum/viewtopic.php?p=3561275#p3561275"]Просто соблюдения схемы ещё ндостаточно, нужно соблюсти ещё и топологию на плате. Так чтобы по AGND проводу не шли цифровые токи. На дорожке даже в 1мм шириной миливольты набираются только так![/uquote]
Наверное стремиться разводить их перпендикулярно друг другу?

Добавлено after 1 minute 20 seconds:
[uquote="pyzhman",url="/forum/viewtopic.php?p=3561347#p3561347"][uquote="МКС",url="/forum/viewtopic.php?p=3560981#p3560981"]...нестабильно фиксируются...[/uquote]
Определиться бы для начала - насколько точные значения нужны? Для чего?[/uquote]
Желательно все 10 бит. Хочу условно разбить угол поворота переменного резистора на 1024 шага (0-300 градусов на 1024 шага)
Реклама
Друг Кота
Аватара пользователя
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск

Сообщение pyzhman »

Переменником ловить треть градуса... Однако... Может проще взять многооборотный? Опять же всё зависит от преследуемой цели.
Docendo discimus
Контактная информация:
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич

Сообщение Alexeyslav »

[uquote="pyzhman",url="/forum/viewtopic.php?p=3561282#p3561282"]Из даташита:
±2 LSB Absolute Accuracy
[/uquote]

Нет, это совсем не то - это означает что абсолютная точность АЦП имеет велчину не более +-2 единиц младшего разряда. Это характеризует линейность шкалы. т.е. возми любое значение, сравни код выданный АЦП и реальное напряжение на входе оно отличаться будет не более чем на величину +-2м.р.
а 1м.р. = (опорное напряжение/1024)
----------------

Да, если вы в процессе работы с АЦП переключаете каналы или источник опорного напряжения то после переключения и перед измерением надо выдержать паузу, иначе будет мусор - например зависимость от напряжения на предыдущем канале!
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Аватара пользователя
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск

Сообщение pyzhman »

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

Сообщение Alexeyslav »

нет, +-2 м.р. это когда значение колеблется в диапазоне 500...504 при фактическом 502 а не ДВА БИТА. И вообще абсолютная погрешность не имеет никакого отношения к разрешающей способности.
Желательно все 10 бит. Хочу условно разбить угол поворота переменного резистора на 1024 шага
Если вам надо гарантированные 10 бит, то вам нужен 12-битный АЦП, или вводить некоторую логику, например усреднение выборок по методу подвижного окна. Но в целом значение не будет стоять как вкопаное - будет болтаться туда-сюда.
Недавно делал на ардуине что-то подобное. АЦП работает в потенциометрическом режиме - т.е. потенциометр подключен к выходу опорного напряжения - это гарантирует что АЦП покажет не напряжение на своём входе, а именно положение потенциометра. Так он всеравно мигал младшим разрядом и на светодиодной ленте это было сильно заметно, особенно на малой яркости когда при значении АЦП 8 оно болтается +-1м.р. Так что я сделал ТУПО - если значение АЦП отклоняется от текущего более чем на 4 - перезаписываем текущее, и далее в программе использую эту переменную. Всё. встало как вкопаное. Но появился момент "страгивания" что для обычного потенциометра... боюсь что у него механический момент страгивания и точность позиционирования "с руки" гораздо хуже. Если надо столь точно определять поворот ручки, может стоит использовать инкрементальный энкодер? На базе сенсора от шариковой мышки.
Контактная информация:
Реклама
Встал на лапы
Сообщения: 147
Зарегистрирован: Чт янв 10, 2013 21:03:18

Сообщение МКС »

Хорошая идея! Надо попробовать, тогда и АЦП больше не нужен.
Друг Кота
Аватара пользователя
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск

Сообщение pyzhman »

Наконец-то!
Docendo discimus
Контактная информация:
Встал на лапы
Сообщения: 147
Зарегистрирован: Чт янв 10, 2013 21:03:18

Сообщение МКС »

[uquote="pyzhman",url="/forum/viewtopic.php?p=3561863#p3561863"]Наконец-то![/uquote]
Прошло пол месяца, ну что поддувало тебе полегчало?
Встал на лапы
Сообщения: 95
Зарегистрирован: Вт ноя 09, 2010 22:39:31

Сообщение Faun »

Здравствуйте :).
..а в этом разделе можно подписаться (как опытный ассемблерщик) помогать с вашими вопросами(новичка), в обмен на помощ с протеусом?.
Добавимся в вайбер-скайп, и взаимовыгодно будем помогать...
в личку пишите, жду "взаимопомощи" :)
Последний раз редактировалось Faun Ср фев 27, 2019 10:51:27, всего редактировалось 1 раз.
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18791
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

Faun писал(а):чтобы меня научили протеусом пользоваться?
о протеусе лучше, пожалуй, в теме о протеусе... там и научат, если что :)
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Встал на лапы
Сообщения: 95
Зарегистрирован: Вт ноя 09, 2010 22:39:31

Сообщение Faun »

Нуу, в общем-то верно.. Зато здесь сидят те, кто ждет помощи в ассемблере... а тут бац!, "...так я-ж с протеусом на ты!. а в асм-е всё ни как..".
...Загляну и туда, пасип :)
Мудрый кот
Аватара пользователя
Сообщения: 1814
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Сообщение Kavka »

Приветствую всех!

Вопрос про GNU ассемблер.
Сделал макро, проверил. Разместил в отдельном файле.
Ставлю .include "gnu-as_macros.S". При сборке ругается на неизвестный опкод - не видит макроса.
Что-то прям как про те лыжи... :-( Где и чем намазать, чтобы поехало? :-)

Получилось только с препроцессором: #include "gnu-as_macros.S".

Добавлено after 11 minutes 34 seconds:
Получается, что макрос "виден" только в одном файле? Как-то совсем не по феншую...
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18791
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

вы абсолютно неправильно используете ассемблерные модули!
в файле с расширением .S точно такой же модуль проекта, как и любой файл .c - его надо добавлять к числу компилируемых модулей, а не инклюдить.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 15793
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Kavka
Попробуй расширение *.txt (#include "gnu-as_macros.txt") - по крайней мере в моём "слэнге" для штатных avrasm2, микрочипьева "среднемладшего" и с51asm подключение текстового файла проходит без замечаний.
Единственно сам файлик надо в простом редакторе делать - у мня dpad (https://yadi.sk/d/LCkSxcvnkqHfWg), у кого еще какой (но не word!!!)...
:roll:
Мудрый кот
Аватара пользователя
Сообщения: 1814
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Сообщение Kavka »

[uquote="ARV",url="/forum/viewtopic.php?p=3596132#p3596132"]вы абсолютно неправильно используете ассемблерные модули!
в файле с расширением .S точно такой же модуль проекта, как и любой файл .c - его надо добавлять к числу компилируемых модулей, а не инклюдить.[/uquote]
Ещё раз повторюсь - макрос в отдельном файле. Только макрос.
Его надо подключить к другим ассемблерным файлам, чтобы макрос можно было использовать в программе.
Там компилировать нечего, чтобы его отдельным файлом к проекту подключать.

BOB51, ну да, если использовать препроцессор (#include ...), а не ассемблеровскую директиву (.include "..."), то работает. Вопрос поэтому и возник.

Получается, что зона видимости макроса это файл где он определён и через директиву ассемблера макрос не вставляется.

Добавлено after 1 minute 55 seconds:
Не, чего-то не понимаю, однако. И найти доку что-то не плучается... :-(
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18791
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

Kavka писал(а):если использовать препроцессор (#include ...), а не ассемблеровскую директиву (.include "..."), то работает. Вопрос поэтому и возник.

Получается, что зона видимости макроса это файл где он определён и через директиву ассемблера макрос не вставляется.
все именно так.
gnu-as использует препроцессор точно так же, как и компилятор С/С++, поэтому все директивы препроцессора так же работают (почти - с типом int в макросах есть нюансы).

соответственно, содержимое подключаемого файла видимо там, где он подключен - точно так же, как и с .h-файлами.

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

Мой уютный бложик... заходите!
Контактная информация:
Мудрый кот
Аватара пользователя
Сообщения: 1814
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Сообщение Kavka »

Разобрался. Нашёл .include на #define, в смысле нашла коса на камень. :-)
В итоге, в моём случае, не обойтись без препроцессора.
.include работает как положено. Проверил на простом макросе.

ARV, выглядело так, как будто макрос не определён совсем. Не смотря на на этот самый .include, которым и подключался файл с макросом.

Загвоздка оказалась в том, что нужны определения из заголовозников от avr-libc, а они только через препроцессор. Ну, и я, неверно интерпретировал ошибки компилятора.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18791
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

ну, вас, Петровых, не поймешь... :dont_know:
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Родился
Сообщения: 1
Зарегистрирован: Ср мар 20, 2019 11:56:11

Сообщение Bachok »

Извините что не по теме. Может кто-нибудь прислать на почту Sampavel86@gmail.ru прошивку по ссыке https://remont-aud.net/dump/car_audio/d ... -1-0-47425 . Моих куриных мозгов не хватает пройти тест. Так бы даже не стал беспокоить, спасибо за понимание.
Ответить

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