Gast
#556818
Kann der zuletzt ausgegebene Wert eines Ports wieder eingelesen werden? Soweit ich mitbekommen habe, hat der Rechner ja keine einstellbare Betriebsrichtung des Ports, sprich, Lesen ist direktes Lesen.
|
Anzeige
|
80C51 IO
Gast
#556818
Kann der zuletzt ausgegebene Wert eines Ports wieder eingelesen werden? Soweit ich mitbekommen habe, hat der Rechner ja keine einstellbare Betriebsrichtung des Ports, sprich, Lesen ist direktes Lesen. Wenn man den Ausgang von aussen auf Masse zieht, und vom Programm her eine 1 schreibt, wird beim Zurücklesen eine 0 gelesen.
Gast
#556834
Ich frage nämlich, weil ich einen Pin togglen möchte, aber das geht dann wohl nur, wenn ich noch ein Register benutze, wo das ausgegebene Byte drinsteht. Merkwürdigerweise hat es aber gestern im Simulator trotzdem funktioniert.. >Ich frage nämlich, weil ich einen Pin togglen möchte
Dazu mußt Du doch nicht zurücklesen.
Gast
#556844
>Ich frage nämlich, weil ich einen Pin togglen möchte
wieso? die Ports kann man direkt ansprechen, sogar bitweise.
z.B. CPL P3.1 togelt den Pin 1 an Port 3...
Pin toggle gehört zu den read-modify-write Befehlen, liest also das Ausgangsregister und ändert es. Peter
Gast
#556855
Kannst Du mir zufällig sagen, wie ich der Keil-Umgebung den Watchdog für den Controller deaktivieren kann? In den Debug-Options für das Target läßt sich ein Ini-File angeben, aber ich habe diese Datei nicht, und weiß auch nicht, was da drin stehen sollte.
Gast
#556856
Oh, das ist ja gut! Erste Schritte in ASM.. Danke! Hi, also in Assembler: Einlesebefehle lesen den Portpin: Mov,ziel,port ;ziel ist A, register0-7, interne Ram adresse ADD A,port ANL A, port jnb portpin,rel.adr Hingegen Änderungsbefehle lesen den Ausgangsspeicher zurück: anl port,operand2 orl port,operand2 xrl port,opernad2 inc port dec port djnz port,rel.adr mov portpin,c clr portpin setbit portpin CPL portpin <------------ dein toggle jbc portpin,rel Gruß Andi
Gast
#556960
hier der inhalt der sagenumwobenen initialisierungsdatei zum ausschalten des watchdog PE_SWD = 0 /* Disable Watchdog with pin PE_SWD */ reset /* perform CPU reset: uses value at PE_SWD */ Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|