Hi, mein µC wertet jede kleine Störung am RX Pin als Daten aus. Ich arbeite mit dem ATTiny2313 und einem RX Interrupt. Somit hängt mein Programm ewig in der ISR fest wenn ich den RX Pin berühre bzw. eine Störung darauf ankommt. Ich könnte natürlich den Input in der ISR filtern und nur bei "echten" Zeichen den Code ausführen lassen, aber das kann ja nicht die Lösung sein. Hat jemand eine Ahnung woher das Verhalten kommen könnte? Vielleicht ein defekter µC? btw: Eine Litze (Antenne) an dem RX Pin und eine blinkende LED in der ISR ist übrigens ein super Bewegungs- bzw. Berührungsmelder :-D
Benedikt schrieb: > Ich arbeite mit dem ATTiny2313 und einem RX Interrupt. Somit hängt mein > Programm ewig in der ISR fest wenn ich den RX Pin berühre bzw. eine > Störung darauf ankommt. Das unbekannte Programm ist fehlerhaft geschrieben. Und zudem ist die Schaltung fehlerhaft, denn ein offener Eingang darf nicht möglich sein, sondern mit einem Pullup/down auf einen inaktiven Pegel gezogen werden. > Hat jemand eine Ahnung woher das Verhalten kommen könnte? Offene CMOS-Eingänge sind extrem hochohmig. Ihre Eingangstransistoren laden sich so auf, dass sich die halbe Versorgungsspannung einstellt und der kleinste "Mückenfurz" daraus einen High- oder Low-Pegel machen kann. > Vielleicht ein defekter µC? Wenn du den offenen Eingang noch ein paarmal anfasst, dann ja.
Hängt der RX-Pin sonst nirgenswo dran? Wozu hast Du dann den Interrupt dafür freigeschaltet? Wenn es aber so empfindlich trotz angeschlossenem "Sender" ist, würde ich den Fehler eher bei ihm suchen. (zu Hochohmig - Da könnte dann ein Pull-Up helfen)
Lothar Miller schrieb: > Das unbekannte Programm ist fehlerhaft geschrieben. Das Programm läuft problemlos und so wie es soll. Problematisch ist meine Denkfähigkeit bei der Hitze. (nein sonst ist sie in Ordnung) RX braucht (natürlich) einen Pullup auf 5V, dann klappt alles. Mal wieder unnötig eine Frage gestellt :-P
@ Benedikt (Gast) >RX braucht (natürlich) einen Pullup auf 5V, dann klappt alles. Der UART Eingang braucht im Normalfall keinen Pull-Up. Denn schließlich wird dieser von einem IC, oft MAX232 getrieben. Aber ohne deine Schaltung zu kennen kann man das nicht beurteilen.
Benedikt schrieb: > Somit hängt mein > Programm ewig in der ISR fest wenn ich den RX Pin berühre bzw. eine > Störung darauf ankommt. Wer macht denn bloß sowas? Eine ISR macht ihr Ding und geht sofort wieder zurück. Im Falle der UART liest die ISR genau ein Byte ein. Und bis zum nächsten Byte (riesige 10 Bitzeiten lang) ist das Main wieder am Zuge.
Mein UART hängt zu 99% frei auf einem Pinhead, nur wenn man etwas konfigurieren will wird ein USB-UART Kabel angeschlossen. Ein Pullup auf 5V ist hier die Lösung. Jedoch braucht es keinen externen, denn hier kann der interne verwendet werden. Mit
1 | PORTD |= (1<<PIND0) |
ist das Problem behoben. Siehe: http://www.mikrocontroller.net/articles/AVR-Tutorial:_IO-Grundlagen#Pullup-Widerstand [/Problem]
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.