ATNEL tech-forum
https://forum.atnel.pl/

Analiza impulów c.d pytanie o pomysł
https://forum.atnel.pl/topic22606.html
Strona 1 z 1

Autor:  AKSELINEK [ 11 paź 2019, o 09:19 ]
Tytuł:  Analiza impulów c.d pytanie o pomysł

Witam.

Walczę od dłuższego czasu z pewnym projektem analizy przebiegów i dzięki pomocy kolegów próbowałem różnych rozwiązań i nawet trochę się udało mi coś tam się nauczyć.
Wielokrotnie pisałem o problemie pomiaru zmieniających się impulsów , które to jednak okazały się trochę za krótkie aby przy pomocy Attmegi 32 i przerwania ICP odczytać.
Udał się experyment na nowych urządzeniach przy pomocy przerwania ICP:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Jak wspomniałem pomagali koledzy ale się coś udało z tego zrobić.
Ale jednak okazało się że niektóre impulsy okazały się zbyt krótkie aby dokładnie odczytać ramkę problem zaczynał się poniżej 5us bo nie zdążyło w/w przerwanie tego zaobrazować.

Ale po dokładym poznaniu problemu może nie ma potrzeby czytać tych krótkich impulsów pokaże jak pokazywał przebieg oscyloskop gdzie została wciśnięta (naruszona) jena tzw lini:

Obrazek

wykres niebieski pokazuje jak działa dokładnie urządzenie , narastanie stanu z niskiego na wysoki i jego czasowy moment decyduje o porównania i pomiaru.

I dochodzę wreszcie do mojego pytania jak stworzyć przy pomocy programu taki właśnie niebieski przebieg ja nazywam go CLK - ponieważ dokładnie moment jego narastania pokazuje jak odczytać.
Pragnę przypomnieć że przerwania INT 0 I INT 1 mam zajęte w/w przerwanie ICP jest potrzebne ponieważ muszę wiedzieć jaka jest ramka , ale można chyba go zmodyfikować bo nie muszę analizować wszystkich impulsów.
I teraz tak impuls CLK można by podłączyć do wejścia pinu mikrokontrolera i wdanym momencie porostu porównywać stan pinu czy jest 0 czy 1.

Tylko jak przy pomocy timerów mogę to spróbować zrobić ?

------------------------ [ Dodano po: 31 minutach ]

AKSELINEK napisał(a):
Witam.

Walczę od dłuższego czasu z pewnym projektem analizy przebiegów i dzięki pomocy kolegów próbowałem różnych rozwiązań i nawet trochę się udało mi coś tam się nauczyć.
Wielokrotnie pisałem o problemie pomiaru zmieniających się impulsów , które to jednak okazały się trochę za krótkie aby przy pomocy Attmegi 32 i przerwania ICP odczytać.
Udał się experyment na nowych urządzeniach przy pomocy przerwania ICP:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Jak wspomniałem pomagali koledzy ale się coś udało z tego zrobić.
Ale jednak okazało się że niektóre impulsy okazały się zbyt krótkie aby dokładnie odczytać ramkę problem zaczynał się poniżej 5us bo nie zdążyło w/w przerwanie tego zaobrazować.

Ale po dokładym poznaniu problemu może nie ma potrzeby czytać tych krótkich impulsów pokaże jak pokazywał przebieg oscyloskop gdzie została wciśnięta (naruszona) jena tzw lini:

Obrazek

wykres niebieski pokazuje jak działa dokładnie urządzenie , narastanie stanu z niskiego na wysoki i jego czasowy moment decyduje o porównania i pomiaru.

I dochodzę wreszcie do mojego pytania jak stworzyć przy pomocy programu taki właśnie niebieski przebieg ja nazywam go CLK - ponieważ dokładnie moment jego narastania pokazuje jak odczytać.
Pragnę przypomnieć że przerwania INT 0 I INT 1 mam zajęte w/w przerwanie ICP jest potrzebne ponieważ muszę wiedzieć jaka jest ramka , ale można chyba go zmodyfikować bo nie muszę analizować wszystkich impulsów.
I teraz tak impuls CLK można by podłączyć do wejścia pinu mikrokontrolera i wdanym momencie porostu porównywać stan pinu czy jest 0 czy 1.

Tylko jak przy pomocy timerów mogę to spróbować zrobić ten impuls nazwany CLK ?


------------------------ [ Dodano po: 36 minutach ]

.

------------------------ [ Dodano po: 37 minutach ]

sory nie wiem jak przypadkowy cytat usunąć

Autor:  JarekB [ 11 paź 2019, o 10:15 ]
Tytuł:  Re: Analiza impulów c.d pytanie o pomysł

Pierwsza uwaga
W poprzednim wątku napisałem że masz do dyspozycji jeszcze INT2
Czemu z niego nie skorzystasz?

Autor:  AKSELINEK [ 11 paź 2019, o 15:14 ]
Tytuł:  Re: Analiza impulów c.d pytanie o pomysł

Tak faktycznie masz rację na pewno z tego skzystam .Tylko mam pytanie czy w czasie przerwania ICP moge wyzwolic inne przerwanie np wspomniane INT2?

Autor:  xentis [ 12 paź 2019, o 14:23 ]
Tytuł:  Re: Analiza impulów c.d pytanie o pomysł

Czytając to co piszesz mam wrażenie, ze nie do końca wiesz jak taki uC działa. AVR to procki jednowątkowe więc w danym momencie mogą się zajmować jedną rzeczą. Oczywiście da się ich czas poszatkować tak by zajmowały się wieloma zadaniami "jednocześnie" ale coś kosztem czegoś. uC taktowany kwarcem 16MHz większość rozkazów wykonuje w ciągu 0,0625us, więc pomiar impulsu 5us nie powinien stanowić problemu, no jeszcze pytanie z jaką dokładnością potrzebny ten pomiar, ale zgrubnie te 5us procek zmierzy. Jest jednak ale, jeśli ty masz tam jeszcze poupychane inne przerwania to nie ma siły by ten pomiar się udał. Bo jeśli wystąpi impuls a w tym czasie jest wykonywane inne przerwanie no to sory, ale może być tak że zanim przerwanie od impulsu zostanie wywołane to sam impuls "przeminął już z wiatrem".
AKSELINEK napisał(a):
Tylko mam pytanie czy w czasie przerwania ICP moge wyzwolic inne przerwanie np wspomniane INT2?
Oczywiście jest to możliwe do zrealizowania ale jest to już "level very hard" i bez dokładnej znajomości tematu lepiej do niego wogule nie podchodzić. Wyobraź sobie że zezwalasz na wystąpienie przerwania w przerwaniu, i teraz w czasie trwania przerwania zostaje wywołane następne, i w czasie wykonywania tego następnego przychodzi wyzwolenie kolejnego itd. Zaczyna się kaskadowe wywoływanie przerwań - totalny armagedon.

Autor:  AKSELINEK [ 12 paź 2019, o 15:29 ]
Tytuł:  Re: Analiza impulów c.d pytanie o pomysł

Bardzo dziękuje za zainteresowanie tematem , ale ja na pewno wiem że nie zmierzę impulsu krótszego niż 5us, ale poznałem bardziej układ elektroniczny w/w urządzenia i nie mam potrzeby mierzyć wszystkich
impulsów w ramce a jedynie sprawdzać te stany w chwili gdy impuls niebieski CLK zmienia stan z niskiego na wysoki - no może jeszcze dokładniej to trochę póżniej .
Myślę czy jakbym wygenerował przy pomocy AVR na jakimś wyjściu ten impuls CLK a potem przy pomocy porównania pinów w tych odpowiednich czasach stwierdzał jaki jest stan .
Momentów narastania impulsów jest tylko 13 i każdy coś określa , jedynie problemem może być dokładne wygenerowanie takiego impulsu tzn.
Przychodzi pierwszy impuls ramki i mogę np. przy pomocy wolnego przerwania INT 2 uruchomić odpowiedni timer i jakoś tak go określić aby wyzwolił taki przebieg CLK.
Ale kolega pisał że nie można w jednym momencie mieć dwóch przerwań, więc czy możliwa jest taka sytuacja że najpierw przerwanie INT 2 uruchamia krótką procedurę przerwania i wyzwolenia
impulsu clk a potem już dla każdego impulsu ramki leciało by tylko przerwanie ICP I nieważne są te krótkie impulsy a jedynie te co decydują o naruszeniu lini jak na rysunku.
Problemem jest tylko to czy za pomocą jednego przerwania mogę wygenerować taki impuls CLK a równolegle wykonywać pomiary ICP w wspomniane .
Jedynie co 13 impulsów sprawdzał bym i porównywałbym na bardzo krótką chwile stan Pinów a czas ipulsu tego co powoduje zmianę jest dosyć długi.
Pragnę tylko jeszcze dodać że przerwanie ICP mogę jeszcze trochę zmodyfikować ponieważ może nie muszę mierzyć wszystkich impulsów w ramkach a jedynie te które określają nr. ramki.
Jak bym znał tylko numer ramki to całe przerwanie ICP jest mi zbędne.
Przepraszam za chaos w rozmyślaniach i wielokrotne powtarzanie się ale chciałem dokładniej wypowiedzieć się co chcę zrobić

Autor:  AKSELINEK [ 14 paź 2019, o 13:22 ]
Tytuł:  Re: Analiza impulów c.d pytanie o pomysł

Mylę że nie dużo mi brakuje do zakończenia tematu , ale muszę przy pomocy Timera wygenerować impuls CLK .
Początek generowania impulsu CLK stanowi pomiar:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Jest to początek każdej ramki i teraz muszę uruchomić impuls CLK dlatego prubuje uruchomić timer

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Niestety na PA1 nic mi nie generuje :(
czy muszę jeszcze coś ustawić przed pętlą główną???

Autor:  JarekB [ 14 paź 2019, o 19:57 ]
Tytuł:  Re: Analiza impulów c.d pytanie o pomysł

Czy nie powinieneś włączyć tryb CTC?
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Oczywiście masz włączoną globalną obsługę przerwań
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
?

Autor:  AKSELINEK [ 14 paź 2019, o 20:54 ]
Tytuł:  Re: Analiza impulów c.d pytanie o pomysł

Ustawiłem jak radziłeś przed pętlą główną :

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


I dalej kicha :(

może coś z tym preskalerem jest nie tak:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


oczywiście sei jest włączone.

Autor:  AKSELINEK [ 14 paź 2019, o 22:30 ]
Tytuł:  Re: Analiza impulów c.d pytanie o pomysł

Dobra coś ruszyło .

Strona 1 z 1 Strefa czasowa: UTC + 1
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/