Pilna sprawa - dekoder kwadraturowy na AVR - fragment softu



Masz problem? Zapytaj na forum elektroda.pl

Poprzedni Następny
Wiadomość
Spis treści
From: Sebastian Bialy <heby_at_nospam_poczta.onet.pl>
Subject: Pilna sprawa - dekoder kwadraturowy na AVR - fragment softu
Date: Sat, 04 Sep 2004 13:35:56 +0200


Witam!

Mam bardzo pilną sprawę i niestety chyba nie dam rady napisać od zera na
szybko odpowiedniego algorytmu.

Jest enkoder obrotowy - generuje 2 przebiegi wypełnione 50% przesunięte
o 90 st.

Muszę na szybko zrobić licznik zliczający góra/dół i wyrowadzający tą
wartośc na 8 pinów na zewnątrz (może na więcej, musze to niestety
prowizorycznie na szybko wpiąc w port drukarki).

Czy ktoś z szanownych grupowiczów poratował by mnie fragmentem
pozwalającym zliczac i dekodować impulsy ? ASM albo BASCOM, nie ma dla
mnie znaczenia. C odpada, nie mam niestety czasu instalować środowiska
gcc, robota bardzo pilna, na wczoraj.

Wydaje mi sie, że całośc powinna chodzić na przerwaniach, dlatego od
ręki cięzko mi to napisać.

uC to tylko AVR (zapewne 90s2313 - mam ograniczone pole manewru).

Jakiś kawałek kodu, jeśli można prosić.

Zakup scalaczków robiących to sprzętowo nie wchodzi w grę, musi być
dzisiaj zrobione. Równolegle sam będę dłubał, może mi się uda.

Przy okazji: czy dekodowanie przez uC tego sygnału jest mi w stanie
zapewnić powtarzalnośc - zakładając brak jakichkolwiek problemów z
impulsami. Innymi słowy 1000 obrotów i powracam w dokładnie to samo
miejsce ?

Pozdrawiam.

--
Sebastian Bialy - heby_at_nospam_poczta.onet.pl

=======

Poprzedni Następny
Wiadomość
Spis treści
From: "Marek Dzwonnik" <mdz_at_nospam_WIADOMO_PO_CO_TO.message.pl>
Subject: Re: Pilna sprawa - dekoder kwadraturowy na AVR - fragment softu
Date: Sat, 4 Sep 2004 14:38:13 +0200


Użytkownik "Sebastian Bialy" <heby_at_nospam_poczta.onet.pl> napisał w wiadomości
news:chc9bn$626$1_at_nospam_atlantis.news.tpi.pl

Jest enkoder obrotowy - generuje 2 przebiegi wypełnione 50%

Czy ktoś z szanownych grupowiczów poratował by mnie fragmentem
pozwalającym zliczac i dekodować impulsy ?

Popchnąłem conieco na priv.

--
Marek Dzwonnik, GG: #2061027 (zwykle jako 'niewidoczny')


========
Path: news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.dialog.net.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: Ireneusz Niemczyk <Adres_at_nospam_znajdziesz.w.starym.archiwum>
Subject: Re: Pilna sprawa - dekoder kwadraturowy na AVR - fragment softu
Date: Sat, 04 Sep 2004 23:57:03 +0200


Przy okazji: czy dekodowanie przez uC tego sygnału jest mi w stanie
zapewnić powtarzalnośc - zakładając brak jakichkolwiek problemów z
impulsami. Innymi słowy 1000 obrotów i powracam w dokładnie to samo
miejsce ?


Jest, ale trzeba powalczyc troche z czystoscia sygnalow (jesli to jakas
maszyneria - moze byc nielatwo).
Bywa rowniez, ze sam inkremental generuje smiecie w sytuacjach ciezkich
(powiedzmy rezonans mechaniki, udary... mialem tak z przetwornikami
impol-u). Jesli przetwornik ma trzeci kanal, to mozna postarac sie go uzyc w
celach powiedzmy diagnostycznych (wykrycie rozbierznosci to jedno, trzeba
zdecydowac co z tym zrobic - to drugie). Da sie z jego pomoca okreslic
polozenie z dokladnoscia do 1/4 okresu kanalu podstawowego.
Na koniec jeszcze - dobra zasada jest stosowanie przetwornikow bardziej
rozdzielczych niz wynika to z obliczen, a juz na pewno nie jest dobrym
pomyslem praca w ukladzie x4 (jesli srodowisko ciezkie).

__
Pzd, Irek.N.


========
Path: news-archive.icm.edu.pl!newsfeed.gazeta.pl!newsfeed.atman.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: Sebastian Bialy <heby_at_nospam_poczta.onet.pl>
Subject: Re: Pilna sprawa - dekoder kwadraturowy na AVR - fragment softu
Date: Sun, 05 Sep 2004 00:18:02 +0200


Sebastian Bialy wrote:
Jest enkoder obrotowy - generuje 2 przebiegi wypełnione 50% przesunięte
o 90 st.
Muszę na szybko zrobić licznik zliczający góra/dół i wyrowadzający tą
wartośc na 8 pinów na zewnątrz (może na więcej, musze to niestety
prowizorycznie na szybko wpiąc w port drukarki).

Dziękuje serdecznie za odpowiedzi, w szczególności Markowi, który mimo,
jak sam przyznał, braku znajomości BASCOMA pomógł mi z jedną drobą
sprawą - która uratowała mi pare godzin grzebania w helpie.

Problem rozwiązałem przed chwilą. Zaprogramowałem 2313 z algorytmem typu
pooling w nieskończonej pętli. Badane były obydwa stany lini z enkodera
i w razie wykrycia zmiany w tablicy odszukiwałem czy dodać czy odjąć
sygnał (jakoś nic mi nie przyszło do głowy, co można by łatwo wyliczyć z
obydwu stanów przed i po, więc zostało sięganie do tablicy).

Wewnętrzny licznik 16 bitowy nie starcza na długo niestety, bo sam
enkoder ma katalogową dokładnośc 300 pkt, ale tak naprawdę wyszło 1200 pkt.

Przesyłanie musiałem zrobić na szybko przez port LPT. Dane sa wystawiane
na port osobno bajt starszy i osobno młodszy. Oczywiście program dba o
to, aby nie zaszła sytuacja wyścigu i wewnętrzny licznik do odczytu jest
blokowany (rzeczywisty liczy cały czas).

Oprogramowanie na kompie używa 32 bitowego licznika, co wydaje mi się
być wystarczające do mojego zastosowania ;)

Jak na parogodzinny kawałek elektroniki + soft (i płytka uniwersalna) to
jestem zadowolony, że w ogóle zadziałało :)

To tyle chwalenia się. Pozdrawiam.

--
Sebastian Bialy - heby_at_nospam_poczta.onet.pl

========
Path: news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!not-for-mai