Systém přerušovací logiky mikrořadičů, paměť programu
Často požadujeme, aby některé části programu byly vykonány bez odkladu, tedy co nejdříve. K tomu nám slouží systém přerušení, který provádí pozastavení běhu programu v hlavní části (smyčce) a prioritně převede činnost mikrořadiče na podprogram, který se musí bez nějakého zdržení okamžitě provést. Takovéto podprogramy, které jsou prováděny na základě generování žádosti o přerušení, se nazývají obsluhou přerušení. Můžeme tedy říci, že podprogramy, které patří do množiny obsluhy přerušení, jsou mikrořadičem provedeny pouze na základě žádosti, kterou generuje k tomu určená periferie mikrořadiče, a to v co nejkratším možném čase.
Jak se provádí přerušení mikrořadiče?
Nedílnou součástí přerušovací logiky je takzvaný vektorový přerušovací systém. Jeho podstata spočívá v určení pevně stanovených (definovaných) adres v paměti programu, na které se programový čítač při generování požadavku žádosti o přerušení od určité periferie samočinně přenastaví . Na této adrese je v paměti programu uložena instrukce skoku na další adresu v programové paměti, kde se nachází první instrukce podprogramu (tzv. návěstí) pro obsluhu našeho přerušení. Po vykonání celého podprogramu přerušení a provedení poslední instrukce podprogramu pro obsluhu přerušení se programový čítač samočinně přestaví na adresu v programové paměti, kde se nachází další instrukce programu, která by byla provedena, kdyby nedošlo ke generování požadavku o přerušení činnosti běhu hlavního programu.
Tab. 1: Umístění adres vektorů přerušení mikrořadiče Atmega32