Witam
Mam następujący problem podczas kompilacji VI i wrzucania na kartę fpga (PCI 7831) wyskakuje mi komunikat o naruszeniach czasowych. Miałem co prawda już z tym problem, ale w pętli czasowej gdzie kod po prostu nie był w stanie się wykonywać z założoną częstotliwością.
Teraz mój program mieści się w całości w While Loop i wyskakuje komunikat o naruszeniach czasowych.
W związku z tym moje pytanie co determinuje szybkość wykonywania się tej pętli?
Na początku myślałem, że to wyjście analogowe które mam w pętli wymusza jej wykonywanie się tak, aby mieściło się w okresach jego próbkowania, ale zwątpiłem kiedy w innym programie z mniej złożonym kodem wewnątrz pętli miałem wyjście analogowe i opóźnienie czasowe np. 100 ms i to działało!!
Jak to możliwe?
Naruszenia czasowe w While loop
-
- Administrator
- Posty: 1315
- Rejestracja: 30 lip 2003 00:00
- Wersja środowiska: LabVIEW 2015
- Lokalizacja: Ruda Śląska
- Kontakt:
Naruszenia czasowe w While loop
Może pokaż nam swój kod, abyśmy mogli powiedzieć, co jest przyczyną opóźnień...
bogdani
bogdani
Re: Naruszenia czasowe w While loop
Witam dzięki za zainteresowanie.
Załączam screena programiku. W takiej postaci jak na obrazku działa, w starej formie w której występowały zbyt duże opóźnienia zamiast operacji zoptymalizowanych dla typu fixed-point były zwykłe mnożenia i dodawania które to były winne naruszeniom czasowym.
Problem jest niby rozwiązany, ale nadal nurtuje mnie jedno pytanie, mianowicie:
Co określa w jakim czasie ma się wykonywać pętla while-loop?
Jak widzicie w programiku jest opóźnienie czasowe nastawione na bodajże kilkaset us, ale w starym programie też było, a kompilator nie wiem czemu wywalał, że wymaga wykonania się operacji w pętli z opóźnieniem nie większym od 24.75ns.
Jaka jest tego przyczyna?
Załączam screena programiku. W takiej postaci jak na obrazku działa, w starej formie w której występowały zbyt duże opóźnienia zamiast operacji zoptymalizowanych dla typu fixed-point były zwykłe mnożenia i dodawania które to były winne naruszeniom czasowym.
Problem jest niby rozwiązany, ale nadal nurtuje mnie jedno pytanie, mianowicie:
Co określa w jakim czasie ma się wykonywać pętla while-loop?
Jak widzicie w programiku jest opóźnienie czasowe nastawione na bodajże kilkaset us, ale w starym programie też było, a kompilator nie wiem czemu wywalał, że wymaga wykonania się operacji w pętli z opóźnieniem nie większym od 24.75ns.
Jaka jest tego przyczyna?