Strona 1 z 1

Obliczanie czasu trwania sygnału

: 29 lis 2012 10:04
autor: sorlag
Witam,
Mam do zrobienia projekt dekoder morse'a
Założyłem sobie tak, że czas trwania sygnału (np. na woltomierzu) decyduje jaki znak przyszedł (kropka czy kreska), następnie kropki i kreski dekoduje na litery. Zamiana znaków na litery nie jest problemem. Problemem natomiast jest klasyfikowanie jak długo trwał sygnał wysoki oraz jak długo trwał niski. Jako że w chwili obecnej nie mam dostępu do tego woltomierza, chciałbym to zrobić aby sygnałem był chociażby jakiś pasek, lub nawet przełącznik typu boolean na front panelu. Ale jak zabrać się za pomiar czasu trwania danego stanu? Próbowałem z dwiema pętlami if, i przekazywaniu wartości Tick Count do drugiej pętli w chwili skończenia tej pierwszej, ale czasami wysyła wynik z pierwszego obiegu pętli a czasami z ostatniego. Czy mógłbym liczyć na jakąś pomoc jak to zrobić?

pozdrawiam

Re: Obliczanie czasu trwania sygnału

: 29 lis 2012 12:49
autor: conioo
A może coś takiego na Eventach?
Możesz dodać kolejkę, która wysyłała by z pętli generatora do pętli dekodera czasy trwania poszczególnych stanów i skladała z tego znaki.

Obliczanie czasu trwania sygnału

: 29 lis 2012 16:36
autor: sorlag
Dzięki!, o to chodziło,
Jednakże mam pytanko co do kolejek i samego dekodera. Dekoder aktualnie czyta ciąg znaków wpisany przed jego uruchomieniem i zamienia (za pomocą bloku Search and Replace String) na litery. Rozumiem że sam dekoder również trzeba umieścić w innym case structure który bierze porcje kropek i kresek z kolejki w przypadku gdy "cisza" trwa więcej niż 3 kropki? Poza tym nie wiem jak zrobić by wyświetlać wszystkie odebrane litery a nie tylko ostatnią (jeszcze do tego nie doszedłem ale pytam na zapas). Wybaczcie być może za banalne pytanie ale jestem naprawdę newbie :)

Obliczanie czasu trwania sygnału

: 30 lis 2012 07:14
autor: conioo
Ja bym zrobił osobny wątek dla dekodera - pętla While z odbiorem czasów z kolejki. Tu bym sprawdzał na podstawie czasów, jaki to znak, i wrzucałbym do stringa za pomoca bloczka concatenate string. Zobacz jak wygląda architektura programu z uzyciem Eventów i kolejek, z menu File -> New... ->VI -> From Template -> Frameworks -> Producer/Consumer Design Pattern (Events). W pętle Producer wrzucasz generator Morse'a, a w pętlę Consument dekoder.

Re: Obliczanie czasu trwania sygnału

: 30 lis 2012 19:38
autor: sorlag
Ostatecznie zrobiłem inaczej, ale dzięki kolego za pomoc, teraz tylko muszę czekać na dostęp do laboratorium i napisać odczyt z woltomierza.

Pozdrawiam