Forum: Mikrocontroller und Digitale Elektronik Dauers eines Dekrementiervorgangs


von Ben M. (Gast)


Lesenswert?

Hallo,
da ich in den Datenblättern nichts genaues über die Dauer eines(1) 
Dekrementiervorganges finden konnte, dachte ich, dass ich einfach mal 
hier frage.
Es handelt sich dabei um den µC 8051 (8252).

Wäre mir wirklich sehr hilfreich

Danke im Voraus
Ben M.

von Armin Kniesel (Gast)


Lesenswert?

Bei den AVRs gibt es ein Instruction set. Dort steht genau drin, wieviel 
Taktzyklen welcher Befehl braucht. Das muß es auch zu dem Typ geben.

von Olaf (Gast)


Lesenswert?

Hallo Ben,

wenn du in Assembler programmierst, brauchst du doch nur gucken wie viel 
Zyklen der µC für die verwendeten Befehle zur Abarbeitung benötigt. 
Programmierst du in einer Hochsprache, wie z. B. in C, musst du erst 
einmal wissen was der Complier aus deinem Code (z. B. count--;) macht. 
Ohne diese Info wirst du es nicht genau ausrechnen können. Ansonsten 
bleibt nur raten oder messen.

Gruß
Olaf

von Ben M. (Gast)


Lesenswert?

Dankeschön !
Hab jetzt gerade mal gekuckt um wieviel Zyklen es sich beim 
Dekrementiervorgang handelt, nämlich genau um einen. Jetzt sollte ich 
nur noch wissen wie lange 1 Zyklus dauert, bin nicht sicher, aber kann 
es sein das es sich dabei um etwa 1µs dreht ?

von Olaf (Gast)


Lesenswert?

... das hängt natürlich von deiner Oszillatorfrequenz ab. Ein Taktzyklus 
ist:

T = 1/f_osz (z. B. T = 1/4MHz = 250 ns).

Olaf

von Ben M. (Gast)


Lesenswert?

Ok jetzt ist mirs klar !
Riesengrossen Dankeschön !!!

von Peter D. (peda)


Lesenswert?

Also, wenn Du den AT89S8252 meinst, der kann mit maximal 33MHz laufen 
und braucht 12 Quarztakte je Zyklus:

12 * 1 / 33MHz = 364ns



Peter

von Ben M. (Gast)


Lesenswert?

Hi

Also im Datenblatt steht, dass der maximal 24MHz schafft.
Dann hab ich noch was unter DC Characteristics gefunden -
Power Supply Current Active Mode = 12MHz
Power Supply Curren Idle Mode = 12MHz

von Ben M. (Gast)


Lesenswert?

Noch etwas:

In einem der Beispielprogramme habe ich folgendes gefunden.

-------------------
                zeit: mov r0,#10
    zeit0:mov r1,#200
    zeit1:mov r2,#250
    zeit2:djnz r2,zeit2
    djnz r1,zeit1
    djnz r0,zeit0
-------------------

Diese Zeitverzögerung kommt auf fast(!) genau 1sek (laut Beschreibung)
Kann man durch zurückrechnen sich auf diese Werte verlassen ?

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.