Forum: Mikrocontroller und Digitale Elektronik AT89: EA-Bit setzen?


von Reinhard S. (rezz)


Lesenswert?

Ich hab hier ein Problem mit einem AT89x52er:

Ich hatte einen ASM-Quelltext, der mir an einer Stelle Probleme machte 
(nicht-setzen eines Wertes), diese Stelle war eingerahmt von einem

set EA    und
clr EA

Nun hat laut Datenblatt EA je nach Wunsch entweder auf Masse zu liegen 
(wenn externer Code erlaubt sein soll, wie bei mir) oder auf Vcc (wenn 
nur interner Code).

So gesehen wäre es doch sinnlos da ein High oder Low auszugeben?

Das Problem verschwand nachdem ich die set- & clr-Befehle entfernte, 
deshalb meine Frage.

von Route_66 (Gast)


Lesenswert?

Hallo! /EA ist kein Ausgang sondern ein Eingang. Er kann durch Software 
weder gelesen noch gesetzt oder gelöscht werden. Außerdem dient er als 
Eingang beim Programmieren des internen Flash.

EA ist in deiner Software jedoch das Bit 7 des IE (Interrupt Enable 
Register) und kann gleichzeitig alle Interrupts sperren oder die mit EX0 
bis ET2 freigegebenen gleichzeitig freischalten.

von Peter D. (peda)


Lesenswert?

Reinhard S. schrieb:
> Das Problem verschwand nachdem ich die set- & clr-Befehle entfernte,
> deshalb meine Frage.

Das EA-Bit heißt "Enable All" und hat nix mit den Pins zu tun.

Eine Klammerung mit Interrupt disable/enable bewirkt, daß die Sequenz 
atomar ausgeführt wird.
Es hat bestimmt einen wichtigen Grund, warum das jemand gemacht hat.

Man vermeidet damit Fehler, die sehr selten auftreten und daher schwer 
zu finden sind.
Nach Murphys Gesetz treten solche Fehler umso häufiger auf, je weiter 
weg das Gerät ist und je schwerwiegender ein Ausfall ist.


Du solltest genau prüfen, warum das bei Dir einen Fehler verursacht.
Und ob Du es wirklich weglassen darfst.


Peter

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.