-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.samoylyk.n
et!aioe.org!peer01.ams4!peer.am4.highwinds-media.com!news.highwinds-media.com!n
ewsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-a-02.news.neostrada.p
l!news.neostrada.pl.POSTED!not-for-mail
Subject: Re: 74HCT245 jako port wejściowy - nie działa, choć powinien
Newsgroups: pl.misc.elektronika
References: <5f3e204e$0$520$65785112@news.neostrada.pl>
From: Atlantis <m...@w...pl>
Date: Sun, 23 Aug 2020 15:38:45 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101
Thunderbird/68.11.0
MIME-Version: 1.0
In-Reply-To: <5f3e204e$0$520$65785112@news.neostrada.pl>
Content-Type: text/plain; charset=utf-8
Content-Language: pl
Content-Transfer-Encoding: 8bit
Lines: 34
Message-ID: <5f427165$0$556$65785112@news.neostrada.pl>
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 83.27.151.42
X-Trace: 1598189925 unt-rea-a-02.news.neostrada.pl 556 83.27.151.42:44170
X-Complaints-To: a...@n...neostrada.pl
X-Received-Bytes: 3050
X-Received-Body-CRC: 567994618
Xref: news-archive.icm.edu.pl pl.misc.elektronika:756544
[ ukryj nagłówki ]Z ciekawości wykonałem nową wersje modułu, w którym układ 74HCT245 jest
podłączony dokładnie tak samo, jak w tym drugim, działającym urządzeniu.
Przy okazji poprawiłem trochę sposób prowadzenia ścieżki zasilania i
pola masy. Okazało się jednak, że to nie tutaj leżała przyczyna.
Zacząłem jeszcze raz analizować sytuację i nagle mnie olśniło - byłem w
stanie odczytywać wartość portu i to nie powodowało problemów. Jednak
gdy tylko stosowałem swoją bibliotekę (która również czyta z tego portu)
urządzenie zaczęło działać niestabilnie i resetować się. Istniała jednak
jeszcze jedna różnica - testowa funkcja odczytująca wartość portu była
wywoływana raz na sekundę. Natomiast funkcja sprawdzająca wartość
przycisku jest wywoływana w każdym przebiegu pętli.
Zrobiłem więc eksperyment - ustawiłem programowy timer, powodujący
wywoływanie funkcji key_update() co jakiś 40 ms. Okazuje się, że problem
przestał występować. Nie pojawiają się też "fałszywe" wciśnięcia
przycisków. Na dobrą sprawę mógłbym to tak zostawić, nawet upraszczając
bibliotekę, bo to opóźnienie załatwia sprawę debouncingu.
Tyle tylko, że sprawa nie daje mi spokoju. Dlaczego tak się dzieje?
Dlaczego w drugim urządzeniu, opartym na tej samej architekturze, mogę
wywoływać funkcję key_update() z pętli głównej i nic się nie dzieje, a w
drugim występują takie problemy i trzeba stosować timer?
Mogę od razu obalić teorię, która w pierwszym momencie przychodzi do
głowy - to działające urządzenie ma jeszcze mniej "zajętą" pętlę główną,
więc nie ma tam niczego, co mogłoby robić za naturalne opóźnienie.
I jeszcze jedno: funkcja key_update jest wywoływana kilkukrotne - za
każdym razem przyjmując jako argument adres do struktury odnoszącej się
do jednego z przycisków. Przy każdym wywołaniu sprawdzany jest port.
Jednak wielokrotne wywołania nie są najwyraźniej problemem same w sobie,
bo wspomniany wcześniej timer programowy również wywołuje funkcję
trzykrotnie.
Następne wpisy z tego wątku
- 23.08.20 16:09 Atlantis
- 23.08.20 18:43 Atlantis
- 25.08.20 18:00 Atlantis
- 25.08.20 18:42 J.F.
- 25.08.20 20:36 Atlantis
- 28.08.20 11:03 J.F.
Najnowsze wątki z tej grupy
- e-paper
- 60 mA dużo czy spoko?
- Dziwne zachowanie magistrali adresowej w 8085
- Współczesne mierniki zniekształceń nieliniowych THD audio, produkują jakieś?
- Jaki silikon lub może klej?
- Smar do video
- Litowe baterie AA Li/FeS2 a alkaliczne
- "ogrodowa linia napowietrzna"
- jaki zasilacz laboratoryjny
- jaki zasilacz laboratoryjny
- Puszka w ziemię
- T-1000 was here
- Ściąganie hasła frezem
- Koszyk okrągły, walec 3x AA, na duże paluszki R6
- Brak bolca ochronnego ładowarki oznacza pożar
Najnowsze wątki
- 2025-02-19 Lista afer
- 2025-02-19 Lista afer
- 2025-02-19 Lista afer PIS
- 2025-02-19 Ogrodzenie dla krów szkockich "Highland"
- 2025-02-19 Gdańsk => System Architect (background deweloperski w Java) <=
- 2025-02-19 Gdańsk => Solution Architect (Java background) <=
- 2025-02-19 Białystok => Data Engineer (Tech Leader) <=
- 2025-02-19 Kraków => Ekspert IT (obszar systemów sieciowych) <=
- 2025-02-19 Warszawa => Architekt rozwiązań (doświadczenie w obszarze Java, AWS
- 2025-02-19 Rzeszów => International Freight Forwarder <=
- 2025-02-19 Poznań => Konsultant wdrożeniowy Comarch XL/Optima (Księgowość i
- 2025-02-19 Chrzanów => Spedytor Międzynarodowy (handel ładunkami/prowadzenie f
- 2025-02-19 Bieruń => Regionalny Kierownik Sprzedaży (OZE) <=
- 2025-02-19 Nigdy
- 2025-02-19 Katowice => Key Account Manager (ERP) <=