PIC variable Delay Routine

Gast #4178010
Lesenswert?

Hallo,
ich suche eine möglichst einfache Routine, mit der ich einen "Delay" 
erzeugen kann, dessen Länge durch 24 Bit (Also 3 Register) bestimmt 
wird.
Mit anderen Worten, ich stecke einen 24 Bit langen Wert aufgeteilt in 
3x8 Bit in 3 Register und Rufe dann die "Delay" Routine auf, die dann 
genauso viele Takte wartet, wie hoch der Wert in den 3 Registern ist.
Natürlich wäre ein Delay von wenigen Takten nicht möglich (Mindestens 4 
schon mal wegen CALL und RETURN geschweige denn von der eigentlichen 
Delay Logik)
Der Delay sollte auf 1000 bis 1.000.000 Takte funktionieren.
Ich weiß nicht ob jemand so eine Routine kennt oder hat, aber ich komme 
gerade irgendwie nicht selbst drauf.
Ich benutze übrigens den PIC16F887.

Grüße Max
Gast #4178041
Lesenswert?

Es geht um Assembler.
Und Zweck des ganzen ist es, dass ich dynamisch im Programm einen Delay 
erzeugen kann.
Interrupts bzw. die Timer kann ich dafür aber nicht benutzen.
Ich brauche die noch für einen anderen Zweck.
#4178151
Lesenswert?

Max schrieb:
> Und Zweck des ganzen ist es, dass ich dynamisch im Programm einen Delay
> erzeugen kann.
Ja, das ist klar, wozu braucht man aber ein 1'000'000 Zyklen langes 
Delay mit einer Auflösung von einem Tatzyklus?

Max schrieb:
> Interrupts bzw. die Timer kann ich dafür aber nicht benutzen.
> Ich brauche die noch für einen anderen Zweck.
Achtung, wenn nur ein einziges davon das Delay stört, wird das mit der 
Genauigkeit von einem Tatzyklus auch nichts mehr.
Wenn du das nicht gleichzeitig brauchst könntest du dir vllt. auch kurz 
einen Timer für die Wartezeit ausleihen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren