Hi, habe mal eine Frage: und zwar benütze ich RX-TX auf PortD und möchte aber auf die restlichen 6 Pins dieses Ports nicht verzichten. Wenn ich aber Tasten anschliesse, werden deren Signale ständig unterbrochen. Ich denke mal, das liegt an dem Interrupt, welcher durch RX-TX ausgelöst wird oder so. Weiß mir jemand einen Rat, wie ich trotz der Verwendung von RX-TX meine Tasten anschliessen kann? Das gleiche passiert übrigens auch auf PortA: Dort verwende ich ADC0 - und muss dort sogar auf 7 Pins verzichten. (auch hier Interrupt gestützt, d.h. nach Auswertung wird Interrupt erzeugt) Aber ich brauche die Pins (entweder PortD oder PortA), da die anderen Ports schon alle belegt sind. Hoffe, jemand kann mir einen guten Tip geben. Schon mal danke. MfG Martin
Ich verstehe nicht, was du mit "Signale unterbrochen" meinst? Ich vermute mal eher, dass es sich bei deinem Problem um Tastenprellen handelt.
Unter "Signale unterbrochen" verstehe ich folgendes: ich drücke eine Taste und ein Zeichen wird gesendet und zwar so lange, wie ich die Taste drücke. Aber in regelmässigen Abständen wird das Senden für kurze Zeit unterbrochen. Und das muss ich irgendwie unterbinden. Diese Sendeunterbrechung habe ich nicht, wenn ich z.B. PortB für die Tasten nehme. Deswegen kann es sich nicht um Tastenprellen handeln. Hoffe, dass es jetzt klarer ist. Bevor jemand auf die Idee kommt: PortB und PortC sind schon belegt und können nicht mehr für Tasten verwendet werden - deswegen brauch ich von PortD oder PortA noch Pins, die funktionieren.
Wie fragst du denn die Taste ab? Wie sieht deine Schaltung aus?
>>Diese Sendeunterbrechung habe ich nicht, wenn ich z.B. PortB für die >>Tasten nehme. Deswegen kann es sich nicht um Tastenprellen handeln. Das ist Zufall oder programmtechnischer Unsinn. Jeder Pin am AVR kann unabhängig von einem anderen, auch desselben Ports, genutzt werden, wenn man die dazu notwendigen Befehle kennt und verwendet. Aber wie oben bereits gesagt: Mehr Details: welche Programmier-Sprache, welcher Prozi, welche Schaltung?
STK500 darauf die Tasten, LEDs und RS232 das ganze in Assembler, bei 3,6864 MHz mit Mega16 9600 Baud Tasten frage ich periodisch ab, wenn eine gedrückt ist, bleibe ich bei der Taste mit einer Schleife: schleife: sbic PINA, 2 rjmp schleife
Hi Martin, Poste mal etwas mehr Code. (insb UART Ansteuerung) Bestimmt der typische Fehler, dass vor dem Senden eines Zeichen nicht gewartet wird, bis die UART wieder frei ist. Weiterhin ist das mit der Schleife unsauber, wer garantiert dir, dass der Taster nicht während des Schleifendurchlaufs prellt? Schau dir mal ein paar Routinen zur Tastenentprellung an (Codesammling) Gruß Roland
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.