Перейти к содержанию

Adc Atmega8


Dronya

Рекомендуемые сообщения

МК ATmega8, задействован только один канал.

При непрерывном преобразовании нужно ли разрешать прерывания АЦП?

И ещё такой вопрос. Можно ли в режиме одиночного преобразования запускать АЦП (ADSC=1) один раз в 1 мсек, например в прерываниях таймера ТС0. Сделать 16 измерений, все 16 результатов просуммировать и сумму сдвинуть вправо на 4 разряда. Такими действиями можно убрать колебания 2 мл разрядов АЦП? И ещё: нужно ли потом результат обрабатывать по алгоритму скользящего среднего?

Может туманно написал, так извините

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

Как работать с АЦП, с прерываниями или по опросу, зависит от Ваших идей по алгоритму. Могу только сказать одно.

Построение системы РЕАЛЬНОГО ВРЕМЕНИ с программным опросом периферии - это не просто дурной тон, а форменное БЕЗОБРАЗИЕ... Ну кнопки - еще куда ни шло... но АЦП... :(:(:(

戦う前に相手のベルトの色に注目

Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Сделать 16 измерений, все 16 результатов просуммировать и сумму сдвинуть вправо на 4 разряда.

т.е. сумма 16 чисел делиться на 16, результат среднее арифметическое. округлённое ...

Паять не мешки ворочать.

Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Позволю себе не согласиться с уважаемым my504.

И вот почему.

Если у человека стоит задача просто мерять и посчитать, то какой смысл мудрить с алгоритмом, когда все просто решается "в лоб"?

Хороший, дурной тон...

Если решение приемлемо для данной конкретной задачи и обеспечивает выполнение функций возлагаемых на устройство - то это уже можно считать хорошим тоном. Частенько мы забываем, что на МК делается устройство которое выполняет вполне определенные операции. И только-то.

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

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

Есть конечно вариант со спящим режимом " ADC Noise Reduction " при работе АЦП на измерение. Что стоит задачей? Измерение?

Вот пжлста! И не надо извращаться... :rolleyes:

Ссылка на комментарий
Поделиться на другие сайты

В свою очередь возражу уважаемому alts .

Если человек задает вопросы подобного уровня, это означает, что он только начинает работать в этой области.

ПОЭТОМУ.

Очень желательно придерживаться определенных принципов проектирования, иначе внешне решенная задача может оказаться ТУПИКОМ. Из которого выход: ВСЕ ПЕРЕДЕЛАТЬ.

Вот Вы говорите:

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

А автор отдает себе отчет в том, что при большинстве потоковых преобразований необходимо выдерживать интервал между отсчетами с высокой точностью. Даже система прерываний порой имеет переменную латентность.

Кроме того есть общая эстетика алгоритма...

Но мое мнение в предыдущем посте было, конечно, условно:

Как работать с АЦП, с прерываниями или по опросу, зависит от Ваших идей по алгоритму.

Я не могу знать задач автора и методов, которыми он их решает... Конечно, короткий ответ автору без желания что либо прояснять: НЕ ОБЯЗАТЕЛЬНО.

Просто мой личный опыт, пусть и скромный, на мой взгляд, говорит мне о необходимости В ЛЮБОМ СЛУЧАЕ создавать независимые от остальной программы программные модули. Во первых - меньше коллизий, во вторых - решения получаются тиражируемые в других разработках, в третьих - легко читается алгоритм...

Изменено пользователем my504

戦う前に相手のベルトの色に注目

Ссылка на комментарий
Поделиться на другие сайты

Да в принципе согласен... :rolleyes:

Просто я иногда не понимаю тех кто даже простую линию из пункта А в пункт Б без "подтанцовки" провести не может!

Конечно человек только начинает, и путь его к оптимизации алгоритма еще долого и тернист будет. :rolleyes:

Особенно с прерываниями, а если они еще и асинхронно с другими процессами работают... ;)

Ссылка на комментарий
Поделиться на другие сайты

  • 2 месяца спустя...

Вот пример для ATmega8535 АЦП 8-бит

.include "c:\Program Files\Atmel\AVR Tools\AvrAssembler2\Appnotes\m8535def.inc"

;=========================================================

.MACRO outi

ldi r16,@1

out @0,r16

.ENDMACRO

.org 0x00

rjmp RESET

.org ADCCaddr

;=========================================================

ADC1:

in r16,ADCH ;в r16 результат преобразования АЦП

reti

;=========================================================

RESET: wdr ;сброс сторожевого таймера

outi WDTCR,0x0A ;Watchdog enable, 64mS

outi SPH,HIGH(RAMEND) ;определение начала стека в ОЗУ

outi SPL,LOW(RAMEND)

outi PORTA,0x00 ;переключение PA на ввод

outi DDRA,0x00

sei ;разрешение прерываний

outi ADMUX,0x27 ;переключаем мультиплексор на PA7

outi ADCSRA,0xEF ;конфигурация АЦП, пуск АЦП

;=========================================================

Loop: wdr ;сброс сторожевого таймера

rjmp Loop

Если непонятны настройки читай datasheet.

Проверено в железе.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...