Hallo, seit ein paar Tagen habe ich folgendes Problem: Um einen Tastendruck zu erkennen, wird ein Pin des Controllers auf Masse gezogen. Dazu habe ich zunächst den interenen Pull-Up aktiviert. Wenn jetzt ein Interrupt durch eine eingehende CAN-Botschaft ausgelöst wird, scheint sich der Pull-Up von alleine zu deaktivieren und es wird eine Tasterbetätigung erkannt, obwohl dieser nicht betätigt wurde. Dieses Problem tritt nicht bei jedem Interrupt auf sondern sporadisch. Der Controller ist ein AT90CAN128. Alte Softwarestände die Monate ohne Probleme liefen, haben das gleiche Problem. Meine Vermutung ist, dass der At90can128 in irgendeiner Weise defekt ist. Hat jemand schonmal dieses Problem gehabt?
hast dus schonmal mit einem anderen Controller probiert? (Soft- oder Hardware Fehler)
es ist etwas schwierig einen anderen Controller einzusetzten. Wie gesagt, die Software hat einwandfrei funktioniert. Ich habe jetzt mal einen externen Pull-Up verdrahtet, jedoch habe ich immer noch das selbe Problem
Manni schrieb: > Meine Vermutung ist, dass > der At90can128 in irgendeiner Weise defekt ist. Sehr unwarscheinlich. Nimm eine ordentliche Entprellroutine (vorzugsweise Timerinterrupt) und Dein Problem ist gegessen. Peter
Manni schrieb:
> die Software hat einwandfrei funktioniert.
Diese Denkweise sollte man sich schleunigst abgewöhnen, sie ist nicht
zielführend.
Richtig:
"Ein eventueller Softwarefehler hat sich bisher noch nicht ausgewirkt."
D.h. man ist sich bewußt, es gibt keinen Softwareabschnitt, den man von
der Fehlersuche ausschließen darf.
Peter
Hallo, das Signal ist dauerhaft "0". Ich wüsste nicht was eine Tastenentprellung da bewirken sollte.
Manni schrieb:
> Hallo, das Signal ist dauerhaft "0".
Hallo, das kann doch keiner riechen!
Du hast nur "Tasterbetätigung erkannt" gesagt. Das ist ein riesen
Unterschied.
Peter
Manni schrieb: > es ist etwas schwierig einen anderen Controller einzusetzten. Wie > gesagt, die Software hat einwandfrei funktioniert. Ich habe jetzt mal > einen externen Pull-Up verdrahtet, jedoch habe ich immer noch das selbe > Problem Das bestärkt mich eigentlich in meiner Meinung, dass du einen Programmfehler hast. Ein externer Pull-Up kann ja nicht durch eine eingehende CAN-Nachricht deaktiviert werden.
der externe Pull-Up hatte eine kalte Lötstelle. Jedoch vermute ich, dass es doch ein Softwarefehler ist. Ich habe gerade mal einen Softwarestand geladen, von dem ich wusste das er funktioniert und das tat er dann auch. Ich versuche jetzt mal den Fehler ausfindig zu machen und melde mich dann wieder
Hallo Manni Ich habe an einem ATMega16 ein sehr ähnliches Problem. Bei Tastendruck werden EingangsPins mit auf Masse gezogen, die gar nicht mit dem Taster verdrahtet sind. Hattest Du eine Lösung zu Deinem Problem bekommen ? Grüße Torsten
Dann wird wohl ungewollt eine 0 in den Ausgangs-Port-Teil des Tasteneingangs geschrieben werden ... und schwupp ist der Pullups weg ...
Torsten B. schrieb: > Hallo Manni > Ich habe an einem ATMega16 ein sehr ähnliches Problem. > Bei Tastendruck werden EingangsPins mit auf Masse gezogen, die gar nicht > mit dem Taster verdrahtet sind. Hattest Du eine Lösung zu Deinem Problem > bekommen ? Schaltung kontrollieren Programm kontrollieren Wir reden nicht zufällig vom Port C? Wenn ja: Kontrollieren ob JTAG abgeschaltet ist.
Ja doch. Es ist PORTC, aber ich habe mich mit JTAG bisher nicht beschäftigt. Sind die Zweitfunktionen der IO Pins nicht alle nach dem Reset erst einmal deaktiviert ?
>Sind die Zweitfunktionen der IO Pins nicht alle nach dem >Reset erst einmal deaktiviert ? JTAG wird über JTAGEN-Fuse aktiviert, also Fuse-Einstellung kontrollieren.
Manni schrieb: > Wenn > jetzt ein Interrupt durch eine eingehende CAN-Botschaft ausgelöst wird, > scheint sich der Pull-Up von alleine zu deaktivieren und es wird eine > Tasterbetätigung erkannt, obwohl dieser nicht betätigt wurde. Hinter dem Interrupt steht doch ein Programm. > Dieses Problem tritt nicht bei jedem Interrupt auf sondern sporadisch. Vielleicht hängt das Problem mit dem Inhalt der CAN-Botschaft zusammen. Könnte es sein, dass eine Botschaft auch eine Ausgabe über einen Portpin auslöst? Und dabei ungewollt eine 0 in den Ausgangs-Port-Teil des Tasteneingangs schreibt.
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.