Forum: Mikrocontroller und Digitale Elektronik kurze Wartezeit?


von funkt das? (Gast)


Lesenswert?

Hallo,
kann man grob ausrechnen wie lange der Controller in der Schleife hängt?
Will nicht die delay Funktion nehmen, weil ich aus der include Datei 
nicht schlau werde.

void warten (uint16_t zeit)
{
    uint16_t counter=0;
  while(counter<(zeit*10))
  {
    counter++;
  }
}

von dirk h. (Gast)


Lesenswert?

bitte verwende einfach Timer...

von dirk h. (Gast)


Lesenswert?

aber wenn du es wissen willst schau einfach im Asembler Fenster im 
CylceCoutner wie lange er braucht.

von Georg G. (df2au)


Lesenswert?

Die Wartezeit ist etwa 3 Stunden.
Du wirst ja wohl vermutlich mit einer Zuse Z10 rechnen.

von funkt das? (Gast)


Lesenswert?

Kann denn das Hauptprogramm zu jeder Zeit auf den Timer zugreifen?
Also eine Variable zum gewünschten Zeitpunkt auf 0 setzen und mit dem 
timer hochzählen lassen, bis der wert dann erricht ist?

von dirk h. (Gast)


Lesenswert?

ja.

von funkt das? (Gast)


Lesenswert?

danke

von Peter D. (peda)


Lesenswert?

Nicht vergessen, die Optimierung abzuschalten, dann ruft er bei jedem 
Vergleich die Lib für die Multiplikation (zeit*10) auf und das kostet 
schön Zeit.
Aber das ist dann auch ne Lib, die Du nicht verstehst.

Die Compiler-Libs sind nicht dazu gedacht, daß man sie versteht, sondern 
daß man sie benutzt.
Sie sind in der Regel auch ausreichend evaluiert.

von Ulrich H. (lurchi)


Lesenswert?

Je nachdem wie sehr man den Compiler optimieren lässt fällt die 
Wartezeit auch ganz weg. Weil es gar nicht so einfach ist die Laufzeit 
einer solchen Warteschleife zu berechnen gibt es dafür die Lib mit Delay 
usw. Selbst wenn man die Lib nicht versteht, weiß man dann wenigstens 
was die Funktion delay_us oder ähnliches macht.

Für eine variabel Wartezeit kann aber auch eine kombination aus dem Code 
oben und der Funktion aus der Lib nötig sein.

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.