Citat:
Milan_95: Moze li program nakon externog prekida da se vrati na ono mesto sa koga je gl. program prekinut ? Sta treba da dodam ?
Poslije prekida program ce se sam vratiti tamo gdje ga je prekid omeo.
Medjutim, u zavisnosti sta se odvijalo u prekidnoj rutini, odredjeni registri/flagovi (pogledaj npr. STATUS REGISTER) u procesoru mogu biti promjenjeni.
Da bi obezbedio da se po povratku iz prekidne rutine u glavni program procesor nalazi u istom stanju u kome je bio prije nego je prekinut, to prva stvar koju moras uraditi po ulasku u prekidnu rutinu je da sacuvas stanje STATUS registra (i eventualno nekih drugih koji ce se promjeniti u prekidnoj rutini), i neposredno prije povratka iz prekidne rutine u glavni program vratis ta stanja u svoje pripadajuce registre.
Ne znam koji kompajler koristis, i to moze biti rjeseno automatski u kompajleru, a i ne mora.
U slucaju da jeste, kompajler ce sam dodati to u tvoj kod, a u slucaju da nije - moras sam.
Cak i kad jeste, ne mora znaciti da automatski dodaje za sve moguce registre, mozda samo za STATUS.
Pogledaj dokumentaciju kompajlera i pogledaj datasheet mikrokontrolera za vise detalja.