реклама на сайте
подробности

 
 
> Параллельная работа таймера и АЦП
Igoreha027
сообщение Apr 9 2007, 11:42
Сообщение #1





Группа: Новичок
Сообщений: 3
Регистрация: 1-09-06
Пользователь №: 20 007



Пробовал сделать прибор по "грубой" оценке АТХ блоков питания. Идея была такова: при нажатии кнопки прибор отслеживал напряжения и время прихода сигнала Power Good в mS (когда все напряжения установились в 5% коридоре). Время PG фиксировалось и прибор переходил в режим измерения, если напряжения выходили за коридор, то время не мерялось и выдавалось индикация отклонившегося параметра.
Проблема возникла в невозможности параллельной работы таймера-счетчика и АЦП. Время неправильно показывает.
Подскажите как выйти из такой ситуации или где почитать можно.
В примере все файлы.
Прикрепленные файлы
Прикрепленный файл  ADC_7110.zip ( 40.29 килобайт ) Кол-во скачиваний: 60
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
arttab
сообщение Apr 9 2007, 12:36
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 432
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 371



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


--------------------
OrCAD, Altium,IAR, AVR....
Go to the top of the page
 
+Quote Post
Igoreha027
сообщение Apr 9 2007, 15:25
Сообщение #3





Группа: Новичок
Сообщений: 3
Регистрация: 1-09-06
Пользователь №: 20 007



Цитата(arttab @ Apr 9 2007, 14:36) *
открыть проек оркада не смог.
у меня в большинстве устройств на атмеле работают и ацп и таймер. Интервалы измерений привязанны к временным интервалам,
Пример: наждые 2 мсек. запускаетися ацп. по окончанию преобразования идет обработка результата измерения. Время преобразования меньше 2 мсек.


Проект не в оркаде, а в Протеусе. У меня шесть каналов АЦП и точность показаний времени до 1 mS, так что 2х6=12 mS это уже не то
Go to the top of the page
 
+Quote Post
=GM=
сообщение Apr 9 2007, 21:55
Сообщение #4


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(Igoreha027 @ Apr 9 2007, 12:25) *
Проект не в оркаде, а в Протеусе. У меня шесть каналов АЦП и точность показаний времени до 1 mS, так что 2х6=12 mS это уже не то

Действительно, стоит переделать прерывание от таймера. Поставьте в нём прежде всего запуск преобразования АЦП, потом подсчет вашего времени s, проверка и установка флага, что преобразование началось и никакой п/п show(). В основной программе надо подождать установленного флага, обработать соответствующий канал и сбросить флаг. Преимуществом такого подхода будет то, что вызов АЦП будет происходить на регулярной основе (2 мс или сколько вам там надо), не зависящей от времени выполнения подветвей вашей основной программы.

Вместо конструкции for и if поставьте switch, будет ещё компактнее.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st August 2025 - 06:54
Рейтинг@Mail.ru


Страница сгенерированна за 0.01406 секунд с 7
ELECTRONIX ©2004-2016