Cteni EEPROM u T89C51RD2

Jan Waclawek konfera na efton.sk
Pondělí Leden 20 18:59:18 CET 2014


Aha, ale to este stale moze znamenat, ze mate vacsinu toho povodneho
programu, takze problem stale moze byt niekde inde v tom programe, nie?

Popis preruseni je v manuali sdcc, kap. 3.10; sposob pouzitia registrov v
kap. 3.10.2. V skratke, ak nepredpisete zmenu registrovej banky (co sa
robi zapisom do dvoch na to urcenych bitov v PSW), tak sa prerusenie sa
vykonava v tej istej registrovej banke (nulovej), pricom vsak prekladac
ulozi vsetky pouzivane registre na stack.

wek


----- Original Message ---------------
>Ten kód je jednoduchý, v cyklu se ètou byty s EEPROM a posílají v HEX na
>terminál. Když chyba nastane,
>posílají se samé nuly, když udìlám HW reset, ( není potøeba vypnutí ) , tak
>se data zase èotu dobøe.
>Intervaly mezi "dobøe " a "špatnì" jsou v øádu jednotek hodin.
>Teï jsem udìlal brutální úpravu.  EECON nastavuji na tvrdo pøi ètení na
>0x02 a pak zpìt na 0xFC, tak jak je po resetu.
>Taky jsem zakázal bìhem ètecí procedury všechna pøerušení. Jede to asi pùl
>hodiny bez problémù, ale to už tady bylo.
>
>Díval jsem se do assembleru ( produktu SDCC) a není mi jasné, jakým
>zpùsobem se pøiøazují registrové banky pro pøerušovací programy.
>Už jsem to zapomnìl od doby, kdy jsem psal v assembleru.  Pøerušovací
>rutiny ukládají na stack jen ACC, PSW a datapointer.
>Pokud  výše popsaná úprava nepomùže, budu to muset nastudovat.  Ta ètecí
>rutina používá R6 a R7 a pøerušovaví rutiny taky.
>Ale asi to je jiná banka, pokud si matnì pamatuju.
>



Další informace o konferenci Hw-list