Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Измерения напряжения во времини
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему
roman@
Привет, я начал изучать мк и может мой вопрос глуп ,но кто может дайте совет .Мне надо сделать измерения напряжения во времени с помощью микроконтроллера Atmega16, как можна фиксировать время когда АЦП завершилось и передать результат ацп и время на ПК, и что б счет при этом продолжался? Я в программирование последовательного интерфейсу мк не силен и использую передачу результату на lpt в прерыванию ацп.
domowoj
Если я правильно понял ваш вопрос.
Нужно организовать часы реального времени программно, используя таймер2 в асинхронном режиме
или аппаратно-програмно, используя внешнюю м/сх. реального времени (типа PCF8583) и при достижении заданного времени запускать АЦП.
По завершении работы АЦП отправлять результат и текушее время в ПК.

Есть вариант когда ПК в нужное время запрашивает ваше устройство(а).
kalimusk
[quote name='roman@' date='Apr 18 2008, 00:12' post='398596']
как можна фиксировать время когда АЦП завершилось и передать результат ацп и время на ПК

Экзотика в 4 номере журнала Радио. Там время получают из системы GPS!!!
svs39
при обмене данными ПК передает в МК текущее время для коррекции хода часов
roman@
Я хочу сделать такую зависимость чтоб показывало : сделало 1 ацп это 0с,
второе это например 3с и так дали. И мне интересно будет ли считать таймер когда попаду в прерывание ацп и когда передаю данные на ПК в этом же прерывание .То есть передал первой результат, завершилось второе ацп и хочу передать это время когда завершилось второе (время которое истекло после первого), и так дале …
Laserr
а может, проще фиксировать время уже на ПК по получению данных?
Maik-vs
Цитата(roman@ @ Apr 18 2008, 20:37) *
Я хочу сделать такую зависимость чтоб показывало : сделало 1 ацп это 0с,
второе это например 3с и так дали. И мне интересно будет ли считать таймер когда попаду в прерывание ацп и когда передаю данные на ПК в этом же прерывание .То есть передал первой результат, завершилось второе ацп и хочу передать это время когда завершилось второе (время которое истекло после первого), и так дале …

Разумеется, таймер считает независимо ни от чего. Но при выполнении кода в прерывании все прерывания запрещены. Поэтому, если долго "сидеть" в прерывании, можно "проспать" прерывания от других источников - от таймера, например. То есть флаг запроса на прерывание от таймера установится когда нужно, а вот процедура обработки прерывания начнётся, когда будет установлен бит I регистра SREG. Обычно, если нужно измерять через какой-то интервал, делается так: Обработчик прервания по таймеру запускает измерение. Обработчик прерывания по окончанию преобрахования АЦП выдаёт чего намерял. Всё. В остальное время выполняется основная программа ну или можно уйтив sleep если делать нечего - будет экономиться потребление тока.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.