Hlavní navigace

Jak spočítat, kolikrát projelo autíčko na autodráze?

Erik Yokotashi Hamera 19. 8. 2009

Vypadá to jednoduše. Na autodráhu se přidělá světelná závora a výstup se přivede na některý ze vstupů paralelního portu. Pak již jen čteme ve smyčce stav vstupů paralelního portu a při změně (na autodráze je celkem jedno, jestli při náběžné hraně nebo sestupné hraně, ale ne na obou) přičítáme jedničku.

Jenomže se občas stane, že si počítač nějakého průjezdu nevšimne. Takže je potřeba nějaká paměť na průjezdy.

Čítač

Nejjednodušším řešením je čítač. Čítač je zařízení, které dostává na vstup impulsy a na výstupu má číslo. Vyrábějí se různé obvody s čítači. Čítače binární (počítají jen 0 a 1, takže je to vlastně dělička kmitočtů dvěma), dekadické (počítají od 0 do 9 a při přechodu 9 → 0 pošlou na výstup impuls, nebo se jako impuls použije dekadická 0), hexadecimální (což jsou 4 binární za sebou), nebo třeba děliče 32768 (32768 Hz je běžný kmitočet hodinových krystalů, takže tento čítač vyrobí pulsy dlouhé 1 s). Připojovat k počítači dekadický čítač je spíše nepraktické, protože nevyužijeme všechny kombinace vstupů. Také se vyrábějí čítače, které umí čítat vpřed i vzad. Připojit jde samozřejmě jakýkoliv čítač, jen je potřeba, aby měl vyvedené všechny bity, které chceme brát v úvahu.

Jak takový čítač funguje uvnitř? Vzpomeňte si na popis klopného obvodu D. Při aktivním signálu C (hodiny) se přepíše stav vstupu D na výstup Q (a na /Q je pak samozřejmě negace Q). Co se stane, když zapojíme výstup /Q na vstup D? Při každém příchodu hodin se změní stav čítače, protože na /Q je vždy opačný stav, než byl naposledy na D. Obvody, které byly nakresleny minulém článku měly ovládání hodin úrovní. Obvod by tedy fungoval tak, že by se při log 1 na hodinovém vstupu rozkmital, protože by přepsal D → Q, tím by změnil /Q a tedy i D a to by zase přepsal na Q. Takový obvod by byl dost k ničemu. Běžné obvody D mají naštěstí hodiny řízené hranou a ne úrovní (jejich vnitřní zapojení je o něco složitější – obsahuje de facto dva klopné obvody R-S a nějaká hradla navíc), takže je lze takto zapojit.

Binární čítač

Na vstup C tedy přivádíme signál a na výstupu Q se nám mění signál vždy po vzestupné (nebo sestupné – podle použitého obvodu) hraně vstupního signálu, takže má poloviční kmitočet. Z hodnoty je vždy vidět, zda dosud přišel sudý, nebo lichý počet vstupních pulsů. Máme tedy binární čítač (umí dva stavy – 0 a 1).

Vícebitový čítač

Těchto čítačů není problém zapojit za sebe více – výstup Q jednoho se připojí na vstup C dalšího. Výsledný čítač je tolikabitový, kolik jich zapojíme. Například z pěti klopných obvodu D je čítač od 0 do 31. Pak samozřejmě čítač přeteče, takže nelze poznat, jestli mezi čteními přišlo 32 impulsů, 64 impulsů, nebo žádný.

5bitový čítač

Atomické čtení

Proč zrovna pět bitů? Paralelní port má pět vstupu. Možná vás napadne, proč nepoužít multiplexer vstupů …

Řekněme, že máme osmibitový čítač připojený přes čtyřbitový multiplexer. Na čítači je hodnota 0×2f. Čteme spodní půlku. Získali jsme ‚f‘. Přepneme multiplexer. Během toho přijde vstupní impuls a překlopí čítač na 0×30. Přečteme horní půlku. Získáme ‚3‘. Myslíme si, že na čítači je 0×3f, což je zjevně špatně. Správné hodnoty jsou 0×2f, nebo 0×30. Problém je tedy ve čtení nadvakrát. Řešení je použít nějaký registr, do kterého se hodnota přepíše najednou a pak ho postupně přečteme. Registr musí být alespoň stejně velký, jako čítač. To už jsme dělali při zvyšování počtu výstupu paralelního portu. Takže připojíme 16-bit čítač – to je 16 klopných obvodů, k tomu dalších 16 klopných obvodů na zapamatování a další obvody na multiplexer. To bude pěkně velká deska. A přesně takový šestnáctibitový čítač je v osmibitovém mikroprocesoru atmega8, což je jedno pouzdro za 32 Kč (také tam museli vyřešit atomické čtení 16-bit slova do dvou 8-bit registrů). Z toho je vidět, že nemá smysl dělat velké čítače z jednotlivých klopných obvodů (nejsou-li extrémní nároky na rychlost).

Čítač jako výstup

Je-li potřeba více výstupů, ale procházejí se cyklicky všechny, nebo se procházejí vždy vzestupně a nevadí, když se na chvíli zapne nějaký nepotřebný, je možno ušetřit nějaké výstupy oproti dekodéru 1zN použitím čítače. Čítač potřebuje jeden výstup (kterým se čítá) a jeden vstup (kterým se zjišťuje, kdy je na začátku), případně druhý vstup (kterým se resetuje).

Za pomoci vhodně zapojených čítačů by šlo například připojit binární hodiny na jediný výstup paralelního portu (nebo by je samozřejmě šlo udělat jenom z čítačů a krystalového oscilátoru – tak fungují i běžné digitálky).

Našli jste v článku chybu?

21. 8. 2009 10:33

mk (neregistrovaný)

Tak kolikate auticko uz projelo? :D Me z toho vyplyva nasledujici:

a) priznivci a ctenari jsou deti vekove skupine or 3 do 12 let a hraji si intenzivne s autodrahou. Zaroven jsou vybaveni nadprumernym IQ, kdy jsou s bravurou schopni konstruhovat slozite logicke obvody a programovat rozhrani na Linuxu. Podobne byvaji priznaky Aspergerova syndromu.

b) priznivci a ctenari jsou v kategorii bezneho ajtaka (+-20 let), nicmene svou autodrahu stale nehodlaji odklidit pod postel a sentimentalne pro ni …

Lupa.cz: Proč firmy málo chrání data? Chovají se logicky

Proč firmy málo chrání data? Chovají se logicky

DigiZone.cz: ČRo rozšiřuje DAB do Berouna

ČRo rozšiřuje DAB do Berouna

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

120na80.cz: Pánové, pečujte o svoje přirození a prostatu

Pánové, pečujte o svoje přirození a prostatu

Lupa.cz: Propustili je z Avastu, už po nich sahá ESET

Propustili je z Avastu, už po nich sahá ESET

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte

Podnikatel.cz: EET: Totálně nezvládli metodologii projektu

EET: Totálně nezvládli metodologii projektu

Vitalia.cz: „Připluly“ z Německa a možná obsahují jed

„Připluly“ z Německa a možná obsahují jed

Podnikatel.cz: Podnikatelům dorazí varování od BSA

Podnikatelům dorazí varování od BSA

DigiZone.cz: Sony KD-55XD8005 s Android 6.0

Sony KD-55XD8005 s Android 6.0

Lupa.cz: UX přestává pro firmy být magie

UX přestává pro firmy být magie

Vitalia.cz: Paštiky plné masa ho zatím neuživí

Paštiky plné masa ho zatím neuživí

Podnikatel.cz: Babiše přesvědčila 89letá podnikatelka?!

Babiše přesvědčila 89letá podnikatelka?!

Podnikatel.cz: Víme první výsledky doby odezvy #EET

Víme první výsledky doby odezvy #EET

Lupa.cz: Google měl výpadek, nejel Gmail ani YouTube

Google měl výpadek, nejel Gmail ani YouTube

Měšec.cz: Jak vymáhat výživné zadarmo?

Jak vymáhat výživné zadarmo?

Lupa.cz: Co se dá měřit přes Internet věcí

Co se dá měřit přes Internet věcí

Root.cz: Vypadl Google a rozbilo se toho hodně

Vypadl Google a rozbilo se toho hodně

Vitalia.cz: Baletky propagují zdravotní superpostel

Baletky propagují zdravotní superpostel

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte