Kas paaiskins "ukiskai",kas yra INTERRUPT ???
Cia susije su mikrokontroleriais (jei kas nezinot )
Labai busiu dekingas .
pertraukima ir reiskia.
kas cia neaiskaus?
Nu mikrokontroleris vykdo kazkokia programa, kai ivyksta interuptas, tai viska meta ir puola aptarnauti ta interupta, paskui vel grizta ten, kur buvo ir vykdo programa toliau.
[quote]
AVR_fan rašė:
Nu mikrokontroleris vykdo kazkokia programa, kai ivyksta interuptas, tai viska meta ir puola aptarnauti ta interupta, paskui vel grizta ten, kur buvo ir vykdo programa toliau.
Ta prasme tai ivyksta tada, kai koks nors ishorinis irenginys kreipiasi i procesoriu
[quote]
Elektronikas rašė:
Interupta gali sugeneruoti tiek isorinis, tiek ir vidinis irenginys.
Isoriniai: lygio pasikeitimas, teigiamas ar neigiamas frontai ant kokiu tai kontrolerio koju ir t.t.
Vidiniai: taimerio persipildymas, kokio tai bito nusistatymas ir t.t.
Tai as supratau taip :jei procas atlieka kazkokia programa ,ir pasikeitus
lygiui ant kazkokios kojos kur uzprogramintas "interruptas",procas sustabdo programos vygdyma ir puola vykdyti "be eiles" kazkokia paprograme.??? Ar teisingai ??? Ir dar.Jei as teisingai supratau.Kas bus,jei veikiant vienam "interruptui" suveiks kitas ???
Kai ivyksta interruptas, tai baigiama vykdyti vykdoma komanda, tada IP registro turinys (ant 8086 architekturos CS:IP) kishamas i steka ir IP nukreipiamas i default interrupt handler proceduros adresa (PIC atveju i 04h adresa) ten vykdomos interupto apdorojimo procedutos, o kai ivykdo tai tada is steko traukiamas IP ir griztama i pries tai buvusia programos vieta. Interuptai skirstomi pagal prioritetus (ne visose architekturose) tai jei ivyksta interuptas ir jo vykdymo metu ivyksta kitas aukstesnio prioriteto irq, tai vel IP pushinamas i steka ir sokama vykdyti kito irq.
Interupto paprograme geriausia daryti kuo trumpesne ir paprastesne. Jei ivykus interuptui reikia daryti kazka sudetingo, tegu interupto paprograme tik nustato kazkoki bita, paskui pagrindine programa patikrina ta bita ir daro ka reikia. Programuojant mikrokontrolerius klaidos interruptu paprogramese sunkiausiai aptinkamos ir istaisomos. Jei intrupto paprograme ilga, gali nespeti sureaguoti i kita interupta.
Parasyk koki kontroleri naudoji, gal kas paaiskins issamiau visus niuansus.
Beje reikia nepamirst ishsaugot registru turini ir po interupto vel ji grazint i registrus.
Teisingai, pirmas dalykas kuri turi padaryti interupto paprograme, tai issiaugoti procesoriaus busenos registra. To gali nedaryti tik tada, kai tikrai zinai kad paprograme nieko nepakeis, ir kai tau butinai reikia sutaupyti tuos kelis baitus atminties. Bent jau man toks variantas nepasitaike.
Naudoju 16f84.Man jau aisku.
Visiems aciu.
Bet jei turit ka dadet-rasykit.
Nu aisku, picas PIC’a ir naudoja