Re: MCU 89C4051 a používání přerušení
Martin Záruba
swz na volny.cz
Sobota Únor 18 13:34:03 CET 2012
Já myslím, že v tom to nebude. Přerušení jdou přece na pevné adresy na
začátku programu. Pokud je obslužná rutina až v druhém 2kB bloku, je pouze
třeba použít skok jmp místo ajmp, ale to pozná překladač. Myslím, že v
rutině přerušení máte nějakou chybu. Buď neukládáte vše, co je použité v
rutině přerušení i v hlavním programu současně nebo to korektně neobnovíte
nebo povolíte přerušení ještě v obslužné rutině a vznikne další, čímž
nakonec přeteče zásobník. Jiné důvody mě nenapadají.
Martin Záruba
----- Original Message -----
From: "Jaroslav Rychtařík" <jardarik na gmail.com>
To: "HW-news" <hw-list na list.hw.cz>
Sent: Saturday, February 18, 2012 1:09 PM
Subject: MCU 89C4051 a používání přerušení
Zdravím.
Vrátil jsem se k jednomu starému projektu s 89c2051, abych si ho trochu
vylepšil. Program se vyšplhal přes 2,5 kb proto jsem vyměnil švába za
89c4051 se 4kb. Používám přerušení od časovače a ser. portu. Chová se to
divně, respektive při vyvolání přerušení od seriového portu dojde k
rozsypání celého programu. Pomocí aktivity led, která překlápí jednou
za celou smyčku programu vidím nějaké problémy, kdy LED změní rychlost
blikání nebo bliká náhodně.
Někde jsem četl, že s přerušením lze kvůli omezené délce skoku programu,
využívat pouze programy do 2048b je to pravda ?
Lze to nějak obejít? Například za cenu, že se sem tam přerušení nevyvolá?
Díky. Jarda R.
_______________________________________________
HW-list mailing list - sponsored by www.HW.cz
Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list
Další informace o konferenci Hw-list