-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erj
e.net!feeder.erje.net!weretis.net!feeder8.news.weretis.net!news.mixmin.net!aioe
.org!peer03.ams4!peer.am4.highwinds-media.com!news.highwinds-media.com!newsfeed
.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-a-01.news.neostrada.pl!news.
neostrada.pl.POSTED!not-for-mail
Newsgroups: pl.misc.elektronika
X-Mozilla-News-Host: news://news.tpi.pl:119
From: Atlantis <m...@w...pl>
Subject: MC6840 - pomiar długości impulsu
Date: Mon, 19 Oct 2020 18:25:31 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
Thunderbird/78.3.1
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Language: pl
Content-Transfer-Encoding: 8bit
Lines: 31
Message-ID: <5f8dbdfb$0$550$65785112@news.neostrada.pl>
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 83.27.143.103
X-Trace: 1603124731 unt-rea-a-02.news.neostrada.pl 550 83.27.143.103:55180
X-Complaints-To: a...@n...neostrada.pl
X-Received-Bytes: 2380
X-Received-Body-CRC: 3501407872
Xref: news-archive.icm.edu.pl pl.misc.elektronika:758052
[ ukryj nagłówki ]W paru projektach "retro" wykorzystywałem już stary timer Motoroli
MC6840, do pomiaru czasu między zdarzeniami. Teraz chciałbym wykorzystać
go do pomiaru długości impulsu, w celu dekodowania sygnału DCF77.
Platforma na której będzie to chodziło jest oparta na równie antycznej
architekturze 6502.
Dokumentacja timera tutaj:
http://pdf.datasheetcatalog.com/datasheet/motorola/M
C6840.pdf
Chciałem tylko upewnić się, że dobrze rozumiem zasadę działania układu w
tym trybie.
1) Konfiguruję TIMER1 zgodnie z tabelką na dole strony 8. Czwarta opcja
(110) - przerwanie jest wywoływane, gdy czas trwania impulsu niskiego na
GATE1 będzie krótszy niż "Time Out".
2) Ładuję do licznika wartość 0xFFFF.
3) Licznik zaczyn odliczać, gdy na GATE1 pojawi się stan niski. W moim
przypadku zlicza 25 ms impulsy z innego licznika, podawane na wejście
C1. Z każdym impulsem jego wartość jest dekrementowana.
4) Jeśli na GATE1 ponownie pojawi się wartość wysoka przed wyzerowaniem
timera, zostanie wywołane przerwanie.
5) W przerwaniu odczytuję wartość TIMERA pamiętając, żeby zamienić bajty
miejscami (6502 jest little endian, rodzina układów Motoroli jest big
endian).
6) Żeby uzyskać liczbę zliczonych impulsów odejmuję odczytaną wartość od
0xFFFF.
7) Ponownie ładuję do timera 0xFFFF, bo w przeciwnym razie następnym
razem zacząłby liczyć tam, gdzie skończył. Nie jest przeładowywany
automatycznie, mam rację?
Moje założenia są prawidłowe, czy gdzieś popełniłem błąd?
Najnowsze wątki z tej grupy
- nie naprawiam więcej telewizorów
- Zrobił TV OLED z TV LCD
- Zasilacz USB na ścianę.
- Gniazdo + wtyk
- Aliexpress zaczął oszukiwać na bezczelnego.
- OpenPnP
- taka skrzynka do kablowki
- 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"
Najnowsze wątki
- 2025-03-05 Zielona GĂłra => Konsultant wdroĹźeniowy Comarch XL/Optima (KsiÄgowoĹ
- 2025-03-05 Białystok => Spedytor Międzynarodowy (handel ładunkami/prowadzenie
- 2025-03-05 Warszawa => Specjalista ds. Sprzedaży (transport drogowy) <=
- 2025-03-05 Środa Wielkopolska => Konsultant wewnętrzny SAP FI/CO <=
- 2025-03-05 Zielona Góra => Senior Field Sales (system ERP) <=
- 2025-03-05 Warszawa => Data Engineer (Tech Lead) <=
- 2025-03-05 Kraków => Business Development Manager - Network and Network Security
- 2025-03-05 Zaniepokojeni mieszkańcy
- 2025-03-05 Ile pieniędzy ma bank?
- 2025-03-05 Ostrów Świętokrzy => Node.js / Fullstack Developer <=
- 2025-03-05 Białystok => Architekt rozwiązań (doświadczenie w obszarze Java, A
- 2025-03-05 Warszawa => Frontend Developer (Angular13+) <=
- 2025-03-05 Warszawa => Frontend Developer (obszar Angular13+) <=
- 2025-03-05 Chiny-Kraków => Backend Developer (Node + Java) <=
- 2025-03-05 Warszawa => JavaScript / Node / Fullstack Developer <=