-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erj
e.net!feeder.erje.net!news.roellig-ltd.de!open-news-network.org!weretis.net!fee
der8.news.weretis.net!newsreader4.netcologne.de!news.netcologne.de!peer02.ams1!
peer.ams1.xlned.com!news.xlned.com!peer03.ams4!peer.am4.highwinds-media.com!new
s.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-sp
o-a-02.news.neostrada.pl!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>
<5f3e6e58$0$517$65785112@news.neostrada.pl>
From: Atlantis <m...@w...pl>
Date: Thu, 20 Aug 2020 16:37:51 +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: <5f3e6e58$0$517$65785112@news.neostrada.pl>
Content-Type: text/plain; charset=utf-8
Content-Language: pl
Content-Transfer-Encoding: 8bit
Lines: 56
Message-ID: <5f3e8abf$0$520$65785112@news.neostrada.pl>
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 31.0.68.118
X-Trace: 1597934271 unt-rea-b-01.news.neostrada.pl 520 31.0.68.118:18517
X-Complaints-To: a...@n...neostrada.pl
X-Received-Bytes: 3866
X-Received-Body-CRC: 2959577138
Xref: news-archive.icm.edu.pl pl.misc.elektronika:756465
[ ukryj nagłówki ]On 20.08.2020 14:36, J.F. wrote:
> Opis by sugerowal, ze te 245 wystawia dane na magistrale w niepożądanym
> momencie.
To było moje pierwsze skojarzenie. Chociaż dziwne jest to, że program
nie tylko rejestruje samoczynne (fałszywe) naciśnięcia klawiszy, ale też
prawidłowo reaguje na te prawdziwe.
Przypomniałem sobie też, że kiedyś już testowałem działanie tego portu,
co jakiś czas sprawdzając w pętli, czy po wciśnięciu przycisków zmieni
się wartość odczytywana z portu - zmieniała się, a program działał
stabilnie i nie wieszał się. Czyli wyglądałoby na to, że to jednak nie
sam odczyt z portu jest czynnością destrukcyjną z punktu widzenia
stabilności programu.
Moim drugim pomysłem była funkcja zajmująca się debouncingiem. Tylko jak
już pisałem, ta działa prawidłowo w innym urządzeniu opartym na tej
samej architekturze.
Funkcja sprawdzania przycisku wygląda następująco:
> Ale ... powod moze byc tez zupelnie inny.
> Chocby czysto softwareowy - jakis blad w funkcjach przyciskow, zla
> obsluga przerwania itp.
O tym też myślałem, jednak nie pasuje mi żadna z potencjalnych przyczyn,
które brałem pod uwagę. Przerwania nie są wykorzystywane do obsługi
przycisków. Wszystkie inne funkcjonalności oparte na przerwaniach (UART
RX, timer, RTC) działają prawidłowo.
Myślałem o potencjalnym nadpisaniu stosu, ale:
- Niewielki sprzętowy stos 6502 jest wykorzystywany przez kompilator
CC65 (to z niego korzystam, niewielkie fragmenty kodu pisząc w asemblerze).
- Do większości operacji wykorzystywany jest programowy stos, który
zaczyna pisać w górnej części pamięci RAM, idąc w dół.
- Układ posiada 8 kB pamięci RAM, co jest stosunkowo dużą wielkością jak
na tego typu konstrukcję.
- Do tej pory nie korzystam ze zbyt dużej liczby zmiennych i jest raczej
mało prawdopodobne, żeby stos zaczął nadpisywać pamięć.
- Zwłaszcza, że staram się ostrożnie gospodarować stosem. Nie tworzę
zbyt dużych ilości zmiennych statycznych wewnątrz funkcji (jeśli to
możliwe wykorzystując statyczne zmienne globalne, dzielone między
funkcjami), nie przekazuję zbyt dużej ilości parametrów (zamiast tego
posługuję się np. wskaźnikami na strukturę albo zmiennymi globalnymi
ustawianymi przed wywołaniem funkcji). Staram się też unikać
zagnieżdżonych wywołań funkcji i rekurencji.
> I jak zwykle - daj wolniejszy zegar, jak przejdzie ... moze cos nie
> wyrabia szybkosciowo.
Zegar już teraz jest wolny - jedynie 1 MHz. Właśnie z uwagi na duże
moduły połączone taśmą ze złączami IDC. To raczej sporo poniżej
możliwości WDC65C02 oraz wymagań współczesnych układów HCT...
Następne wpisy z tego wątku
- 20.08.20 16:39 Atlantis
- 20.08.20 16:44 Grzegorz Niemirowski
- 20.08.20 17:15 Atlantis
- 20.08.20 20:08 Atlantis
- 20.08.20 20:09 Grzegorz Kurczyk
- 20.08.20 20:32 Atlantis
- 21.08.20 09:54 J.F.
- 21.08.20 14:57 Piotr Gałka
- 22.08.20 10:37 Atlantis
- 23.08.20 15:38 Atlantis
- 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
Najnowsze wątki z tej grupy
- Problem z odczytem karty CF
- 74F vs 74HCT
- Newag ciąg dalszy
- Digikey, SN74CBT3253CD, FST3253, ktoś ma?
- Szukam: czujnik ruchu z możliwością zaączenia na stałe
- kabelek - kynar ?
- Podnieść masę o 0.6V
- Moduł BT BLE 5.0
- Pomiar amplitudy w zegarku mechanicznym
- ale zawziętość i cierpliwość
- Chiński elektrolizer tester wody
- Dzisiaj Bentlejem czyli przybieżeli sześciu Króli do Rysia na kasie
- ciekawy układ magnetofonu
- Mikroskop 3D
- Jak być bezpiecznym z Li-Ion?
Najnowsze wątki
- 2025-01-04 Katowice => Key Account Manager (ERP) <=
- 2025-01-03 Problem z odczytem karty CF
- 2025-01-03 Jazda z Warszawy do Krakowa teslą
- 2025-01-03 Wrocław => Konsultant Wdrożeniowy Comarch XL/Optima (Księgowość i
- 2025-01-03 Warszawa => International Freight Forwarder <=
- 2025-01-03 Mińsk Mazowiecki => Area Sales Manager OZE <=
- 2025-01-03 Warszawa => Spedytor Międzynarodowy <=
- 2025-01-03 Beztłumikowcy
- 2025-01-03 Lublin => Delphi Programmer <=
- 2025-01-03 Lublin => Programista Delphi <=
- 2025-01-03 [OT] nowe osoby w grupach?
- 2025-01-03 Gdańsk => Specjalista ds. Sprzedaży <=
- 2025-01-03 Warszawa => Developer .NET (mid) <=
- 2025-01-03 Katowice => Administrator IT - Systemy Operacyjne i Wirtualizacja <=
- 2025-01-03 Warszawa => DevOps Engineer <=