www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik RX-TX verwendet: dadurch gesamter Port blockiert?


Autor: Martin Vojtek (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Daniel M. (usul27)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich verstehe nicht, was du mit "Signale unterbrochen" meinst?

Ich vermute mal eher, dass es sich bei deinem Problem um Tastenprellen
handelt.

Autor: Martin Vojtek (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Daniel M. (usul27)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie fragst du denn die Taste ab? Wie sieht deine Schaltung aus?

Autor: TravelRec. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Martin Vojtek (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Roland Praml (pram)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.