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