Hallo zusammen, habe eine kurze Frage zur Beschaltung des Interruptpins[INT0] eines ATMEGA 16. Arbeite gerade mit einem Sensor der mir ein Signal an einen 74HTC14(Schmitt-Trigger invertiert) liefert. Wenn ich diese Schaltung separat prüfe bekomme ich an einem Ausgang des 7414 0V bzw. 5V. Wenn ich diesen Ausgang direkt auf den ATMEGA 16 Interruptpin gebe bekomme ich nur eine Spannung von 0V bzw. 1,9V. Diese 1,9V reichen nicht um einen Interrupt auszulösen. Kann mir bitte jemand weiterhelfen und die interne Beschaltung dieses PINs erklären. Vielen Dank
Das deutet darauf hin, dass Du im Programm PD2 (INT0) als Ausgang initialisiert hast und 0 ausgibst. Die interne Beschaltung steht zwar im Datenblatt, aber schau lieber erst in Deinem Programm nach.
Vielen dank für die schnelle Antwort. Das ist richtig. Hab PD2 als Ausgang definiert. Im Datenblatt steht aber auch dass ich PD2 als Ausgang definieren muss wenn ich den externen Interrupt INT0 nutzen möchte.
Christoph M. schrieb: > Vielen dank für die schnelle Antwort. > Das ist richtig. Hab PD2 als Ausgang definiert. Im Datenblatt steht aber > auch dass ich PD2 als Ausgang definieren muss wenn ich den externen > Interrupt INT0 nutzen möchte. Wo genau? Das ist unlogisch. Ein Interrupt ist immer etwas, was von aussen an den µC herangetragen wird. Der Pin muss daher auf Input geschaltet sein. Bei manchen Funktionalitäten macht das die Hardware selbsttätig (zb wenn man den UART Empfangsteil einschaltet). Aber auf Ausgang schalten ist auf keinen Fall logisch. Wenn du so etwas liest, solltest du sofort stutzig werden. Ist es ein englisches Datenblatt, dann noch mal genau lesen, ob man sich nicht vertan hat und irgendwo ein not übersehen hat.
Ok,danke. Hat funktioniert. Werde das Datenblatt nochmal genauer lesen müssen.
Wenn ich mich richtig erinnere, steht im Datenblatt, dass sich der INT0 als software-generierte Interruptquelle nutzen lässt, wenn man ihn als Ausgang initialisiert. Das heißt natürlich nicht, dass man es so machen muss. Und natürlich kann der Pin dann nicht mit einem anderen Ausgang verbunden werden. Scheint mir eh eine Funktionalität zu sein, für die es außerhalb akademischer Tempel keine sinnvolle Anwendung gibt. Ein cli, gefolgt von einem (r)call zur Interruptroutine, machen dasselbe.
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.