mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik portts in asm setzen


Autor: neuer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
gibt es diese zwei möglichkeiten um ein port als ausgang zu schalten 
beim atmega , hier portd.5 ?

ldi r24,5
out ddrd,r24

und

sbi ddrd,5

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Daniel Bauer (und3rt4ker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi, neuer,
du bist ja ganz schön neu^^
Port: Meist 8 Pins, manchmal aber auch weniger
Pin: Ein Anschlussbeinchen

Du willst an Portd den Pin 5 als ausgang schalten, also so:

ldi r16, (1<<5)
out ddrd, r16

oder wie du sagtest

sbi ddrd,5

Mfg
und3rt4ker
P.S.: @ Falk:
So gehts auch ;-)

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Erstens ist Deine Shift-Taste offensichtlich kaputt.

Zweitens ist die erste Methode nur dann sinnvoll, wenn mehrere Bits 
gesetzt werden sollen bzw. in diesem Fall, wenn alle anderen Bits in 
DDRD gelöscht werden sollen. sbi setzt in DDRD nur das betreffende Bit, 
während alle anderen Bits unverändert bleiben.

Autor: neuer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja, gehen beide versionen? wo ist die grenze bei den einzelnen befehlen 
die ich benutze um den pin 5 vom portd als ausgang zu setzen?

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
neuer wrote:
> ja, gehen beide versionen? wo ist die grenze bei den einzelnen befehlen
> die ich benutze um den pin 5 vom portd als ausgang zu setzen?
Erstens habe ich ziemlich präzise die Unterschiede zwischen den beiden 
Versionen erläutert. Und solange Du Dich immer noch weigerst, 
Großbuchstaben zu benutzen, werde ich nichts mehr dazu sagen.

Autor: neuer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sbi PORTB, PB5          ; identisch, besser lesbar

was heisst das denn schon wieder :
                        ; funktioniert nur für die IO-Register 0..0x1F

wo steht denn, welches io-register der pind.5 hat?

was mache ich, wenn das io-register grösser ist > 0x1F

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ neuer (Gast)

>ja, gehen beide versionen?

Sie sind verschieden. LESEN!

>wo ist die grenze bei den einzelnen befehlen
>die ich benutze um den pin 5 vom portd als ausgang zu setzen?

Welche Grenze?

MFG
Falk

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.