www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR Chip kaputt?


Autor: Hannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

also ich hab da ein ganz interessantes problem und zwar wenn ich 0xFF
auf den DPort von meinem AT90S4433 ausgebe dann sollte ich ja
0b00000000 bekommen mal ganz davon abgesehen das ich normalerweise
0b11111111 bekommen solte aber den sinn werde ich schon noch heraus
finden warum man 0b00000000 bekommt aber jetzt zu meinem problem ich
bekomme nämlich 0b00000001 und auch wenn ich einen anderen HEX wert
eingebe es kommt alles raus nur nicht das was raus kommen soll habt ihr
eine idee woran das liegen kann? muß da vieleicht irgend ein flag
gesetzt sein oder so? hier der programmausschnit.


         ldi r16, 0xFF
         out DDRD, r16

 aber was ich auch noch sagen will ist das es bei den anderen Ports
geht ??? HILFEeeee!!! Ich nix wiss

MFG und danke im voraus

Hannes

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
und was steht in PORTD?

Autor: OldBug (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In den DDRx Registern werden die Richtungen der Pins eingestellt (DDR =
Data Direction Register, x = Port)!

0 = Inputpin; 1 = Outputpin

0xFF in DDRD bedeutet also, daß alle Pins von PortD auf Output gestellt
sind. Damit wird aber och nichts am Zustand des Ports verändert!

PORTD = 0xFF setzt alle Pins von PortD auf High.

In PIND kann man dann nachschauen (mind 1,5 Takte warten!), ob das auch
alles Funktioniert hat :)

Gruß,
Patrick...

Autor: Conlost (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Hannes,

schau dir mal die Grundlagen über I/O im Tutorial an.

http://www.mikrocontroller.net/tutorial/io-basics.htm

Gruß,
Arno

Autor: Hannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Danke für die infos ich hab das mit den DDRx befhel nicht verstanden
aber jetzt Licht an ales OK Dank euch allen gute beschreibung Patrick
so lob ich mir das echt mersy

Autor: Vitali (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
dein Code ist falsch, es soll heissen
out PORTD,r16
Gruss.
Vitali.

Autor: ...HanneS... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
ich denke, Hannes muss erst noch dahinter kommen, was der Unterschied
zwischen PORTx, DDRx und PINx ist. Wenn dieser Knoten gelöst ist, dann
wird er das schon machen...

Bit- & Bytebruch...
...HanneS...

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.