Přesunout vlákno do jiné kategorie

 Chystáte se přesunout vlákno z kategorie Hlavní diskuze do zvolené kategorie.


26.01.2013 (16:26:33)
antibalda:
Dotaz se týká programování v C

Chtěl bych poprosit "milana" nebo někoho jinýho jestli by nebyl tak hodný a nevysvětlil nebo jednoduše popsal jak v jazyce C naprogramovat multiplexní display a čítač frekvence. Já to prostě z těch příruček nemůžu pochopit. Děkuji předem
26.01.2013 (16:49:46)
miondra21:
na jedno z externích přerušení přivádět impulzy a v příslušné funkci čítat pulzy v proměnné.. pak spustit jeden čítač/časovač s intervalem přerušení třeba 100ms a v příslušné funkci vždy vzít hodnotu čítající proměnné a spočítat na základě napočítaných impulzů za 100ms danou frekvenci - tu si někam uložit.. proměnnou na konci vynulovat, nebo radši si ji hned po začátku této funkce zkopírovat do jiné proměnné a tu čítající ihned po tomto vynulovat (čas mezi začátkem počítání a vynulováním musí být co nejmenší, aby byly vždy započítány všechny pulzy).. co se multiplexu týče, tak spustit druhý čítač/časovač s intervalem třeba 10ms a v příslušné funkci při každém jejím provedení vypsat jednu číslici (tzn. byla by v ní proměnná, která by čítala místo na displayi, vypsání správného čísla je už jen trocha matematiky (celé číslo se musí např. převést na cifry do pole)).. co se týče priorit přerušení, tak externí přerušení musí mít nejvyšší prioritu, pod ním čítač/časovač pro funkci počítání frekvence a až na třetím místě multiplex
26.01.2013 (18:07:37)
milan:
hele já sem zastánce assembleru. až budu umět to, tak pojedu v Cčku.
multiplex spočívá v tom, že nastavíš č/č tak, aby generoval přerušení. jedním přerušením zobrazíš jedn číslici, druhým druhou třetím třetí a od začátku...
ale nejdříve musíš přepočítat číslo na segmenty (zobrazení registru)
3)
zjistíš, jesli je číslo větší jak sto>pokud ne, skočíš na 2) >pokud ano, odečteš sto a zvýšíš registr "stovky" o jedničku>skočíš na 3.
2)
je větší jak deset >pokud ne, skočíš na 1 > pokud ano, odečteš deset, a přičteš jedničku do registru desitky > skočíš na 2
1)
zkopíruješ registr do registru jednotky
takto přepočítáš. pak zobrazuješ takto (předvedu u desítek):
zkopíruješ desítky do pomocného registru > pomocný registr postupně porovnáš s čísly 0 -9 podle toho zapneš či vypneš jednotlivé segmenty
doufám že to pochopíš. nezapomen před novým výpočtem vymazat registry stovek, jednotek a desítek! jinak to nefunguje.
26.01.2013 (18:18:43)
Goheeca (web) :
postupně porovnáš s čísly 0 -9
lepsi je reprezentace mit ulozeny v programovy pameti pekne za sebou a tu hodnotu cifry pouzivat jako offset ...


Přezdívka:*
Heslo:*
Kam:

Zde lze přesunout vlákno do jiné kategorie. Tuto operaci může udělat pouze admin.
Seznam uživatelů
Zpět na knihu