Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ATmega AVR
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/40: Рейтинг темы: голосов - 40, средняя оценка - 4.75
moxpoymi
1

Программа записи пачки импульсов

28.10.2013, 13:37. Показов 7402. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Приветствую!
Столкнулся со следующей задачей. На ногу микроконтроллера (ATMEGA128 Fраб=14.7456Мгц) приходит сигнал(пачка импульсов ) как на картинке. Как сохранить полностью в память данных МК значения одной пачки?
У кого какие предложение ? Желательно с примером на ассемблере

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.10.2013, 13:37
Ответы с готовыми решениями:

Сигналоподобная помеха, пачка импульсов, спектр пачки импульсов
Здравствуйте форумчане. Нужна помощь. Необходимо сравнить по ширине спектра при разном времени...

Пачки синусоидальных импульсов
Добрый день! Подскажите как можно в proteus смоделировать синусоидальный сигнал, только чтобы он...

построение пачки прямоугольных импульсов
как построить то что изображено на рисунке в matlab'е?

Генерация пачки ЛЧМ-импульсов, отраженных от цели
Здравствуйте. Сгенерировал пачку из 100 ЛЧМ имульсов (длительность импульса 1 мкс, период 20 мкс):...

Программа для обнаружения и коррекции "пачки" ошибок
Доброе время суток! Кто может помочь с реализацией программы для обнаружения и коррекции "пачки"...

17
MCSD: APP BUILDER
8794 / 1073 / 104
Регистрация: 17.06.2006
Сообщений: 12,602
28.10.2013, 13:43 2
Не очень понял - длительность импульсов известна, количество тоже, что сохранять-то?
0
moxpoymi
28.10.2013, 13:54 3
Количество единиц (высокий уровень) и нулей (низкий). Так большой вопрос что передается пачка именно так. После записи надо будет как то еще передать все это на компьютер (в терминалку) с перевод в ASCII формат
0 / 0 / 0
Регистрация: 27.02.2010
Сообщений: 196
28.10.2013, 13:55 4
Подозреваю, что человек ищет пример записи данных в EEPROM.
0
omx
28.10.2013, 13:56 5
А где там 0 и 1? Там импульсы. Что есть значение пачки?

Цитата Сообщение от kirmit
Подозреваю, что человек ищет пример записи данных в EEPROM.
Запись в еепром раз в 440 мкс?
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
28.10.2013, 13:57 6
Цитата Сообщение от moxpoymi
Количество единиц (высокий уровень) и нулей (низкий).
(Количество нулей) = (количество единиц) - 1.
0
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
28.10.2013, 13:59 7
Цитата Сообщение от kirmit
Подозреваю, что человек ищет пример записи данных в EEPROM.
Вот это вряд ли. Зачем тереть ресурс EEPROM (который ещё и в скорости ограничен), когда у Меги128 много SROM.
0
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
28.10.2013, 14:02 8
moxpoymi, если надо просто посчитать количество пришедших импульсов, то подавайте их на пин - счётный вход таймера. Таймер сам всё сосчитает, из регистра TCNT заберёте результат и после преобразования числа в символьный вид отправите в UART.
0
0 / 0 / 0
Регистрация: 02.10.2012
Сообщений: 1,946
28.10.2013, 14:04 9
Судя по всему ТС не уверен , что там 128 импульсов в пачке , что их может быть меньше. Но 128-N дает нужный результат +(-1) указанная выше
0
omx
28.10.2013, 14:10 10
Цитата Сообщение от OtyxPM
moxpoymi, если надо просто посчитать количество пришедших импульсов, то подавайте их на пин - счётный вход таймера. Таймер сам всё сосчитает, из регистра TCNT заберёте результат и после преобразования числа в символьный вид отправите в UART.
Не верится мне что задача настолько сложная, Количество импульсов известно, значит информация содержится в их форме и длительности с точностью в наносекунд. Значит надо поставить внешний АЦП на гигасэмпл, оцифровывать, фильтровать, измерять длительность и форму импульсов, дальше по желанию.
0 / 0 / 0
Регистрация: 27.02.2010
Сообщений: 196
28.10.2013, 14:33 11
Цитата Сообщение от omx
Запись в еепром раз в 440 мкс?
Цитата Сообщение от OtyxPM
Вот это вряд ли. Зачем тереть ресурс EEPROM (который ещё и в скорости ограничен), когда у Меги128 много SROM.
Ну да, виноват, недоглядел :)
0
moxpoymi
28.10.2013, 14:55 12
Уважаемый,OtyxPM, не могли быть показать (либо дать ссылку) код на ассемблере, реализующий ваш ответ выше
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
28.10.2013, 15:03 13
Цитата Сообщение от moxpoymi
Уважаемый,OtyxPM, не могли быть показать (либо дать ссылку) код на ассемблере, реализующий ваш ответ выше
Так всё-таки подсчёт импульсов? А то, если нужен замер длительностей, тогда сигнал надо подавать на другой вход таймера - измерительный ICP1.

Примеры кода на ассемлере и Си есть в даташитах на AVR (глава про 16-битовый таймер), а также в специальных документах от Atmel - Application Notes (например, AVR135, AVR130). И то, и другое - на сайте atmel.com, в разделе "Документы".
0
0 / 0 / 0
Регистрация: 24.12.2011
Сообщений: 2,752
28.10.2013, 19:14 14
Тут где то ошибка. Длительность пачки из 128 импульсов 0,4мкс = 400нс. Период одного импульса ~ 3,125нс, это 32МГц.
Ловить уровни и раскладывать по регистрам с такой частотой таймер не сможет.
0
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
28.10.2013, 19:54 15
Цитата Сообщение от omokost
Тут где то ошибка. Длительность пачки из 128 импульсов 0,4мкс = 400нс. Период одного импульса ~ 3,125нс, это 32МГц.
Имелось в виду, что длительность одного "полуимпульса" равна 0.4мкс. На картинке есть горизонтальная ось времени - там однозначно подписано.
Получается, что период следования импульсов в пачке - 0.8мкс, частота - соответственно, 1.25 МГц.
0
MCSD: APP BUILDER
8794 / 1073 / 104
Регистрация: 17.06.2006
Сообщений: 12,602
28.10.2013, 20:24 16
так ТС так и не удосужился ответить толком, что он собрался измерять, если всё известно изначально?
0
0 / 0 / 0
Регистрация: 31.01.2013
Сообщений: 1,625
29.10.2013, 04:54 17
Какая разница, человеку НАДО.
Если надо количество импульсов, то настроить таймер как счетчик и подать сигнал на входную ногу этого счетчика. Программа должна косвенно контролировать его значение и принимать решение (с помощью другого таймера), что пачка кончилась. Ведь условий окончания пачки не озвучено. Значит, конец пачки наступает примерно тогда, когда значение счетчика не меняется, допустим, в течение 10 мкс.
А если надо еще и длительности импульсов, то ни один контроллер не успеет это измерить. В этом случае поможет запоминающий осфиллограф.
0
0 / 0 / 0
Регистрация: 22.08.2009
Сообщений: 525
29.10.2013, 08:18 18
Цитата Сообщение от yiv91
Какая разница, человеку НАДО.
Если надо количество импульсов, то настроить таймер как счетчик и подать сигнал на входную ногу этого счетчика. Программа должна косвенно контролировать его значение и принимать решение (с помощью другого таймера), что пачка кончилась. Ведь условий окончания пачки не озвучено. Значит, конец пачки наступает примерно тогда, когда значение счетчика не меняется, допустим, в течение 10 мкс.
А если надо еще и длительности импульсов, то ни один контроллер не успеет это измерить. В этом случае поможет запоминающий осфиллограф.
Так а что именно человеку НАДО? Как отвечать-то? Иначе все ответы - домыслы. Или нет?
0
29.10.2013, 08:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.10.2013, 08:18
Помогаю со студенческими работами здесь

Программа распределения импульсов
Необходимо составить схему,алгоритм и программу распределения импульсов. Вобщем так думаю, на вход...

Источник трапециедальных импульсов со временем нарастания импульсов порядка микросекунд в Matlab
Здравствуйте! В матлабе возникла такая проблема. Необходимо создать генератор импульсов...

Программа на ассемблере. Генераторы импульсов
Нужно написать на ассемблере такую прогу: Генераторы импульсов заданной скважности: - на выходе...

Программа генератор импульсов с COM-порта
Подскажите программу или выложите, чтобы с ножек COM порта (естественно не со всех) можно было...

Последовательность прямоугольных импульсов с заданным периодом и длительностью импульсов
Здравствуйте! Я рисую прямоугольные импульсы с требуемой длительностью, периодом и их...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru