Как можно организовать таймер ?
-
Sergey Ivanov
- expert
- Сообщения: 1217
- Зарегистрирован: 01 мар 2009, 20:54
- Награды: 5
- Версия LabVIEW: 2018
- Откуда: Санкт-Петербург, Кронштадт
- Благодарил (а): 11 раз
- Поблагодарили: 1 раз
- Контактная информация:
Как можно организовать таймер ?
как сделать - не знаю, точнее знаю, но решение, как мне кажется, не совсем правильное. прилагается ( 2009).
как можно ещё реализовать эту задачу ?
как можно ещё реализовать эту задачу ?
- Вложения
-
- таймер.vi
- (7.6 КБ) 688 скачиваний
Добро пожаловать на http://rk-stud.ru/
-
grjgrj
- professional
- Сообщения: 300
- Зарегистрирован: 18 фев 2009, 14:32
- Награды: 2
- Версия LabVIEW: 8.5-2011
- Откуда: Караганда
- Контактная информация:
Re: Как можно организовать таймер ?
Ну таймер как таймер, работает же :). А что не устраивает.
Для повышения точности можно использовать системный счетчик (для этого нужно вызывать системную dll'ку), пример есть здесь
(http://www.nf-team.org/drmad/stuff/lvmicro.htm и здесь http://www.nf-team.org/drmad/stuff/lvideman.htm)
Для повышения точности можно использовать системный счетчик (для этого нужно вызывать системную dll'ку), пример есть здесь
(http://www.nf-team.org/drmad/stuff/lvmicro.htm и здесь http://www.nf-team.org/drmad/stuff/lvideman.htm)
-
Sergey Ivanov
- expert
- Сообщения: 1217
- Зарегистрирован: 01 мар 2009, 20:54
- Награды: 5
- Версия LabVIEW: 2018
- Откуда: Санкт-Петербург, Кронштадт
- Благодарил (а): 11 раз
- Поблагодарили: 1 раз
- Контактная информация:
Re: Как можно организовать таймер ?
спасибо за ссылочки! работать работает, но интересно просто, может, это как-то более правильно и изящно, что ли , выполнить можно. дома буду подробненьо в ссылочках ковыряться :)
Добро пожаловать на http://rk-stud.ru/
-
grjgrj
- professional
- Сообщения: 300
- Зарегистрирован: 18 фев 2009, 14:32
- Награды: 2
- Версия LabVIEW: 8.5-2011
- Откуда: Караганда
- Контактная информация:
Re: Как можно организовать таймер ?
а в твоем примере можно умножение убрать, от него толку нет вот
- Вложения
-
- таймер.vi
- (7.69 КБ) 495 скачиваний
-
Sergey Ivanov
- expert
- Сообщения: 1217
- Зарегистрирован: 01 мар 2009, 20:54
- Награды: 5
- Версия LabVIEW: 2018
- Откуда: Санкт-Петербург, Кронштадт
- Благодарил (а): 11 раз
- Поблагодарили: 1 раз
- Контактная информация:
-
mzu2006
- doctor
- Сообщения: 2456
- Зарегистрирован: 16 авг 2008, 02:12
- Награды: 3
- Версия LabVIEW: 7.1 10 11 12
- Откуда: St-Petersburg (RU), Phila, Boston, Washington DC
- Контактная информация:
Re: Как можно организовать таймер ?
Если хочется получить от таймера какую-либо приличную точность, то так делать не надо. Почему?
Причина в jitter. Смотри http://www.labviewportal.org/viewtopic.php?p=5215#p5215 и ссылки из того поста.
Я бы либо заменил цикл + wait на timed loop либо сделал бы так:
Причина в jitter. Смотри http://www.labviewportal.org/viewtopic.php?p=5215#p5215 и ссылки из того поста.
Я бы либо заменил цикл + wait на timed loop либо сделал бы так:
Правила форума (Forum rules in Russian)
rm -rf /mnt/windows
rm -rf /mnt/windows
-
Pavel Krivozubov
- professor
- Сообщения: 4422
- Зарегистрирован: 07 фев 2008, 16:39
- Награды: 3
- Версия LabVIEW: 7.0 - 2013
- Откуда: г. Электросталь
- Благодарил (а): 24 раза
- Поблагодарили: 9 раз
- Контактная информация:
Re: Как можно организовать таймер ?
Кстати вот эта тема возможно поможет:
http://labviewportal.org/viewtopic.php? ... %80#p16238
http://labviewportal.org/viewtopic.php? ... %80#p16238
Правила форума
Developlabs - IT услуги - ждём Ваших заказов на написание программ
Новостной канал о LabVIEW и технологиях NI на Facebook
Developlabs - IT услуги - ждём Ваших заказов на написание программ
Новостной канал о LabVIEW и технологиях NI на Facebook
-
- junior
- Сообщения: 56
- Зарегистрирован: 30 мар 2009, 17:48
- Версия LabVIEW: 8.6
- Откуда: Зеленоград
- Контактная информация:
Re: Как можно организовать таймер ?
Про точность-в винде 10мс. Меньше у меня не стабильно. Брал лпт порт подключал к тиристорам 100герц работало стабильно, повышал частоту - сбои. А, ну да, лох я, чего от лпт захотел. Взял через звуковуху сделал - картина таже. Осциллограф подтвердил задержки менее 10мс не стабильны. Ну и ладно подключил обратно к генератору.
-
mzu2006
- doctor
- Сообщения: 2456
- Зарегистрирован: 16 авг 2008, 02:12
- Награды: 3
- Версия LabVIEW: 7.1 10 11 12
- Откуда: St-Petersburg (RU), Phila, Boston, Washington DC
- Контактная информация:
Re: Как можно организовать таймер ?
Со звуковухой, а также с платами аналоговых генераторов, можно получить сигналы с частотой сильно больше чем 100 Гц. Нужно использовать аппаратный буфер.
Правила форума (Forum rules in Russian)
rm -rf /mnt/windows
rm -rf /mnt/windows
-
- junior
- Сообщения: 56
- Зарегистрирован: 30 мар 2009, 17:48
- Версия LabVIEW: 8.6
- Откуда: Зеленоград
- Контактная информация:
Re: Как можно организовать таймер ?
Можно пример, или по подробнее.mzu2006 писал(а):Нужно использовать аппаратный буфер.
только на вейтах и подобных вещах много получить не смог
-
- junior
- Сообщения: 56
- Зарегистрирован: 30 мар 2009, 17:48
- Версия LabVIEW: 8.6
- Откуда: Зеленоград
- Контактная информация:
Re: Как можно организовать таймер ?
МММ подумал, покурил, вспомнил... На работе АЦП есть ЛА-И24USB http://www.rudshel.ru/show.php?dev=3 (редкостная гадость - один раз поигрался), да там буфер есть. Через звуковуху может перезаписываемый файлик wav сделать (пишет, читает, стирает, опять пишет), так не пробовал. А вот создать файлик и крутить по кругу, тут беда в моменты когда файл кончается и начинается снова (бесконечно большим его не сделать). Но про буфер лпт, я не знаю как сделать - подскажите, не усну сегодня
-
- freelance
- Сообщения: 21
- Зарегистрирован: 18 мар 2010, 15:11
- Версия LabVIEW: 12
- Откуда: Казань
Re: Как можно организовать таймер ?
я с ЛА12 много возился. могу подкинуть с настроенными непрерывным сбором. там есть хитрость с установками. нужно указывать определенные цифры для размера блока данных что б хоть как то работало .Drachev писал(а): На работе АЦП есть ЛА-И24USB http://www.rudshel.ru/show.php?dev=3 (редкостная гадость - один раз поигрался), да там буфер есть.
-
mzu2006
- doctor
- Сообщения: 2456
- Зарегистрирован: 16 авг 2008, 02:12
- Награды: 3
- Версия LabVIEW: 7.1 10 11 12
- Откуда: St-Petersburg (RU), Phila, Boston, Washington DC
- Контактная информация:
Re: Как можно организовать таймер ?
Про аппаратный буфер: рекомендую примеры к DAQmx а также help на Buffering (в категории Measurement fundamentals). Мне удавалось генерировать синусоиды с частотами синуса несколько килогерц (т.е. частота дискретизации - сотни килогерц) и это далеко не предел. Что непонятно, обращайся.
Да, это не делается
Если я правильно понял, что ты имел в виду под генерацией
Про буфер LPT, не знаю. В принципе, он там есть, LPT может качать данные из памяти сам (DMA), но нету генератора, который бы тактировал выход цифровых данных с LPT. Насколько я припоминаю программирование i8255 (и его последующих версий), то можно завести сигнал, который будет тактировать выдачу информации наружу. Но для этого нужен внешний генератор.
С выдачей данных на звуковуху с приличными частотами: ну вот, хоть моё пианино http://www.labviewportal.org/viewtopic. ... 221#p11221
Да, это не делается
, для этого необходима карточка (PCI, например) с возможностью bus mastering, аппаратный буфер на карточке, таймер с генератором (на карточке или отдельно) и грамотно написанный драйвер. Есть ещё несколько более тонких настроек вроде PCI latency, которые могут помочь.только на вейтах и подобных вещах
Если я правильно понял, что ты имел в виду под генерацией
, то так генерировать используя можно, только под real-time, FPGA, возможно, микроконтроллеры.только на вейтах и подобных вещах
Про буфер LPT, не знаю. В принципе, он там есть, LPT может качать данные из памяти сам (DMA), но нету генератора, который бы тактировал выход цифровых данных с LPT. Насколько я припоминаю программирование i8255 (и его последующих версий), то можно завести сигнал, который будет тактировать выдачу информации наружу. Но для этого нужен внешний генератор.
С выдачей данных на звуковуху с приличными частотами: ну вот, хоть моё пианино http://www.labviewportal.org/viewtopic. ... 221#p11221
Правила форума (Forum rules in Russian)
rm -rf /mnt/windows
rm -rf /mnt/windows
-
- junior
- Сообщения: 56
- Зарегистрирован: 30 мар 2009, 17:48
- Версия LabVIEW: 8.6
- Откуда: Зеленоград
- Контактная информация:
Re: Как можно организовать таймер ?
Мне не надо, спасибо.MrBobre писал(а):могу подкинуть с настроенными непрерывным сбором.
Для всего этого нужно железо (лучше NI или самодельное), просто голого системника не хватит.mzu2006 писал(а): для этого необходима карточка (PCI, например) с возможностью bus mastering, аппаратный буфер на карточке, таймер с генератором (на карточке или отдельно) и грамотно написанный драйвер. Есть ещё несколько более тонких настроек вроде PCI latency, которые могут помочь.
то так генерировать используя можно, только под real-time, FPGA, возможно, микроконтроллеры.
Но, отвлеклись от основной темы: я хотел сказать, что jitter, на вейте при 10мс ужасен. Таймер построенный на вейте не точен (если на вход подавать 2мс), а вот таймер с вычитанием Get Date/Time In Seconds Function - это вещь максимально точная и простая.
Генератор сделанный из лпт порта и вейтов любых(Timed Loop, Timed Sequence Structure, Wait, Wait Until Next ms Multiple) работает без jitter'а только при задании 0мс(задержки нет) или больше 10мс не так сильно заметен дребезг, в лпт втыкал подобный осциллограф http://www.labviewportal.org/ru/galerej ... tail&id=86
И странные результаты были(точных цифр и скринов не дам, давненько было): алгоритмы при задержке 0мс на Timed Loop, Timed Sequence Structure работали существенно быстрее, чем аналогичные алгоритмы при задержке 0мс на (While Loop, Flat Sequence Structure)+(Wait, Wait Until Next ms Multiple).
-
mzu2006
- doctor
- Сообщения: 2456
- Зарегистрирован: 16 авг 2008, 02:12
- Награды: 3
- Версия LabVIEW: 7.1 10 11 12
- Откуда: St-Petersburg (RU), Phila, Boston, Washington DC
- Контактная информация:
Re: Как можно организовать таймер ?
RT можно запустить на голом системнике.Drachev писал(а):просто голого системника не хватит.
связано с тем, что Timed Loop выполняется отдельно от подсистем выполнения и с повышенным приоритетом. + все timed структуры синхронизируются специальным драйвером режима ядра.Drachev писал(а): алгоритмы при задержке 0мс на Timed Loop, Timed Sequence Structure работали существенно быстрее, чем аналогичные алгоритмы при задержке 0мс на (While Loop, Flat Sequence Structure)+(Wait, Wait Until Next ms Multiple).
Правила форума (Forum rules in Russian)
rm -rf /mnt/windows
rm -rf /mnt/windows