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

 
 
> Счетчик на Mega128
Ojo
сообщение Jun 26 2008, 15:54
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 23
Регистрация: 16-06-05
Пользователь №: 6 070



Счетчик на Mega128

Пожалуйста, подскажите, как сделать следующую вещь? Есть линия для анализа. На ней могут быть логический ноль (почти всегда) или логическая 1 (редко, небольшими импульсами различной длины от 1 мсек до 10 мсек). Задача состоит в том, чтобы подсчитывать какова длительность всех импульсов логической 1 за текущую прошедшую секунду. Частота Меги 16MHz. Точность измерений:10% устроит.

Самое очевидное решение. Повесить исследуемую линию на любую ножку прерывания Мегию. При возникновении на ней логической 1 (и как следствия прерывания) засекать время (организовав внутренний таймер), При возникновении логического 0 на ней подсчитывать время импульса и прибавлять к переменной ВСЕГО.

Данное решение не подходит. Т.к. в силу специфики прошивки устройства Мега может запретить прерывания на длительное время (до 10 мсек).

Наверняка есть возможность решить эту задачу через таймеры/счетчки.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
zhevak
сообщение Jun 26 2008, 18:23
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 723
Регистрация: 29-08-05
Из: Березовский
Пользователь №: 8 065



Это только идея:

А если попытаться решать задачу с помощью управляемого генератора стабильного тока, который включается на время длительности единичного импульса. От этого генератора заряжается конденсатор.
Заряжается только тогда, когда присутствует единичный сигнал. Когда ноль -- генератор отключен от конденсатора.

По истечении секунды, с помощью меги-ной АЦП оценивается уровениь напряжения на конденсаторе. Затем конденсатор разряжается (с помощью внешнего полевого транзистора, например), и процесс накопления начинается заново.

Такой подход позволит меге безболезненно отвлекаться на любые прерывания и в любом количестве на протяжение всего процесса накопления. Минус: потребуется несколько дополнительных элементов в схеме.

Сообщение отредактировал zhevak - Jun 26 2008, 18:29


--------------------
Хочешь рассмешить Бога -- расскажи ему о своих планах!
Go to the top of the page
 
+Quote Post
Ojo
сообщение Jun 27 2008, 09:13
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 23
Регистрация: 16-06-05
Пользователь №: 6 070



Цитата(zhevak @ Jun 26 2008, 22:23) *
Это только идея:

А если попытаться решать задачу с помощью управляемого генератора стабильного тока, который включается на время длительности единичного импульса. От этого генератора заряжается конденсатор.
Заряжается только тогда, когда присутствует единичный сигнал. Когда ноль -- генератор отключен от конденсатора.

По истечении секунды, с помощью меги-ной АЦП оценивается уровениь напряжения на конденсаторе. Затем конденсатор разряжается (с помощью внешнего полевого транзистора, например), и процесс накопления начинается заново.

Такой подход позволит меге безболезненно отвлекаться на любые прерывания и в любом количестве на протяжение всего процесса накопления. Минус: потребуется несколько дополнительных элементов в схеме.


Красиво и работать будет! Но для наших целей слишком мудрено. Думаю, данный метод незаменим, если скачек на измеряемой линии превышает или сопоставим со временем одного такта процессора. Все равно, спасибо.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 15:46
Рейтинг@Mail.ru


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