Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Wie delay beim 16f84 berechnen?

8 views
Skip to first unread message

Oliver Scharf

unread,
Apr 30, 2001, 4:55:32 PM4/30/01
to
Hallo,
ich möchte eine Verzögerung in mein Assemblerprogramm einbauen. Mein 16f84
ist mit 10MHz getaktet. Ich weiß aber nicht:
a) Wie berechnet man sowas (d.h. wie oft muss die Schleife wiederholt
werden) , wenn man Schleifen verwendet? Wie genau ist das?
b) Wie berechnet man sowas, wenn man den TIMER0 benutzt? (d.h. wie muss der
Prescaler eingestellt sein und auf welchen Wert muss der Timer pregeloadet
werden?) (Hier wär ein Beispiel nett)

Oliver


jochen rapp

unread,
Apr 30, 2001, 6:43:57 PM4/30/01
to
Hallo oliver,

ist im Grunde ganz einfach

Instrunktionsfrequenz = taktfrequenz / 4
bei Dir = 2,5 MHZ
Ausführungszeit einer Instruktion also 400ns


Grundregel: sprungbefehl 2 Taktzyklen, ansonsten 1 Taktzyklus

den rest kannst Du im Grunde selbst rechenen

Beispiel

movlw 255
movwf Counter
Loop: nop ; 1 takt
nop ; nochn takt
decfsz Counter ; 1 takt, falls nicht gesprunge werden muss
goto loop ; 2 takte


also pro schleife: 5 takte


Hinweis: das obige Beispiel habe ich kurz aus dem Gedächtnis
zusammengenagelt, die genauen Ausführungszeiten sidn dem Datashitt zum
PIC zu entnehmen

Von der Verwendung des TMR0 für so einen Zweck würde ich Dir abraten,
den wirst Du für anderes dringender gebrauchen

Gruss Jochen

Oliver Scharf

unread,
May 2, 2001, 10:23:33 AM5/2/01
to

"jochen rapp" <j.r...@addcom.de> schrieb im Newsbeitrag
news:3AEDEAAD...@addcom.de...

> Hallo oliver,
>
> ist im Grunde ganz einfach
>
> Instrunktionsfrequenz = taktfrequenz / 4
> bei Dir = 2,5 MHZ
> Ausführungszeit einer Instruktion also 400ns
>
>
> Grundregel: sprungbefehl 2 Taktzyklen, ansonsten 1 Taktzyklus
>
Also wenn ich das richtig verstanden habe sollte:
DELAY:
movlw D'250'
movwf COUNTER
LOOP: nop ; 1 takt
nop ; nochn takt
decfsz COUNTER ; 1 takt, falls nicht gesprunge werden muss
goto LOOP ; 2 takte
RETURN
eine Verzögerung von 500µs bewirken?

Oliver


jochen rapp

unread,
May 2, 2001, 6:58:47 PM5/2/01
to
Hallo oliver,
probiers doch einfach aus, rechnerisch könnte es hinhauen ;-)

gruss Jochen

Oliver Scharf

unread,
May 5, 2001, 3:08:55 PM5/5/01
to

From: "jochen rapp"


> probiers doch einfach aus, rechnerisch könnte es hinhauen ;-)
>

wie soll ich das ausprobieren, ich hab kein Ozilloskop... ;-(((

Oliver


0 new messages