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