eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaRP2040 PIO › Re: RP2040 PIO
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.chmurka.net!.POSTED.abku249.neoplu
    s.adsl.tpnet.pl!not-for-mail
    From: "J.F" <j...@p...onet.pl>
    Newsgroups: pl.misc.elektronika
    Subject: Re: RP2040 PIO
    Date: Tue, 21 Mar 2023 14:54:49 +0100
    Organization: news.chmurka.net
    Message-ID: <o...@4...net>
    References: <6418ac94$0$19621$65785112@news.neostrada.pl>
    NNTP-Posting-Host: abku249.neoplus.adsl.tpnet.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset="utf-8"
    Content-Transfer-Encoding: 8bit
    Injection-Info: news.chmurka.net; posting-account="jfoxwr";
    posting-host="abku249.neoplus.adsl.tpnet.pl:83.7.188.249";
    logging-data="5961"; mail-complaints-to="abuse-news.(at).chmurka.net"
    User-Agent: 40tude_Dialog/2.0.15.1
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:779196
    [ ukryj nagłówki ]

    On Mon, 20 Mar 2023 19:57:24 +0100, Mirek wrote:
    > Potrzebuję zrobić enkoder kwadraturowy na Raspberry Pi Pico.
    > Spróbowałem tego:
    >
    > https://github.com/jamon/pi-pico-pio-quadrature-enco
    der/blob/main/python/quadrature.py
    > i to działa, ale ma jedną wadę: zmienia stan tylko na podstawie
    > opadającego zbocza jednej linii - to bez sensu, bo traci się
    > czterokrotnie rozdzielczość.
    > Próbowałem to:
    >
    > https://github.com/raspberrypi/pico-examples/blob/ma
    ster/pio/quadrature_encoder/quadrature_encoder.pio
    > przerobić na Pythona, ale nie działa - coś tam pojawiają się jakieś
    > bzdury a później zamiera.
    > Czy problem może być w tej dyrektywie .origin 0?
    > Bo w Micropythonie nie ma możliwości takiej deklaracji albo o tym nie wiem.
    >
    > Oczywiście chcąc nie chcąc zacząłem rozgryzać jak to PIO działa -
    > dlaczego w ogóle nazywają to maszyną stanów?
    >
    > Maszyna stanów to ja bym rozumiał jakiś rejestr do zapamiętania stanu i
    > jeżeli maszyna jest w danym stanie to wykonuje jakiś tam kod, następnie
    > sprawdza w kółko jakieś warunki, które powodują przejścia do innych
    > stanów - przynajmniej ja to tak rozumiem i tak zawsze programowałem.
    > Oczywiście taka sprzętowa maszyna powinna sprzętowo sprawdzać np. piny i
    > zmieniać stan jaki się tam ustawi.
    > Niestety w tym PIO czegoś takiego nie ma - sprawdza jedynie jeden pin
    > blokujący warunek wait i instrukcja jmp, która jest jeszcze bardziej
    > ograniczona, bo można jej przyporządkować tylko raz konkretny pin.

    Ogolnie: taki enkoder najlepiej sie obsluguje automatem/maszyną
    stanów. Tylko musi miec osobny zegar i odpowiednią szybkosc.
    Wydaje sie, ze w procku z takim wspomagaczem PIO powinno sie dać to
    zrobic, ale moze sa tam za duze ograniczenia/chcą zrobic oszczedniej.

    Jesli jedno z wejsc musi byc "zegarem" do tego automatu, to sprawa sie
    komplikuje.

    Ten drugi program chyba realizuje pierwszą koncepcje, i jest tym,
    czego szukasz, tylko faktycznie wymaga tego .origin
    Nie wiem, czy w pythonie jest nad tym jakas kontrola.

    A moze połączyc jakos pythona z C?

    J.

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: