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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.