Forum: Mikrocontroller und Digitale Elektronik AVR Chip kaputt?


von Hannes (Gast)


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

von crazy horse (Gast)


Lesenswert?

und was steht in PORTD?

von OldBug (Gast)


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...

von Conlost (Gast)


Lesenswert?

Hallo Hannes,

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

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

Gruß,
Arno

von Hannes (Gast)


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

von Vitali (Gast)


Lesenswert?

Hallo,
dein Code ist falsch, es soll heissen
out PORTD,r16
Gruss.
Vitali.

von ...HanneS... (Gast)


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...

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.