kann mir jemand erklären : wie kann es funktionieren dass TMOD Register bei 8051 die Adresse 89h hat und gleichzeitig das Bit IE0 des TCON Registers auch die gleiche Adresse hat ?
Das IE0-bit im Tcon-Register kann nur durch die Bit-Befehle SETB und CLR manipuliert werden, welche wiederum auf das ganze 8bit-Register TMOD wirkungslos sind. Hans Peter
hm komisch :) , ich habe da noch paar fragen zur 8051 warum wird beim Counter an den Portpins P3.4 P3.5 die negative Flanke gezähl kann man auch eine Pos einstellen ? außerdem warum brauch der Controller 2 MZ um dieze Flanke zu regestrieren 1 davor und 1 danach oder wie ? :) und bei dem Port INTx ist ein Strich oben drüber ist es eine negation ? wozu ? wird das TF bit beim 8 Bit aoutoreload automatisch gelöscht auch ohne interrupt ? oder muss man die auch dann per software löschen
Andy schrieb: > warum wird beim Counter an den Portpins P3.4 P3.5 die negative Flanke > gezähl Weil es so im Datenblatt steht. Andy schrieb: > kann man auch eine Pos einstellen ? Was nicht im Datenblatt steht, kann man auch nicht. Andy schrieb: > wird das TF bit beim 8 Bit aoutoreload automatisch gelöscht auch ohne > interrupt ? Das wäre ja blöd, wenn die CPU heimlich das Bit löschen würde. Wie willst Du dann den Überlauf erkennen? Ohne Interrupt muß man es daher selber lesen und auch selber löschen. Man kann aber beides mit einem Befehl machen: JBC Peter
Andy schrieb: > warum wird beim Counter an den Portpins P3.4 P3.5 die negative Flanke > gezähl kann man auch eine Pos einstellen ? Inverter davorschalten. > außerdem warum brauch der Controller 2 MZ um dieze Flanke zu > regestrieren 1 davor und 1 danach oder wie ? :) Die Peripherie des Controllers läuft mit einem langsameren Takt (fper) > und bei dem Port INTx ist ein Strich oben drüber ist es eine negation ? > wozu ? Interrupt bei Low-Pegel (ITx=0, Resetwert) oder fallender Flanke (ITX=1). Wenn es umgekehrt sein soll => Inverter davor. > wird das TF bit beim 8 Bit aoutoreload automatisch gelöscht auch ohne > interrupt ? oder muss man die auch dann per software löschen Was für einen Sinn hätte das automatische Löschen, wenn man dann vom Timer gar nix mehr mitbekommt??? Für die Baudratenerzeugung ist das Flag egal, daher wird es nicht gelöscht. Im Interrupt-Betrieb wird es automatisch gelöscht, das bekommt man dann aber auch im Programm mit. Bei Externen Interrupts ist es noch etwas anders. Bei Flankeninterrupt wird das Flag automatisch gelöscht, bei Pegelinterrupt nicht (macht auch Sinn in der Anwendung). > wie kann es funktionieren dass TMOD Register bei 8051 die Adresse 89h > hat und gleichzeitig das Bit IE0 des TCON Registers auch die gleiche > Adresse hat ? Durch die verschiedenen Befehle des Assembler-Befehlssatzes können trotz gleicher Adresse (8 Bit) bis zu 4 unterschiedliche Speicher unterschieden werden (SFR, SBIT, indirektes RAM, externes RAM, manche Derivate haben sogar noch SFR-Bänke die umgeschaltet werden müssen). Bei 16-Bit Adressen sind 2 Speicherbereiche möglich (ROM, externes RAM, teilweise wird noch der EEPROM-Bereich ins externe RAM eingeblendet). Der MOV-Befehl, der auf ein SFR zugreift hat einen anderen OPcode als ein MOV-Befehl, der z.B. ein Bit ins Carry kopiert. Die Unterscheidung zwischen XRAM und ROM ist anhand des Befehls movx bzw. movc leichter erkennbar. tschuessle Bernhard
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.