Ports ansprechen, die es nicht gibt

Gast #90324
Cool!
Ich habe heute mein erstes funktionierendes Mikrocontroller-
Programm geschrieben und ausgeführt.

Noch eine Frage: Ist es eigentlich schlimm, wenn ich Ports
anspreche, die dem Mikrocontroller nicht zur Verfügung
stehen?

Der ATMega8 hat z.B. keinen PB6 - 8.
Ich will mit dem C-Befehl "outp (0xFF, PORTB);" direkt
alle PB's auf Ausgabe stellen. Mit dem Befehl spreche ich
natürlich auch die PB6 - 8 an. Sollte ich lieber jeden
Port von PB0 bis PB5 einzeln auf Ausgabe stellen?
Kann ich durch verändern der Ports PB6 - 8 etwas im
Speicher des Mikrocontrollers oder etwas anderes verändern,
was zu Fehlern führen könnte, oder ignoriert der Mikrocontroller
diese Veränderung?

Martin
Gast #90325
Hi Martin,

soweit ich weiß, kannst Du ruhig alles Pins gleichzeitig ansprechen,
auch wenn einzelne Pins nicht da sind.

Nebeninfo: Bei manchen Typen fehlen im DIP-Gehäuse sogar Pins, die in
TQFP da sind. Sie sind in DIP einfach nicht herausgeführt!

Sebastian
Gast #90327
PB8 hat wohl keiner der Megas, zumindest laut Datenblatt, das wäre ja
ein neuntes Bit :-)
Da gibt es nur PB0 bis PB7, wenn gleich an PB6 und 7 ja der Quarz
hängt, sofern man einen verwendet.
Gast #90328
Ach meinte ich ja. Ich habe falsch gerechnet (PB1-PB8).
Dabei heißen die ja PB0-PB7.

Der Quarz kommt an XTAL1. Ist XTAL1 und XTAL2 einfach ein
anderer Name für PB6 und PB7? Kann man diese Ports ohne Quarz
also ansteuern?

Warum gibt es eigentlich 2 Quarzeingänge?

Martin
Gast #90329
"Warum gibt es eigentlich 2 Quarzeingänge?"
weil ein Quarz 2 Anschlüsse hat :-)
Im Ernst - es ist der Ein- und Ausgang des aktiven Teils der
Oszillatorschaltung.
Gast #90330
Aber in der Schaltung im Tutorial wird doch nur ein Eingang
(XTAL1) verwendet, auch wenn der Quarz bei mir noch einen
unbenutzen Pin hat.

Kann man XTAL2 dann nicht weglassen?
Oder falls (XTAL1 und XTAL2) = (PB6 und PB7) sind, kann man diese
Ports ohne Quarz als Ein- und Ausgänge benutzen?
Gast #90331
Hallo Martin

Ich denke das liegt daran, daß Du einen Quarzoszillator benutzt.
Quarze sind die kleinen silbernen Dinger mit zwei Beinchen dran. Im
Quarzoszillator ist der aktive Teil integriert, da kommt dann ein
TTL-Signal raus. Deshalb nur ein Ausgangspin.
Beim Quarz mußt du den Oszillator entweder selber bauen oder den in den
ICs eingebauten benutzen. Dafür brauchts dann halt zwei Beine.

Wenn Du bei den Megas den internen RC-Oszillator nutzt hast Du
natürlich beide Pins frei.
Gast #90332
achso, verstanden g
Ich dachte, Quarzoszillatoren nennt man Quarze ;-)
Der Unterschied ist wohl, dass Quarzoszillatoren
von der Temperatur isoliert sind, oder?

Martin

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 22 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.