Страница 1 из 1

Выход и приём звуковухи в одном цикле

Добавлено: 27 сен 2018, 22:26
Иван2019
Всем привет! У меня есть программа в которой в одном файле собран генератор и анализатор сигнала(типа осциллографа). Задействованы выход и вход звуковой карты ПК. Для этого были открыты два цикла. А можно ли все это в одном цикле собрать и если да, то как??? когда я их тупо сбрасываю в один цикл, получается на осциллографе обрезанная синусоида.. что делать? фото ошибки и файл vi прикрепил.

Re: Выход и приём звуковухи в одном цикле

Добавлено: 28 сен 2018, 11:01
Artem.spb
частоты различаются примерно в 2 раза, вот выдача половину времени и простаивает.

Re: Выход и приём звуковухи в одном цикле

Добавлено: 28 сен 2018, 12:29
Иван2019
Тоже не получается. Картина немного на осциллографе меняется, но тоже ни чего хорошего..

Re: Выход и приём звуковухи в одном цикле

Добавлено: 28 сен 2018, 13:31
Artem.spb
Вы бы перестали шифроваться и кинули весь ваш неработающий код, нам сразу стало бы проще найти там ошибку.

Re: Выход и приём звуковухи в одном цикле

Добавлено: 28 сен 2018, 15:12
Иван2019
Ну пожалуйста! два файла прикрепил. 1-рабочий, но в двух циклах. 2- файл, там где я сбросил все в один цикл. Ну и та же проблема. осциллограф выдает фигню..

Re: Выход и приём звуковухи в одном цикле

Добавлено: 28 сен 2018, 15:25
Artem.spb
size.PNG
size.PNG (10.39 КБ) 3507 просмотров
генератор у вас настроен на 10 Гц, а чтение пытается реже.

Re: Выход и приём звуковухи в одном цикле

Добавлено: 28 сен 2018, 17:58
Иван2019
Artem.spb,
А можно по подробнее, пожалуйста.. Ну у меня генератор должен работать не только на 10 Гц , как быть с одним циклом тогда?

Re: Выход и приём звуковухи в одном цикле

Добавлено: 28 сен 2018, 18:17
dadreamer
А с чем связана необходимость внести всё в один цикл? Обычно наоборот поступают.

Re: Выход и приём звуковухи в одном цикле

Добавлено: 28 сен 2018, 18:24
Иван2019
dadreamer,
Просто в дальнейшем мне нужно отправлять данные с одного цикла в другой. Использование Local Variable немного с запозданием передаёт, и вообще от этой переменной хотелось бы уйти .
Кстати с выставлением значений 3 частот указанных выше, в одном цикле все же заработала программа, но ООООООооочень медленно ...

Re: Выход и приём звуковухи в одном цикле

Добавлено: 28 сен 2018, 18:35
dadreamer
Иван2019 писал(а):dadreamer,
Просто в дальнейшем мне нужно отправлять данные с одного цикла в другой. Использование Local Variable немного с запозданием передаёт, и вообще от этой переменной хотелось бы уйти .
Для этих целей есть замечательная палитра Synchronization, где содержится множество :vi: для коммуникации между параллельными циклами. Например, очереди или уведомители.
dadreamer писал(а):
dadreamer писал(а):Синхронизировать циклы можно через очереди, уведомители и прочие инструменты.
В интернете полно примеров по передаче данных между параллельными циклами. Изучите, как работают механизмы синхронизации, на примере http://www.ni.com/white-paper/3023/en/ (подход "Producer - Consumer"). Посмотрите схожие темы на форуме, например http://www.labviewportal.org/viewtopic. ... 096#p66096 , http://www.labviewportal.org/viewtopic. ... 893#p68893 , http://www.labviewportal.org/viewtopic. ... 28&#p62828

А также вот вам литература и примеры:
1) "LabVIEW Основы II: Разработка" : шаблон «Производитель-потребитель» + материал в главе 2 "Передача данных между несколькими циклами"
2) Питер Блюм "LabVIEW: стиль программирования", в частности глава 8 "Шаблоны" и раздел 8.3.1 "Параллельные циклы"
3) примеры в папке C:\Program Files (x86)\National Instruments\LabVIEW 2014\examples\Synchronization

Re: Выход и приём звуковухи в одном цикле

Добавлено: 28 сен 2018, 20:39
Иван2019
dadreamer,
Спасибо конечно. но пока задача все же в один цикл сбросить

Re: Выход и приём звуковухи в одном цикле

Добавлено: 01 окт 2018, 10:24
Artem.spb
Иван2019 писал(а):Artem.spb,
А можно по подробнее, пожалуйста.. Ну у меня генератор должен работать не только на 10 Гц , как быть с одним циклом тогда?
не важно, сколько Гц. Важно, чтобы длины массивов совпадали.
Если 10Гц, то оба 4410 при такой частоте дискретизации. Генератору волны надо заказать другое число отсчётов, или со свуковухи читать не 4410, а 5К