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
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...
Hallo Hannes, schau dir mal die Grundlagen über I/O im Tutorial an. http://www.mikrocontroller.net/tutorial/io-basics.htm Gruß, Arno
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.