Вверх ↑
Этот топик читают: Гость
Ответов: 1397
Рейтинг: 50
#1: 2006-10-31 10:19:37 ЛС | профиль | цитата
Может кто нибудь подскажет, возможно ли создание на HIASM счетчика импульсов. Импульсы поступают на вход звуковой карты. Частота до 20Гц. Если возможно подскажите пожалуйста примерный алгоритм.
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
vip
#1.1контекстная реклама от партнеров
Ответов: 8888
Рейтинг: 823
#2: 2006-10-31 14:30:52 ЛС | профиль | цитата
Валерий, BASS_Record выдаёт поток звуковых данных длиной 0,1 сек, их можно преобразовать в строку и работать по байтно, можно в InLineCode преобразовать и выдавать с частотой дискретизации - анализируйте свои щелчки на здоровье
code_515
карма: 19

0
файлы: 1code_515.txt [2.5KB] [529]
Ответов: 1397
Рейтинг: 50
#3: 2006-10-31 20:18:57 ЛС | профиль | цитата
Большое спасибо Леонид за помощь. Но можно ли чуть чуть поподробнее. Я запустил програмку, но так и не понял каким образом преобразовать все это в простые числа.
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
Ответов: 3851
Рейтинг: 159
#4: 2006-10-31 22:53:59 ЛС | профиль | цитата
Ну, вот вид с боку code_520 а теперь обрабатывай эти числа в соответствии с твоим пониманием "импульсов" на входе звуковой карты. Только имей в виду, что карта умеет оцифровывать звук, но не научена чувствовать постоянное напряжение. Т.е. импульсы не будут прямоугольными (после оцифровки) несмотря на то, что на входе, они такими были.
карма: 0
начавший
0
файлы: 1code_520.txt [2.3KB] [364]
Ответов: 1397
Рейтинг: 50
#5: 2006-11-01 14:51:01 ЛС | профиль | цитата
Спасибо Андрею за вид сбоку, стало гораздо понятней. Буду разбираться.
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
Ответов: 1397
Рейтинг: 50
#6: 2006-11-11 21:08:40 ЛС | профиль | цитата
При разработке счетчика импульсоа застопорился на такой проблеме. Вместо импульса получаю число, например (2342 или 123 или 200 и т. д.) Необходимо эти числа заменить на нажатия кнопки. Чем это можно осуществить?
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
Ответов: 3851
Рейтинг: 159
#7: 2006-11-11 21:17:30 ЛС | профиль | цитата
Валерий писал(а):
При разработке счетчика импульсоа застопорился на такой проблеме. Вместо импульса получаю число, например (2342 или 123 или 200 и т. д.) Необходимо эти числа заменить на нажатия кнопки. Чем это можно осуществить?
подробнее можно?
    кнопка одна?
    она/и на компьютерной клавиатуре или в другом месте?
    значение числа соответствует колличеству нажатий или номеру кнопки или это некий предельный уровень для решения - нажимать/ненажимать?
    что вообще выражает число?
карма: 0
начавший
0
Ответов: 1397
Рейтинг: 50
#8: 2006-11-11 22:37:43 ЛС | профиль | цитата
Можетя выразился непонятно поэтому поппробую уточнить. В процессе измерения импульсов со входа звуковой платы в схеме получаю величину ипульса, т.е. различные числа ( 2323, через некоторый отрезок времени - 234 и т.д.), чтобы эти числа преобразовать в частоту, необходимо измерить время между ними и разделить на 3600, тогда можно и получить искомую частоту. Я столкнулся с тем, что эти числа каким то образом надо направить на включение счетчика времени. Немогу догнать как это сделать.
П.С. Андрей, это же видно по твоей схеме. На нее я и опираюсь.
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
Ответов: 8888
Рейтинг: 823
#9: 2006-11-12 00:24:32 ЛС | профиль | цитата
Валерий, отрисовка графика 64 раза/сек, если надо почаще, заменить Timer на Tread с 1 мсек задержкой, остальное понятно из схемы
code_559
карма: 19

0
файлы: 1code_559.txt [3.9KB] [531]
Ответов: 1397
Рейтинг: 50
#10: 2006-11-12 16:02:12 ЛС | профиль | цитата
Спасибо Леониду за помощь, только в этой схеме (code 504) мы получаем целое количество импульсов пришедших за определенный отрезок времени (в данном случае за минуту). Я же пытаюсь измерить временной промежуток между импульсами и его уже преобразовать в частоту импульсов. Алгоритм примерно таков.
1. Приходит первый импульс - включается счетчик времени.
2. Приходит второй импульс, вычисляется временной промежуток между этими импульсами и вычисляется значение частоты №1. Одновременно включается счетчик времени для расчета промежутка времени между вторым и третим импульсом.
3. Приходит третий импульс - вычисляется временной промежуток между вторым и третим импульсами и вычисляется значение частоты №2. Вычисляется среднее арифметическое частот №1 и №2. Одновременно включается счетчик времени для расчета промежутка времени между третим и четвертым импульсом.
4. И так далее..
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
Ответов: 3851
Рейтинг: 159
#11: 2006-11-12 22:00:16 ЛС | профиль | цитата
Валерий, я всё-таки на понимаю - нафига измерять время, когда тебе заранее известна частота дискретизации (в моём варианте - "code_520" это 100 раз в секунду) ? Достаточно подсчитывать колличество выплюнутых звуковухой чисел между соседними фронтами - это и будет периодом (если конечно импульсы "ровные")
карма: 0
начавший
0
Ответов: 1397
Рейтинг: 50
#12: 2006-11-13 13:43:35 ЛС | профиль | цитата
Спасибо, похоже это мне и нужно. Вопрос Леониду:
А без вставки кода обойтись компонентами не получится?
Почему при нажатии на пуск, счетчик должен ждать как минимум двух импульсов для вычисления частоты, а частота уже считается?
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
Ответов: 8888
Рейтинг: 823
#13: 2006-11-13 15:04:14 ЛС | профиль | цитата
Валерий,
1. Приходит первый импульс - включается счетчик времени.
2. Приходит второй импульс, вычисляется временной промежуток между этими импульсами и вычисляется значение частоты №1.

сами себе ответили
Так как InLineCode нужен для перевода звукового потока в последовательность чисел, то и сделал нужную обработку там же, никаких проблем с обработкой на компонентах нет, всё можно сделать.
карма: 19

0
Ответов: 1397
Рейтинг: 50
#14: 2006-11-13 15:30:34 ЛС | профиль | цитата
Все дело в том, что схема code 566 работает следующим образом. При нажатии на пуск. схема ждет первого импульса и когда он приходит считает частоту. Но не понятно на чем она основывается? Ведь второго импульса еще нет?
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
Ответов: 8888
Рейтинг: 823
#15: 2006-11-13 16:41:45 ЛС | профиль | цитата
Валерий, счёт ведётся по заднему фронту импульса (переменная J в коде), с каждым новым значением звуковых данных (а они поступают с частотой дискретизации, хотя и с задержкой на 0,1 сек) увеличивается на 1, время между импульсами равно величине этой переменной делённой на частоту дискретизации: Т=J/44100, соответственно частота импульсов F=44100/J
карма: 19

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)