-
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
- 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-17 Kraków => MS Dynamics 365BC/NAV Developer <=
- 2025-02-17 Chrzanów => Programista NodeJS <=
- 2025-02-17 Warszawa => Node.js / Fullstack Developer <=
- 2025-02-17 Białystok => System Architect (Java background) <=
- 2025-02-17 Białystok => Solution Architect (Java background) <=
- 2025-02-17 Gliwice => Team Lead / Tribe Lead FrontEnd <=
- 2025-02-17 Gdańsk => PHP Developer <=
- 2025-02-17 Warszawa => Senior ASP.NET Developer <=
- 2025-02-17 Gliwice => Business Development Manager - Network and Network Security
- 2025-02-17 Mińsk Mazowiecki => Area Sales Manager OZE <=
- 2025-02-17 Odśnieżanie samochodu
- 2025-02-17 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=
- 2025-02-17 Dęblin => JavaScript / Node / Fullstack Developer <=
- 2025-02-17 Pompiarze...
- 2025-02-16 PV teraz