<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="https://pmd85.borik.net/w/skins/common/feed.css?240204"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>Dĺžka impulzu prerušenia i8080 - História úprav</title>
		<link>https://pmd85.borik.net/wiki/D%C4%BA%C5%BEka_impulzu_preru%C5%A1enia_i8080&amp;action=history</link>
		<description>História úprav pre túto stránku na wiki</description>
		<language>sk</language>
		<generator>MediaWiki 1.11.1</generator>
		<lastBuildDate>Fri, 01 May 2026 20:44:13 GMT</lastBuildDate>
		<item>
			<title>Djb: rekat</title>
			<link>https://pmd85.borik.net/wiki/D%C4%BA%C5%BEka_impulzu_preru%C5%A1enia_i8080&amp;diff=1694&amp;oldid=prev</link>
			<description>&lt;p&gt;rekat&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class=&#039;diff-marker&#039; /&gt;
			&lt;col class=&#039;diff-content&#039; /&gt;
			&lt;col class=&#039;diff-marker&#039; /&gt;
			&lt;col class=&#039;diff-content&#039; /&gt;
			&lt;tr&gt;
				&lt;td colspan=&#039;2&#039; style=&quot;background-color: white; color:black;&quot;&gt;← Staršia verzia&lt;/td&gt;
				&lt;td colspan=&#039;2&#039; style=&quot;background-color: white; color:black;&quot;&gt;Verzia zo dňa a času 12:10, 5. február 2020&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riadok 41:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riadok 41:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Prerušovací impulz by mal teda mať dĺžku asi 9&amp;amp;mu;s až 12,5&amp;amp;mu;s. Ak je využívaný mechanizmus pozastavovania procesora pomocou signálov &amp;lt;code&amp;gt;READY&amp;lt;/code&amp;gt; alebo &amp;lt;code&amp;gt;HOLD&amp;lt;/code&amp;gt;, tak by mala byť dĺžka prerušovacieho impulzu predĺžená pomerne k dobe pozastavovania.&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Prerušovací impulz by mal teda mať dĺžku asi 9&amp;amp;mu;s až 12,5&amp;amp;mu;s. Ak je využívaný mechanizmus pozastavovania procesora pomocou signálov &amp;lt;code&amp;gt;READY&amp;lt;/code&amp;gt; alebo &amp;lt;code&amp;gt;HOLD&amp;lt;/code&amp;gt;, tak by mala byť dĺžka prerušovacieho impulzu predĺžená pomerne k dobe pozastavovania.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Category:Hardvér]]&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Category:Detaily o PMD 85 a kompatibilných]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Category:Detaily o PMD 85 a kompatibilných]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Wed, 05 Feb 2020 12:10:22 GMT</pubDate>			<dc:creator>Djb</dc:creator>			<comments>https://pmd85.borik.net/wiki/Diskusia:D%C4%BA%C5%BEka_impulzu_preru%C5%A1enia_i8080</comments>		</item>
		<item>
			<title>Djb: +kat</title>
			<link>https://pmd85.borik.net/wiki/D%C4%BA%C5%BEka_impulzu_preru%C5%A1enia_i8080&amp;diff=1210&amp;oldid=prev</link>
			<description>&lt;p&gt;+kat&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class=&#039;diff-marker&#039; /&gt;
			&lt;col class=&#039;diff-content&#039; /&gt;
			&lt;col class=&#039;diff-marker&#039; /&gt;
			&lt;col class=&#039;diff-content&#039; /&gt;
			&lt;tr&gt;
				&lt;td colspan=&#039;2&#039; style=&quot;background-color: white; color:black;&quot;&gt;← Staršia verzia&lt;/td&gt;
				&lt;td colspan=&#039;2&#039; style=&quot;background-color: white; color:black;&quot;&gt;Verzia zo dňa a času 23:09, 12. január 2014&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riadok 42:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riadok 42:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Category:Hardvér]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Category:Hardvér]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Category:Detaily o PMD 85 a kompatibilných]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Sun, 12 Jan 2014 23:09:02 GMT</pubDate>			<dc:creator>Djb</dc:creator>			<comments>https://pmd85.borik.net/wiki/Diskusia:D%C4%BA%C5%BEka_impulzu_preru%C5%A1enia_i8080</comments>		</item>
		<item>
			<title>Rombor: Nový článok</title>
			<link>https://pmd85.borik.net/wiki/D%C4%BA%C5%BEka_impulzu_preru%C5%A1enia_i8080&amp;diff=1207&amp;oldid=prev</link>
			<description>&lt;p&gt;Nový článok&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nová stránka&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Dĺžka impulzu prerušenia i8080 =&lt;br /&gt;
&lt;br /&gt;
Mikroprocesor i8080 poskytuje maskovateľné prerušenie, čo mu umožňuje spracovávať asynchrónne udalosti, ktoré prichádzajú &amp;quot;zvonku&amp;quot;. K tomu slúži vstupný pin &amp;lt;code&amp;gt;INT&amp;lt;/code&amp;gt; mikroprocesora, ktorý je citlivý na úroveň H.&lt;br /&gt;
&lt;br /&gt;
Mikroprocesor testuje &amp;lt;code&amp;gt;INT&amp;lt;/code&amp;gt; v dvoch prípadoch:&lt;br /&gt;
* po ukončení aktuálne vykonávanej inštrukcie&lt;br /&gt;
* ak je &amp;amp;mu;P v stave &amp;lt;code&amp;gt;HALT&amp;lt;/code&amp;gt;, teda po vykonaní inštrukcie &amp;lt;code&amp;gt;HLT&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
V oboch prípadoch je prerušenie akceptované iba v prípade, že je prerušenie povolené inštrukciou &amp;lt;code&amp;gt;EI&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Signál &amp;lt;code&amp;gt;INT&amp;lt;/code&amp;gt; nie je testovaný v dvoch prípadoch:&lt;br /&gt;
* ak je &amp;amp;mu;P v stave &amp;lt;code&amp;gt;NOT READY&amp;lt;/code&amp;gt; - vstupný pin &amp;lt;code&amp;gt;READY&amp;lt;/code&amp;gt; je na úrovni L - využívalo sa obvykle pri pomalých pamätiach, ktoré potrebovali väčší čas na vystavenie/spracovanie dát na zbernici&lt;br /&gt;
* ak je &amp;amp;mu;P v stave &amp;lt;code&amp;gt;HOLD&amp;lt;/code&amp;gt; - rovnomenný vstupný pin &amp;lt;code&amp;gt;HOLD&amp;lt;/code&amp;gt; je na úrovni H - využíva sa pre DMA&lt;br /&gt;
&lt;br /&gt;
Ak &amp;amp;mu;P zaregistruje požiadavku na prerušenie a zároveň je prerušenie povolené, &amp;amp;mu;P potvrdzuje túto požiadavku vyslaním stavového slova &amp;lt;code&amp;gt;INTERRUPT ACKNOWLEDGE&amp;lt;/code&amp;gt;. V prípade, že je ako budič zbernice použitý obvod i8228 (tiež prípad PMD 85), tak je požiadavka na prerušenie potvrdzovaná signálom &amp;lt;code&amp;gt;-INTA&amp;lt;/code&amp;gt;. Obvod, ktorý prerušenie vyvolal, musí počas aktivity signálu &amp;lt;code&amp;gt;-INTA&amp;lt;/code&amp;gt; dodať na zbernicu kód inštrukcie, ktorá prerušenie &amp;quot;spracuje&amp;quot; (obvykle je to jedna z Restart inštrukcií &amp;lt;code&amp;gt;RST x&amp;lt;/code&amp;gt;). i8228 umožňuje pripojením signálu &amp;lt;code&amp;gt;-INTA&amp;lt;/code&amp;gt; na pull-up +12V zabezpečiť automatické dodanie inštrukcie RST 7.&lt;br /&gt;
&lt;br /&gt;
Aby bolo prerušenie akceptované, musí byť, okrem vyššie uvedeného, splnená ešte jedna dôležitá podmienka. Prerušovací impulz na pine &amp;lt;code&amp;gt;INT&amp;lt;/code&amp;gt; musí trvať dostatočnú dobu a zároveň by tento impulz nemal byť príliš dlhý. &lt;br /&gt;
&lt;br /&gt;
Ak nie je &amp;amp;mu;P v stavoch &amp;lt;code&amp;gt;HALT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;HOLD&amp;lt;/code&amp;gt; a &amp;lt;code&amp;gt;NOT READY&amp;lt;/code&amp;gt;, tak je pin &amp;lt;code&amp;gt;INT&amp;lt;/code&amp;gt; testovaný počas posledného taktu inštrukčného cyklu. Teoreticky by teda stačilo, aby mal prerušovací impulz dĺžku jedného taktu procesora (&amp;amp;asymp; 0,5&amp;amp;mu;s). To by ale znamenalo, že by tento impulz musel prísť vždy presne na konci inštrukcie, čo je aj vzhľadom na rôzne trvanie jednotlivých inštrukcií prakticky nemožné. Prerušenie je asynchrónna udalosť a tak môže prísť kedykoľvek, aj uprostred vykonávania inštrukcie. Takýto krátky impulz by bol v tomto prípade vlastne &amp;quot;ignorovaný&amp;quot;, čo je nežiadúce.&lt;br /&gt;
&lt;br /&gt;
Prerušovací impulz by mal byť teda aspoň taký dlhý, aby bol akceptovaný, ak by prišiel počas vykonávania ktorejkoľvek inštrukcie. Z toho plynie, že by mal mať dĺžku aspoň ako najdlhšie trvajúca inštrukcia. Tou je inštrukcia &amp;lt;code&amp;gt;XTHL&amp;lt;/code&amp;gt;, ktorá trvá 18T a to je &amp;amp;asymp; 9&amp;amp;mu;s.&lt;br /&gt;
&lt;br /&gt;
Dĺžka prerušovacieho impulzu by zároveň nemala byť príliš dlhá, pretože by mohlo dôjsť k opätovnému vyvolaniu prerušenia pokiaľ by impulz neskončil pred opätovným povolením prerušenia.&lt;br /&gt;
&lt;br /&gt;
Majme kód, ktorý využíva prerušenie iba na presné časovanie. Prerušenie je vyvolávané pravidelne napr. každých 20ms.&lt;br /&gt;
&lt;br /&gt;
 ; Hlavná slučka programu.&lt;br /&gt;
       EI          ; povol prerušenie&lt;br /&gt;
 Loop: HLT         ; čakaj na prerušenie&lt;br /&gt;
       ...         ; pravidelne vykonávaný kód&lt;br /&gt;
       ...&lt;br /&gt;
       JMP Loop    ; návrat do slučky&lt;br /&gt;
 &lt;br /&gt;
 ; Rutina obsluhy prerušenia. Vyvolanie prerušovacej rutiny je pomocou&lt;br /&gt;
 ; inštrukcie RST 7 (viď. vyššie), ktorá trvá 11T.&lt;br /&gt;
 Intr: EI         ;  4T&lt;br /&gt;
       RET        ; 10T&lt;br /&gt;
&lt;br /&gt;
Rutina obsluhy prerušenia v&amp;amp;nbsp;tomto prípade nerobí nič, iba opätovne povolí prerušenie (ktoré bolo zakázané automaticky pri akceptovaní prerušenia) a&amp;amp;nbsp;prevedie návrat z&amp;amp;nbsp;tejto rutiny. Pomocou inštrukcie HLT sa čaká na prerušenie. Po akceptovaní prerušenia, trvá obsluha prerušenia minimálne 1+11+4+10=26T a to je &amp;amp;asymp; 12,7&amp;amp;mu;s. Ak by mal prerušovací impulz dĺžku väčšiu, ihneď po inštrukcii &amp;lt;code&amp;gt;RET&amp;lt;/code&amp;gt;, by bolo prerušenie opäť vyvolané.&lt;br /&gt;
&lt;br /&gt;
Prerušovací impulz by mal teda mať dĺžku asi 9&amp;amp;mu;s až 12,5&amp;amp;mu;s. Ak je využívaný mechanizmus pozastavovania procesora pomocou signálov &amp;lt;code&amp;gt;READY&amp;lt;/code&amp;gt; alebo &amp;lt;code&amp;gt;HOLD&amp;lt;/code&amp;gt;, tak by mala byť dĺžka prerušovacieho impulzu predĺžená pomerne k dobe pozastavovania.&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardvér]]&lt;/div&gt;</description>
			<pubDate>Sun, 12 Jan 2014 15:41:31 GMT</pubDate>			<dc:creator>Rombor</dc:creator>			<comments>https://pmd85.borik.net/wiki/Diskusia:D%C4%BA%C5%BEka_impulzu_preru%C5%A1enia_i8080</comments>		</item>
	</channel>
</rss>