stack u PIC 18Fxxx

Jan Kral kral@fortech.cz
Úterý Leden 4 17:43:38 CET 2005


A skutecne se u PICe musi z preruseni vracet pres return? Nejde jen vyhodit navratovou adresu ze zasobniku (myslim, ze u PICe bylo dokonce zminovano, ze klasicky zasobnik nema), povolit preruseni a skocit do hlavni smycky na spravne misto na tvrdo skokem? Na AVRku bych to takto udelal a troufnu si tvrdit, ze by nebyl zadny problem.

JK

> 
> > ale tech dat je docela dost, takze je nemam kam uklidit
> > a posilaji se UARTem, coz trva dost dlouho na to, abych 
> celou dobu zustaval
> > v preruseni. Bude mi to blokovat prijem a tak. 
> 
> Ak mate vela prijatych dat a nemate ich kam dat, tak predsa 
> nevadi, ze 
> to blokuje prijem, ved potom nemate kam dat ani prijimane 
> data, ci nemam 
> pravdu?
> 
> Inak sa este pouziva taka finta, ze sa ukonci prerusenie v 
> zmysle, ze sa 
> znovupovolia prerusenia, spracuju sa data a az potom sa vrati do 
> hlavneho cyklu, nieco ako:
> 
> prerusovacia_rutina:
> 	prijmi_udaje
> 	ak neprijate_vsetko skoc_na koniec_prerusenia
> 	push pokracovacia_adresa
> koniec_prerusenia:
> 	reti
> pokracovacia_adresa:
> 	spracuj_prijate_data
> 	ret
> 
> 
> Dalsia moznost je, ak sa maju prijate data len presypat na 
> vystup, tak 
> sa v preruseni prijimaca nakopne vysielanie a ukonci sa prerusenie 
> prijimaca; o skutocne vyslanie sa postara prerusenie vysielaca.
> 
> > Snad bych mohl v tom preruseni nastavit na 1 pocitadlo te 
> smycky, takze se
> > sice neukonci hned, ale dobehne jeden cyklus, to by tak 
> nevadilo. Ona
> > nastesti ta smycka neni uplne nekonecna, ale vzdycky 
> probehne konecny pocet
> > cyklu, otestuje se nejaky priznak a pak nanovo. Takhle by 
> to snad slo.
> > 
> To je v konecnom dosledku takmer to iste ako v cykle testovat nejaky 
> priznak nastavovany v preruseni; a to ste (neviem preco) hned na 
> zaciatku zamietli.
> 
> wek



Další informace o konferenci Hw-list