Forum: Mikrocontroller und Digitale Elektronik 80c51 Serieller RI Interrupt funktioniert nur das erste mal


von Johannes (Gast)


Lesenswert?

Hallo

Ich lasse 2 Mc AT89c51 über die serielle schnittstelle miteinander 
kommunizieren, das funktioniert eig alles, abgesehen davon, dass der 
serielle Interrupt des Empfangsbit Ri nur einmal ausgeführt wird.

der programmtext für das interrupt lautet:


SINT:
ajmp Serieller Interrupt

; weiterer Programmtext


Serieller Interrupt:
      if Bit RI then
         clr ri
         mov p2,sbuf
         cpl p3.4 ;daher weiß ich dass der serielle interrupt nur das 
erste
                    mal nach dem reset ausgeführt wird
         jmp warteschleife
       else
          reti
     end if




Ja- hm findet jemand meinen Fehler?
gibt es noch einen Interruptbit den man reseten muss?

Schon mal Danke im vorraus

Mit freundlichem Gruß
Johannes

von Otto (Gast)


Lesenswert?

Hallo Johannes,

steht am Ende von "Warteschleife" auch ein "reti"?

Gruss Otto

von Johannes (Gast)


Lesenswert?

ja also die schaltung funktionier so dass der Sender eine Adresse sendet 
und dann ca 500 ms auf eine antwort wartet, (was heißt dass er dann in 
den Interrupt  s.o. springt) sollte die antwort nicht kommen, dann frägt 
er die nächste adresse ab. also er bleibt nicht hängen und die antwort 
kommt auch jedes mal -hab ich mit dem oszi überprüft

wenn du das gemeint hast

Gruß Johannes

von Peter D. (peda)


Lesenswert?

Johannes wrote:

> wenn du das gemeint hast

Nein.

Interrupts müssen immer mit RETI beendet werden und nicht mit "JMP 
Irgendwohin".

Das RETI sagt der CPU nämlich, daß der interrupt fertig ist und ab dann 
der nächste Interrupt behandelt werden darf.

Die CPU kann nicht in Deinen Kopf sehen.


Peter



von Johannes (Gast)


Lesenswert?

Aha ok jetz weiß ich mehr-darauf wär ich nicht gekommen
OK ich werds dann morgen mal ausprobiern

VIELEN DANK

Johannes

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.