I/O-Register ansprechen

Gast #540397
Moin

hab eine frage zu den I/O Register;

ldi r16, 0b00000001
out DDRB, r16


Als erstes wird die Konstante (logische 1) ins Register r16 geladen bzw.
dort abgespeichert;

Mit out wird dieses Register r16 wieder ausgegeben an den Port DDRB; da
es sich um eine logische 1 handelt, ist sind alle Port B.0 - B.7 als
Ausgänge konfiguriert, oder?

Bei diesem Bsp steht aber dabei, dass Port B.0 ein Ausgang und Port B.1
bis Port B.7 Eingänge sind. hmmm... heißt das, dass DDRB ohne Nummer das
Pin B.0 anspricht??? und alle Ports automatisch immer zuerst als
Eingänge konfiguriert sind??

Wie kann ich z.B. nur Port B.1 oder B.5 ansprechen?? Geht dass dann über
DDRB1 DDRB3??

David

PS: sorry für das doppelte posting
Gast #540403
Eine Eins heisst Ausgang, eine Null heisst Eingang. Nein, das DDRB gilt 
fuer den ganzen Port, 0b00000001, sieben Eullen und ne Eins. Darstellung 
von Binaerzahlen. PortB.5 wird mit   "or 0b00100000" als Ausgang 
gesetzt.
#540434
Da hilft ein Blick ins Datenblatt... da steht das drin. Bei AVRs sind 
die PORTS i.d.R. beim Einschalten als Eingang definiert. Das hat den 
einfachen Grund, da Eingänge nur "relativ" schwer zu zerstören sind. 
Einen Ausgang muss man nur kurz gegen Masse oder Betriebsspannung 
schalten und schon ist dieser platt. Und 0b00000001 ist keine logische 
1... eine einzelne Bitstelle kann logisch 1 oder 0 sein. Nur in höheren 
Programmiersprachen (C,BASIC,etc.) definiert man 0b00000001 und 
0b00000000 manchmal als logisch 1 und 0.

Gruß,
   SIGINT

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 19 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.