mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Suche Rat.


Autor: W. Meyer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wer kann mir einen Tip geben?

Ich beschäftige mich zwar mit ATMega103, aber dieses Problem
ist wohl nicht Typ-gebunden. Ich kann jetzt über die serielle
Schnittstelle des PC's mit dem Kontroller kommunizieren.
Die restlichen 6Pins liegen nun wohl brach. Ich bin aus der Beschreibung 
leider nicht schlau genug geworden. Es heißt dort,
wenn der UART aktiv ist  dann wird das DatenRichtungsRegister 
überschrieben. Oder betrifft das nur die vom UART benutzten Pins?
 Muß ich evtl. eine bestimmte Reihenfolge einhalten.

Eigentlich hat das schon ein 20 Jahre alter DDR-Kontroller (UB8840M) 
gekonnt.

Was muß ich machen, um die restlichen Pins trotzdem glichzeitig
als Ein- oder Ausgänge nutzen zu können.

W. Meyer.

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo W.,

> Es heißt dort,
> wenn der UART aktiv ist  dann wird das DatenRichtungsRegister
> überschrieben. Oder betrifft das nur die vom UART benutzten
> Pins?

das UART arbeitet völlig unabhängig von den anderen Portfunktionen, du 
kannst die restlichen Pins von Port D also ganz normal nutzen.

MfG
Andreas

Autor: W.Meyer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Andreas.
Erst mal vielen Dank für Deine Antwort.
Da ich vor ein paar Wochen noch blutiger Anfänger war, was Programmieren 
und AVR's angeht werde ich wohl noch lange bei AVR-Assembler bleiben.
Ich habe erst das DatenRichtungsRegister des Ports aktiviert:
Ldi sr25Uni,0b11110000 Dann:
Out DDRE,sr25Uni (wegen 103Mega, ist sonst PortD).
Das macht ohne UART-Aktivierung den Port zum Ausgang, was auch klappt 
(Habe zur Kontrolle auf PinE7-4 LED's angehen lassen).
Sobald ich aber zusätzlich den UART in Betrieb nehme,
indem das RxEn+TxEn-Flag gesetzt wird geht aber nur noch dieser.
Ich kann immer nur eins von Beiden in Betrieb nehmen brauche aber 
"gleichzeitig" PinE7-4 als Ausgang und Pin3und2 als Eingang. Pin1und0 
nutzt ja dann der UART für sich.
Da der M103 6Ports hat, ist das zwar nicht weiter schlimm aber wirklich 
nicht sehr elegant gelöst.
Wie muß ich vorgehen?

MfG. Wolfgang.

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

> Ich kann immer nur eins von Beiden in Betrieb nehmen brauche
> aber   "gleichzeitig" PinE7-4 als Ausgang und Pin3und2 als
> Eingang. Pin1und0 nutzt ja dann der UART für sich.

das ist komisch. Versuche mal, das Datenrichtungsregister erst nach der 
Aktivierung des UARTs zu setzen.
Was genau funktioniert denn nicht?

MfG
Andreas

Autor: W.Meyer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi.
Vielen Dank für den Tip.
Jetzt kann ich probehalber die angeschlossenen LED's
an und aus machen.
Manchmal braucht man eben doch einen Denkanstoß,
wenn man den Wald vor lauter Bäumen nicht mehr sehen kann.
Das DOS-Terminal-Programm empfängt zur Kontrolle die zum AVR 
abgeschickte ZeichenKette wieder.
Nun will ich mal sehen, wie ich PinE3 und PinE2 abfragen kann.
Vielleicht mit "In PinE3" usw...
MfG: Wolfgang.

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
W.Meyer schrieb:
>
> Nun will ich mal sehen, wie ich PinE3 und PinE2 abfragen kann.
> Vielleicht mit "In PinE3" usw...

Mit <b>in (register),PinE</b> kannst du den am gesamten Port E 
anliegenden Wert bekommen. Um Pin 2 und Pin 3 dann zu isolieren, 
verwendest du <b>andi (register), 0b00000110</b>. Meistens wird das aber 
nicht nötig sein, du kannst z.B. Pin 2 einfach mit <b>sbis PinE, 2</b> 
abfragen (sbis = skip if bit set, überspringe nächsten Befehl wenn bit 
gesetzt).

MfG
Andreas

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.