Banda ® , 21.10.2007 17:41:40
ano
zastaví a po dokončení smyčky kterou má projet v přerušení se vrátí zpět do hlavního programu
vrati sa iba v pripade tej spravnej instrukcie na konci obsluhy prerusenia :)
PIC beginner, 22.10.2007 17:06:21
To se teda pokaždý nevrátí do místa dlavního programu,jak toho docílím aby se běh programu vrátil zpět ?
Dobře dobře vrátí se tehdy když je to napdany v programu
Zpatky se vratis instrukci RETFIE, tedy na to misto, odkud preruseni uteklo z hlavniho programu a s tim, ze se opet uschopni preruseni. Vsechno ostatni, do ceho preruseni hrabne, musis pracne na zacatku preruseni uklidit a na konci vratit.
Predevsim Work a Status, a jestli pouzijes tak take FSR.
PIC beginner, 22.10.2007 22:03:28
>do ceho preruseni hrabne, musis pracne na zacatku preruseni uklidit a na konci vratit.
Predevsim Work a Status, a jestli pouzijes tak take FSR. <
Nějak mi to není jasný.Při inicializaci programu povolím přerušení pouze u Timeru.Když dojde k přerušení,skočí to na začátek obsluhy přerušení.Jako první zakážu všechna přerušení,pak bude vykonávat svůj kód (např. inkrementuji couter)na konci povolím přerušení (pouze u timeru) a RETFIE ? můžete to nějak rozepsat do podrobna jak je to myšleno?
€gr€s, 22.10.2007 22:18:26
ja som skorej na AVR, ale myslim ze sa ti tu snazia naznacit, ze ked v hlavnom programe pracujes s nejakymi registrami, zrazu sa vykona prerusenie, tak v nom na zaciatku treba ulozit registre s kt. ides pracovat a na konci ich obnovit.. aby ked sa prerusenie ukonci a skoci spat do programu nic necakane nezmenilo
kapisto?
No a do pracovniho registru a statusu se jaksi hrabne vzdycky. Proste musis po sobe (po preruseni) uklidit jako po mejdanu, aby rodice (hlavni program) nic nepoznal :o)
Jinak se uschopnuji jednotlive zdroje preruseni a globalni priznak, ktery se pri vyolani kazdeho preruseni shodi, aby jsi neudelal preruseni v preruseni.
S vice urovnemi (a tedy i s prioritou) preruseni se nepocita.
PIC beginner, 24.10.2007 15:49:37
OK ,myslím že je mi to jasný.
Ještě bych se chtěl zeptat,když budu mít povoleno několik přerušení,jak zjistím na kterém hardware přerušení nastalo ?
Díky.
jezevec, 24.10.2007 15:59:25
Na začátku přerušení musíš otestovat všechny zdroje, od kterých mohlo přerušení nastat.
Presne tak, prerusovaci rutina musi byt konstruovana na vsechny preruseni, na zacatku normalne uklidis S,W,FSR a pak se rozskocis podle toho, ktere preruseni nastalo.
Dobre je mit ostreny korektne i stav, ze hazardne nastalo preruseni od vice zdroju soucasne. Testovani tech priznaku uz delas sekvencne, jeden po druhem, takze uz s nejakou casovou prioritou obsluhy preruseni.