Например TDA7294

Форум РадиоКот • Просмотр темы - Ассемблер (ASM) для AVR в вопросах и ответах
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Пн июл 14, 2025 18:49:19

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 7956 ]     ... , , , 306, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Чт июл 06, 2017 16:08:31 
Собутыльник Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 651
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2708
Откуда: г. Чайковский
Рейтинг сообщения: 1
Медали: 1
Получил миской по аватаре (1)
Цитата:
Прерывание не работает.
Не входит в обработчик прерывания или обработчик как-то неверно работает?
Lavad писал(а):
Поделитесь, пожалуйста. Может, что-то новое узнаю.
Вы меня не поняли. В симуляции, выполняя работу по шагам, можно открыть окно дизассемблера и поглядеть во что скомпиллировлся оператор start timer. Коли у Вас тут только отличие в запуске таймера. А я уже сказал, баском я не знаю и тема тут не про него.
Lavad писал(а):
каждой новой команды прогонял в симуляторе.
Вот и поставте точку останова перед выходом из прерывания и поглядите значения регистров отвечающих за таймер.

Правильно ли я понял, что цель ассемблерных вставок - это изучение ассемблера? Если это так, то Ваш подход неверен. Лучше напишите новый проект на ассеблере. Как правило - это мигание светодиодом для начала.

_________________
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Чт июл 06, 2017 19:54:03 
Первый раз сказал Мяу!
Аватар пользователя

Зарегистрирован: Сб апр 20, 2013 22:56:52
Сообщений: 33
Рейтинг сообщения: 0
Не входит в обработчик прерывания или обработчик как-то неверно работает?
В железе еще не проверял, но, кажется нашел свою оплошность. Вход в обработчик прерывания имеется, а выход некорректен. Команды возврата точки старта таймера и его запуска я расположил не в самом конце обработчика (перед $end asm), а немного до него, перед пустышкой _exit. И совсем вылетело из головы, что полный или частичный проход обработчика происходит не всегда, в зависимости от ситуации. В моем случае происходил прыжок на _exit, без обработки добавленных команд. Следовательно, выходил из прерывания без запуска таймера, и второго прерывания уже не произойдет.
...и поглядите значения регистров отвечающих за таймер.
Если уж перед обработкой прерывания обнуляем регистр управления TCCR0, то может быть также следует поступать и со счетным регистром TCNT0? Т.е. обнулять и его. Ведь все равно в конце прерывания ему возвращается прежнее значение. Либо не возвращать значение потому, что все время обработки прерывания в нем так и лежит прежнее значение. Что посоветуете?
...что цель ассемблерных вставок - это изучение ассемблера?...
Нет. Началось с того, что решил хоть как-то уменьшить занимаемый объем кода, заменив особо тяжелые или долгие процедуры АСМ-вставками. А изучение... это уже само собой происходит. Не вижу смысла использовать в своей разработке чужие примеры, не понимая их! Стараюсь писать сам. С разумной (удобоваримой) помощью только туговато.
И мигание св/диодами так же... само собой получилось :-)

_________________
О человеке говорят не потоки изрыгаемых слов, а его дела и поступки.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Чт июл 06, 2017 20:02:32 
Собутыльник Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 651
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2708
Откуда: г. Чайковский
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Я не предлагал Вам использовать чужие примеры, хотя в них бывают оригинальные алгоритмы и могут быть очень полезными.
Lavad писал(а):
Что посоветуете?
Если Вам нужно попасть в прерывание наиболее точным интервалом времени, то вообще его не останавливать (но это все в зависимости от задачи).

_________________
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Чт июл 06, 2017 20:23:30 
Первый раз сказал Мяу!
Аватар пользователя

Зарегистрирован: Сб апр 20, 2013 22:56:52
Сообщений: 33
Рейтинг сообщения: 0
Я не предлагал Вам использовать чужие примеры,...
Чего это уже в штыки. :-) Я и не показывал на Вас пальцем :-). Это были мысли вслух о том, что стараюсь учиться.
...хотя в них бывают оригинальные алгоритмы и могут быть очень полезными.
Абсолютно согласен! Стараюсь, по мере извилин, их изучать.
Если Вам нужно попасть в прерывание наиболее точным интервалом времени, то вообще его не останавливать (но это все в зависимости от задачи).
Как раз наоборот. В прерывании отмеряются "точные" интервалы, а уж от них пляшет вся программа. Или я Вас не так понял?

У меня еще один вопрос возник. Если не трудно, помогите. В конце прерывания необходима команда RETI. Нет проблем! Return комментирую, RETI дописываю (это было несколько дней назад)... Первый же запуск программы привел ее в "неработоспособное" состояние. На дисплее замерло что-то половинчатое (от того, что могло быть там), сам дисплей сильно мерцал, НИ ОДНА кнопка не реагировала на нажатия. RESET-ы не помогали. Пришлось вернуть Return обратно. Что не так?

_________________
О человеке говорят не потоки изрыгаемых слов, а его дела и поступки.


Вернуться наверх
 
Выбираем индустриальные и медицинские источники питания MEAN WELL в открытом исполнении

Использование модульных источников питания открытого типа широко распространено в современных устройствах. Присущие им компактность, гибкость в интеграции и высокая эффективность делают их отличным решением для систем промышленной автоматизации, телекоммуникационного оборудования, медицинской техники, устройств «умного дома» и прочих приложений. Рассмотрим подробнее характеристики и особенности трех самых популярных вариантов AC/DC-преобразователей MW открытого типа, подходящих для применения в промышленных устройствах - серий EPS, EPP и RPS представленных на Meanwell.market.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Чт июл 06, 2017 20:40:21 
Собутыльник Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 651
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2708
Откуда: г. Чайковский
Рейтинг сообщения: 1
Медали: 1
Получил миской по аватаре (1)
Если бы штыки, то вставил бы какой-нибудь злой смайлик. Просто я дотошный зануда :)

Z_h_e писал(а):
Как раз наоборот. В прерывании отмеряются "точные" интервалы, а уж от них пляшет вся программа. Или я Вас не так понял?
Вы вошли в прерывание. Выключили таймер. В прерывании торчали некоторое неизвестное время и опять запустили таймер. Зачем его останавливать если таймер только для генерации события для прерывания? Кстати ознакомтесь с режимом СТС таймера, скорее всего то что Вам надо. Правда в меге8 у таймер0 такого режима нет.
Lavad писал(а):
Пришлось вернуть Return обратно. Что не так?
Это вопрос к Бейсику. Могу предположить. Комплиятор автоматически скомпиллил код в том числе для обработчика прерываний. Наверняка в начале обработчика идет сохранение некоторых данных на стек. Вы вставили команду reti, которая взяла адрес возврата со стека какой-то левый, так как SP указывает не на него.

Еще раз категорически советую, прежде чем писать вставки, напишите полностью несколько проектов на асме.

_________________
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Чт июл 06, 2017 20:59:30 
Друг Кота
Аватар пользователя

Карма: 51
Рейтинг сообщений: 2108
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 6998
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (2)
Цитата:
Справочник по программированию «Bascom-AVR»:
Чтобы обеспечить возврат из программы обработки с разрешением прерываний следует применить команду микроконтроллера RETI. Компилятор делает это автоматически - первая команда RETURN, встретившаяся после метки с именем вектора прерывания скомпилируется как команда микроконтроллера RETI. Чтобы такая автозамена произошла в нужном месте, даже применяя ассемблер, необходимо завершить его текст оператором Bascom RETURN.

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


Вернуться наверх
 
Распродажа паяльного оборудования ATTEN!
Паяльные станции, паяльники и аксессуары по самой выгодной цене.

По промокоду radiokot скидка 10%
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Чт июл 06, 2017 21:31:53 
Первый раз сказал Мяу!
Аватар пользователя

Зарегистрирован: Сб апр 20, 2013 22:56:52
Сообщений: 33
Рейтинг сообщения: 0
Справочник по программированию «Bascom-AVR»:...
Спасибо! Это читал ни раз! Именно поэтому решил проверить RETI! Но дальше:
..., встретившаяся после метки с именем вектора прерывания...
выбивает мне все мозги :-(. Ноль понятия.

_________________
О человеке говорят не потоки изрыгаемых слов, а его дела и поступки.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Чт июл 06, 2017 21:39:07 
Друг Кота
Аватар пользователя

Карма: 51
Рейтинг сообщений: 2108
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 6998
Откуда: Сердце Пармы
Рейтинг сообщения: 1
Медали: 2
Получил миской по аватаре (2)
тут как раз всё понятно: если вошел по прерыванию - потом ищет ретурн, чтобы обратить его в рети, эту работу ты за него сделал, а у него счетчик не сбросился и ему "под руку" попадется другой ретурн...

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Чт июл 06, 2017 22:22:14 
Первый раз сказал Мяу!
Аватар пользователя

Зарегистрирован: Сб апр 20, 2013 22:56:52
Сообщений: 33
Рейтинг сообщения: 0
...Вы вошли в прерывание. Выключили таймер. В прерывании торчали некоторое неизвестное время...
Дочитав до этого момента, дошло очевидное :-) Спасибо!
Тогда проверю другой вариант: не буду отключать/включать таймер в прерывании. Все равно прерывания каждые 200мс, а максимальный проход всего прерывания менее 8мс.
...Кстати ознакомтесь с режимом СТС таймера...
Вот придут заказанные 328-ые, тогда и углубимся.
...Наверняка в начале обработчика идет сохранение некоторых данных на стек. Вы вставили команду reti, которая взяла адрес возврата со стека какой-то левый, так как SP указывает не на него.
Если честно, то не понял, о чем речь. В начале обработчика идет сохранение регистра SREG и используемых РОН:
Спойлерpush r31
in r31 , sreg
push r31
push r0
push r16
и т.д..
И в конце возврат:
Спойлер...
pop r16
pop r0
pop r31
out sreg , r31
pop r31
Еще раз категорически советую, прежде чем писать вставки, напишите полностью несколько проектов на асме.
Не спорю! Возможно, Вы правы. Начал заниматься асм-вставками на рабочей конструкции потому, что своими "потом и нервами" программу создал, знаю, на что она способна и что от нее ждать. Т.е., рассуждаю так: заменяя какую-то бейсиковскую строку на асм, я уже знаю предназначение и результат этой строки. Следовательно, экспериментируя на ассемблере, уже знаю точно, ЧТО должен в результате получить. Может, сумбурно, но как-то так :-)

Добавлено after 24 minutes 39 seconds:
...прежде чем писать вставки, напишите полностью несколько проектов на асме.
Если уж начинать с белого листа... Например, на 297-ой странице код программы... Все эти DSEG-и, CSEG-и, вектора прерываний, инициализация контроллера... (в начале программы). Можете посоветовать какую-то конкретную литературу или ссылку, где ДОСТУПНЫМ пониманию чайника об этом рассказывается?

_________________
О человеке говорят не потоки изрыгаемых слов, а его дела и поступки.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Чт июл 06, 2017 23:29:53 
Говорящий с текстолитом
Аватар пользователя

Карма: 8
Рейтинг сообщений: 209
Зарегистрирован: Чт июн 10, 2010 20:11:19
Сообщений: 1520
Рейтинг сообщения: 1
Курс DiHalt'а, цикл на Схем.нет. Я лично осваивал по Ревичу, но народ считает его не лучшим.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Чт июл 06, 2017 23:50:18 
Первый раз сказал Мяу!
Аватар пользователя

Зарегистрирован: Сб апр 20, 2013 22:56:52
Сообщений: 33
Рейтинг сообщения: 0
Курс DiHalt'а, цикл на Схем.нет. Я лично осваивал по Ревичу,...
Спасибо! К DiHalt-у время от времени наведываюсь. В данный момент пережевываю одну из его статей по работе с ЕЕПРОМ. Не сразу воспринимаю инфу, но, да, согласен с вами - лучше это, чем ничего.
Книга Котова - что-то знакомое... Видимо, последний визит был при царе Горохе. Ознакомлюсь.
Ревич... Имеются две "Практическое программирование МК Atmel AVR на Ассемблере", 2008 и 2011 годов. Вроде, читабельно. Только недавно начал.
...но народ считает его не лучшим.
Спорный вопрос. То же самое мнение я много раз встречал о Белове. Как знать? Каждому по понятиям, что ли...

_________________
О человеке говорят не потоки изрыгаемых слов, а его дела и поступки.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пт июл 07, 2017 08:12:08 
Собутыльник Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 651
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2708
Откуда: г. Чайковский
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Lavad писал(а):
Если честно, то не понял, о чем речь. В начале обработчика идет сохранение регистра SREG и используемых РОН:

Что такое стек Вы уже знаете?
SP - это указатель стека.
PC - программый счетчик (счетчик команд)

Если МК выполняет вход в подпрограмму по команде call или уходит в обрабтчик прерывания, то он аппаратно сохраняет PC на стек (т.е. чтобы знать куда вернуться). SP уменьшается на размер занятых байт.

1) возникло событие от таймера. МК скинул адрес возврата на стек и ушел в обработчик прерывания.
2) Ваш язык верхнего уровня скомпиллил некий код. В начале входа в обработчик прерывания он скинул на стек некие регистры. При плохой степени оптимизации он скинул все регистры, даже неиспользуемые в обработчике. SP eще уменьшился
3) Потом Вы еще скинули на стек регистры, SP еще уменьшился
4) какой-то код
5) Вы восстановили регистры что скидывали на стек. SP увеличился до п.2
6') команда RETI. Берет адрес возврата из стека по адресу SP, SP увеличивается и загружает его в PC. Но SP не указывает на адрес возврата, МК прыгнул в неизвестное место программы.
6'') Оператор RETURN. Восстановил из стека данные из.п2. SP- теперь указывает на адрес возврата. Выполнил RETI.

Цитата:
...первая команда RETURN, встретившаяся после метки с именем вектора прерывания скомпилируется как команда микроконтроллера RETI. ...
Так что эта фраза из справочника некорректная или просто неполная.

Как я уже в третий раз говорю Баском не знаю, могут быть какие-то еще нюансы.

З.Ы. Я Вам не зря говорю, поглядите во что компиллятся операторы, сделайте это.

_________________
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пт июл 07, 2017 09:40:18 
Друг Кота
Аватар пользователя

Карма: 51
Рейтинг сообщений: 2108
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 6998
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (2)
это объяснение глюков мне больше нравится и понятно. — всё дело в нарушении очередноси извлечения данных из стека в случае прямого ассемблерного вмешательства.

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вт авг 08, 2017 17:31:43 
Встал на лапы
Аватар пользователя

Карма: 4
Рейтинг сообщений: 4
Зарегистрирован: Ср окт 15, 2014 12:45:46
Сообщений: 117
Откуда: Анапа
Рейтинг сообщения: 0
всем доброго времени. Помогите разобратся с АЦП в ATtiny13. Собрал в протеусе, написал код, все работает меряет и через 2 сдвиговых выдает результат измерений в чистом (двоичном) виде. Вопрос: как пересчитать значения этого кода - это %, разность или напряжение в двоичной форме?

Attiny 13;
Proteus 8.
код правда без украшательств, я его еще ковыряю..

Спойлер;==============
; Main.asm file generated by New Project wizard
;
; Created: Пн авг 7 2017
; Processor: ATtiny13
; Compiler: AVRASM (Proteus)
;==============

;==============
.org 0 ;Задание нулевого адреса старта программы
rjmp reset ;Безусловный переход к метке reset
.org 9 ;Задание адреса прерывания по окончанию преобразования АЦП
rjmp ADC_complete;Безусловный переход к метке ADC_complete

reset: ;Начало раздела инициализации контроллера
ldi r16,RAMEND ;Загрузка в регистр r16 адреса верхней границы ОЗУ
out SPL, r16 ;Копирование значения из r16 в регистр указателя стека SPL
ldi r16,0b11110111;Загрузка в r16 единиц в нулевой и четвертый биты
out DDRB,r16 ;Переключение выводов PB0 и PB4 на выход
;ldi r16,(1<<ADLAR)|(1<<MUX0)|(1<<MUX1);См. описание программы
ldi r16,(1<<MUX0)|(1<<MUX1);См. описание программы
out ADMUX,r16 ;Копирование из r16 в ADMUX
ldi r16,(1<<ADEN)|(1<<ADSC)|(1<<ADIE)|(1<<ADPS1);См.опис.
out ADCSRA,r16 ;Копирование из r16 в ADCSRA
ldi r17,0
sei ;Глобальное разрешение прерываний

main: ;Основной цикл программы

ldi r16,(1<<ADEN)|(1<<ADSC)|(1<<ADIE)|(1<<ADPS1);См.опис.
out ADCSRA,r16 ;Копирование из r16 в ADCSRA


ldi r20,255
d:
dec r20
brne d
rcall shift

rjmp main ;Конец основного цикла программы

ADC_complete:;Начало обработчика прерывания от АЦП
in r17,ADCL
in r16,ADCH ;Копирование в регистр r16 результата преобразования

reti ;Возврат из прерывания

shift:
cbi portb,0
ldi r19,16
mov r18,r16
mov r21,r17
sh1:
sbrs r18,7 ;Если 7-й бит в регистре r16 равен 1, пропустить след. строку
cbi PORTB,1 ;Установить 4-й бит PORTB (выключить LED2)
sbrc r18,7 ;Если 7-й бит в регистре r16 равен 0, пропустить след. строку
sbi PORTB,1 ;Сбросить 4-й бит в регистре PORTB (включить LED2)
nop
nop

sbi portb,0
cbi portb,0

rol r21
rol r18

dec r19
nop
brne sh1

cbi portb,2
sbi portb,2
cbi portb,2
ret


Вложения:
ADC_volt.zip [100.28 KiB]
Скачиваний: 215

_________________
Если я чего-то не знаю, это не говорит о моем невежестве, а только о том, что раньше этот вопрос лежал вне сферы моих интересов.
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вт авг 08, 2017 18:25:58 
Собутыльник Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 651
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2708
Откуда: г. Чайковский
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Jetetex писал(а):
Вопрос: как пересчитать значения этого кода - это %, разность или напряжение в двоичной форме?
Вы спрашиваете что значит код АЦП?

_________________
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вт авг 08, 2017 18:31:52 
Встал на лапы
Аватар пользователя

Карма: 4
Рейтинг сообщений: 4
Зарегистрирован: Ср окт 15, 2014 12:45:46
Сообщений: 117
Откуда: Анапа
Рейтинг сообщения: 0
да.
Мои мысли таковы - опорное напр (5 вольт ) / 2^10 (10 разр ацп) = некое напряжение (0.0048 вольт). Затем результат работы ацп умножаем на эти самые 0.0048 и получаем измеренное напряжение.

Где я ошибся? (просто не мог не ошибится :) )

_________________
Если я чего-то не знаю, это не говорит о моем невежестве, а только о том, что раньше этот вопрос лежал вне сферы моих интересов.


Последний раз редактировалось Jetetex Вт авг 08, 2017 18:37:09, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вт авг 08, 2017 18:49:00 
Собутыльник Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 651
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2708
Откуда: г. Чайковский
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Так то в ДШ написано как считать. Код 0 - это ноль на АЦП. Код 1023 - это напряжение на АЦП >= ИОН. 512 - значит половина ИОН.

Добавлено after 12 minutes 57 seconds:
Jetetex писал(а):
Где я ошибся?
А Вы и не написали, что сделали, что ожидали и что получили.

_________________
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вт авг 08, 2017 19:09:18 
Встал на лапы
Аватар пользователя

Карма: 4
Рейтинг сообщений: 4
Зарегистрирован: Ср окт 15, 2014 12:45:46
Сообщений: 117
Откуда: Анапа
Рейтинг сообщения: 0
Пока писАл вопросы и измывался над Proteus'ом - разобрался. максимальное значение регистров результата = ИОН = 2047 (2^1+2^2+2^3+...+2^9+2^10 = 00000011 11111111 ) таким образом самый младший бит, тот который 2^1, имеет значение 0.0024 вольта, самый старший 2^10 = 2.46. Далее переводим умножая 0.0024 на десятичный эквивалент полученого результата.

Тоесть
..
512 = 25% ИОН
..
1024 = 50%
..
1536 = 75%
2047 = 100%

PS. С ДШ у меня проблемы. Она все на англицком.

_________________
Если я чего-то не знаю, это не говорит о моем невежестве, а только о том, что раньше этот вопрос лежал вне сферы моих интересов.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вт авг 08, 2017 19:19:17 
Собутыльник Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 651
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2708
Откуда: г. Чайковский
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Максимальное 10ое число это 1023. Как Вы 2047 получили?

Вот формула из ДШ, тут обычная математика.
Изображение

Правда мне непонятно почему в формуле 1024, а не 1023.

Добавлено after 1 minute 11 seconds:
Цитата:
Мои мысли таковы - опорное напр (5 вольт ) / 2^10 (10 разр ацп) = некое напряжение (0.0048 вольт). Затем результат работы ацп умножаем на эти самые 0.0048 и получаем измеренное напряжение.
Правильные же мысли были, не мудрите.


Вложения:
adc.gif [1.61 KiB]
Скачиваний: 774

_________________
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вт авг 08, 2017 19:29:35 
Встал на лапы
Аватар пользователя

Карма: 4
Рейтинг сообщений: 4
Зарегистрирован: Ср окт 15, 2014 12:45:46
Сообщений: 117
Откуда: Анапа
Рейтинг сообщения: 0
Максимальное 10ое число это 1023. Как Вы 2047 получили?


Мне самому теперь не понятно. :oops:

_________________
Если я чего-то не знаю, это не говорит о моем невежестве, а только о том, что раньше этот вопрос лежал вне сферы моих интересов.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 7956 ]     ... , , , 306, , , ...  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 21


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y