RX-TX verwendet: dadurch gesamter Port blockiert?

Gast #342963
Lesenswert?

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
Gast #342965
Lesenswert?

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.
Gast #342967
Lesenswert?

>>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?
Gast #342968
Lesenswert?

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
#342969
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren