Hallo! Wenn bei einem 8051 MC ein Interrupt (INT0) durch eine negative Flanke ausgeführt werden soll, muss dann INT0 bei der Initialisierung auf High gesetzt werden, oder kann man diesen befehl auch weglassen??? Danke
Lieber TomTom... So weiß ich das auch nicht. Hast du kein Datenblatt? Dort müsste ich es auch erst herauslesen. Also.....
Also, im Datenblatte steht...INTO wird 0 gesetzt, das bedeutet doch, das ich zuerst immer auf 1 setzen muss, und wenn dann eine Negative Flanke (Interrupt) auftritt, wird geschalten, oder seh ich das falsch??? Das Problem ist nur, das in meinen Unterlagen INT0 nicht immer zuerst auf 1 gesetzt wird....
Hab jetzt nochmal geschaut... INT0= aktiv LOW, also mit einer 0 Muss man dann bei der initialisierung, wenn man mit einer negativen Flanke schalten will, immer vorher INT0 auf 1 setzen???
Nach einem Reset sind alle Ports FF und da läßt du sie auch (zumindestens den INT0 Pin). Wie soll ein Portpin eine Null erkennen wenn er immer 0 ist ?
SFR: TCON Hier wird das Bit IT0 auf 1 gesetzt --> fallende Flanke löst den INT0 aus. >Das Problem ist nur, das in meinen Unterlagen INT0 nicht immer zuerst >auf 1 gesetzt wird.... Was meinst Du damit?
TomTom wrote: > Also, im Datenblatte steht...INTO wird 0 gesetzt, das bedeutet doch, das > ich zuerst immer auf 1 setzen muss, und wenn dann eine Negative Flanke > (Interrupt) auftritt, wird geschalten, oder seh ich das falsch??? > > Das Problem ist nur, das in meinen Unterlagen INT0 nicht immer zuerst > auf 1 gesetzt wird.... Theoretisch sind alle Portpins nach dem Reset auf 1, also mit internem pullup. Kannst Ihn aber sicherheitshalber nochmal auf 1 setzen. Wenn Du den INT0 oder INT1 zugelassen hast, kannst Du sogar durch setzen des Ports auf 0, künstlich einen ext. Interrupt erzeugen. Dirk
>Nach einem Reset sind alle Ports FF und da läßt du sie auch >(zumindestens den INT0 Pin). Das ist großer Quatsch. Der Resetwert des TCON ist 0000 0000! Also muß IT0 gesetzt werden.
jack wrote:
> Das SFR TCON ist ja kein Port!
Er meinte wohl die Konfiguration des PortPins INT0!
Der Zustand der PortPins nach Reset ist 1.
TCON ist ein SFR und kein Port.
Die Defaultwerte der SFRs stehen im Datenblatt.
Dirk
Also ist INT0 bzw INT1 nach einem Reset "HIGH", aber zur Sicherheit kann man ihn trotzdem nochmal auf "HIGH" setzen, hab ich das jetzt richtig verstanden? Bin ganz durcheinander von den ganzen Meldungen...
Na dann. Ich dachte, er wollte den Interrupt konfigurieren (im TCON). @joe Tut mir leid, den "Quatsch" nehme ich sofort zurück.
Wenn Du die fallende Flanke im TCON-Register eingestellt hast, brauchst Du nichts weiter zu tun. Natürlich kann man einen Port, der bereits high ist nochmal high setzen, da geht nichts kaputt.
Hallo, da ich selbst mal dieses Thema jetzt brauche, setz ich mal ein Fazit. Wenn man Flankengesteuert interrupts mit einem 8051 auslosen moechte und zwar genauer gesagt eine HIGH - LOW Flanke dann : SETB EX0 SETB IT0 ; HIGH -> LOW (fallende Flanke) loest den Interrupt aus und bei LOW - HIGH Flanke ist es dann also ?! : SETB EX0 CLR IT0 ; LOW -> High (steigende Flanke) loest interrupt aus Der Interrupt ist LOW aktiv, bedeutet eine Flanke von 1 nach 0 loest im allgemeinen den Reset aus. Ist das Fazit richtig? Daniel
daniel wrote: > und bei LOW - HIGH Flanke ist es dann also ?! : > > SETB EX0 > CLR IT0 ; LOW -> High (steigende Flanke) loest interrupt aus > > Der Interrupt ist LOW aktiv, bedeutet eine Flanke von 1 nach 0 loest im > allgemeinen den Reset aus. > > Ist das Fazit richtig? > > Daniel Hi Daniel! Dein Fazit ist falsch. Wenn du IT0 = 0 setzt, so wird nicht auf Flanken reageiert (H -> L) sondern auf den Pegel des Pins (L). D.h., dass dein INT0-Pin = 1 ist und sobald eine L anliegt wird der Interrupt ausgelöst. lg Cri
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.