Stránka 1 z 1
IRQ Arduino Nano
Napsal: 06 říj 2020, 10:08
od RomanT
Prosím o radu:
Při sestupné hraně na pin3 volám ISR funkci.
Pokud během provádění ISR funkce přijde další sestupná hrana dojde po ukončení ISR funkce k dalšímu spuštění ISR.
Prosím o radu jak zakázat “zapamatování“ sestupné hrany na pin3. Deska arduino nano.
Re: IRQ Arduino Nano
Napsal: 06 říj 2020, 10:52
od ondraN
Jsou dvě cesty jak to udělat. Buď těsně před opuštěním ISR vynulovat registr interruptu od pinu (nemám teď datasheet, tak neřeknu jaký). Druhá možnost je si v ISR uložit čas (millis, případně i mikros) a před provedením hlavní rutiny se vždy podívat, kolik uplynulo od posledního interruptu a buď rutinu provést, nebo opustit.
První řešení je lepší tím, že šetří výkon a paměť. Má nevýhodu v tom, že impuls můře přijít těsně po tom, co jsme registr snulovali.
Druhé řešení je náročnější na čas i sežere pár byte paměti, ale umožní přesně definovat minimální odstup zpracování ISR a je HW přenositelné na jiný MCU.
Re: IRQ Arduino Nano
Napsal: 06 říj 2020, 11:12
od jankop
Ten první způsob by měl být zařazením
před ukončením přerušovací rutiny
http://gammon.com.au/interrupts
Re: IRQ Arduino Nano
Napsal: 06 říj 2020, 15:51
od milos
Díky moc za radu. Řešil jsem to půl dne a přitom je to tak jednoduché

Mám půjčovnu lodí na Vltavě, rád vám vaší ochotu oplatím.
www.ingetour.cz