Anfänger Frage

OP #1720837
Lesenswert?
• ▲
▼
Hallo,
ich arbeite mich gerade in MyAVR ein und hänge gerade beim auswählen von 
den Ausgangspins. Ich hoffe das ich die Fachausdrücke alle richtig 
schreibe :-)

Ich will Pin 0 und Pin 1 von Port B einschalten. Woher weiß ich und 
MyAVR was Pin 0 und 1 ist? Im Moment schalte ich Pin 0 von Port B und C 
ein. Aber wie sehe ich das es jeweils Pin 0 ist? Das "sbi DDRB , 0" 
bedeutet das es ein Ausgang ist

main:  ldi  r16,lo8(RAMEND)
    out  SPL , r16
    ldi  r16 , hi8(RAMEND)
    out  SPH , r16
    sbi DDRB , 0
    sbi DDRC , 0
      ;Hier Init-Code eintragen.

mainloop:  ldi  r16 , 0b00000001 ;LED ON
    out PORTB , r16
    out PORTC , r16
    rjmp  mainloop

Kann mir da jemand helfen?
Gast #1721369
Lesenswert?
• ▲
▼
Achim F. schrieb:

> Ich will Pin 0 und Pin 1 von Port B einschalten. Woher weiß ich und
> MyAVR was Pin 0 und 1 ist?

Aus dem Datenblatt?

> Im Moment schalte ich Pin 0 von Port B und C ein. Aber wie sehe ich das
> es jeweils Pin 0 ist?

Was meinst du damit?

> Das "sbi DDRB , 0"
> bedeutet das es ein Ausgang ist

Ja.

> main:  ldi  r16,lo8(RAMEND)
>     out  SPL , r16
>     ldi  r16 , hi8(RAMEND)
>     out  SPH , r16
>     sbi DDRB , 0
>     sbi DDRC , 0
>       ;Hier Init-Code eintragen.
>
> mainloop:  ldi  r16 , 0b00000001 ;LED ON
>     out PORTB , r16
>     out PORTC , r16
>     rjmp  mainloop
>
> Kann mir da jemand helfen?

Ich verstehe dein Problem nicht.
OP #1721446
Lesenswert?
• ▲
▼
Wenn ich jetzt z.B. den Port B.1 einschalten will, was muss ich für 
einen Code eingeben?
Ich verstehe nicht warum Port B.0 eingeschaltet wird wenn ich DDRB / 
PORTB" eingebe. Beim PORTB gibt es ja 6 Pins...
In einem anderen Beispiel wird "0b00011100" in ein Register geladen und 
Pin 2-4 werden eingeschaltet - aber warum?
#1721447
Lesenswert?
• ▲
▼
Deine Fragen sind alle im AVR-Tutorial beantwortet.

Kurz
Hier stehts doch
     sbi DDRB , 0

sbi:          set Bit
DDRB          wo? im DDR Register für den Port B
welches Bit:  Bit 0

Alles zusammen: Das Bit 0 im DDRB Register wird auf 1 gesetzt.
Und die Hardware interpretiert das jetzt so, dass dadurch Bit 0 vom Port 
B auf Ausgang programmiert werden soll

> In einem anderen Beispiel wird "0b00011100" in ein Register geladen
> und Pin 2-4 werden eingeschaltet - aber warum?

     0b00011100
       ^^^^^^^^
       ||||||||
       |||||||+--- Bit 0
       ||||||+---- Bit 1
       |||||+----- Bit 2
       ||||+------ Bit 3
       |||+------- Bit 4
       ||+-------- Bit 5
       |+--------- Bit 6
       +---------- Bit 7

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.