Forum: Mikrocontroller und Digitale Elektronik pwm in AVR - Tutorial


von Abdou Z. (Firma: uni bremen) (noury)


Lesenswert?

hallo zusammen ich bin ganz neu in µC und mache gerade die Übungen im 
AVR-Tutorial, und meine Frage ist:
kann mir bitte jemand diese 2 Zeilen erklären:
    ldi      temp1, 0x02
    out      DDRB, temp1
und warum nicht 0x01, wenn der Pin PB1 einschalten muss.
danke
Grüße Noury

von Hilfs-Sysop (Gast)


Lesenswert?

Weil 0x01 schon den Pin RB0 einschaltet ;)

von Der M. (steinadler)


Lesenswert?

Die erste Zeile lädt das Register temp1 mit dem Wert 0x02.
Die zweite Zeile schreibt den Wert aus Register in das Register DDRB.

Die DDRx-Register sind sogenannte Data Direction Register. Damit wird 
nur die Richtung festgelegt.
In diesem Falle werden außer PortB.1 (RB1), alle Pins als Eingänge 
definiert.
Eingeschalten wird da noch nix.

von Karl H. (kbuchegg)


Lesenswert?

Abdou Zahim schrieb:
> hallo zusammen ich bin ganz neu in µC und mache gerade die Übungen im
> AVR-Tutorial, und meine Frage ist:
> kann mir bitte jemand diese 2 Zeilen erklären:
>     ldi      temp1, 0x02
>     out      DDRB, temp1
> und warum nicht 0x01, wenn der Pin PB1 einschalten muss.
> danke


Weil

    +---+---+---+---+---+---+---+---+
    | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
    +---+---+---+---+---+---+---+---+
      |   |   |   |   |   |   |   |
      |   |   |   |   |   |   |   +- 0x01
      |   |   |   |   |   |   +- 0x02
      |   |   |   |   |   +- 0x04
      |   |   |   |   +- 0x08
      |   |   |   +- 0x10
      |   |   +- 0x20
      |   |+- 0x40
      +- 0x80

das die Wertigkeiten der einzelnen Bits in einem Byte sind

von Abdou Z. (Firma: uni bremen) (noury)


Lesenswert?

danke für die schnelle Antwort, komischerweise funktioniert auch wenn 
ich 0x03 schreibe:
ldi      temp1, 0x03
out      DDRB, temp1

von Sid (Gast)


Lesenswert?

Das muss auch so. Weil 0x03=0x01+0x02  : )

von spess53 (Gast)


Lesenswert?

Hi

>danke für die schnelle Antwort, komischerweise funktioniert auch wenn
ich 0x03 schreibe:

 0x02  -> 0b00000010
 0x03  -> 0b00000011

MfG Spess

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.