Analiza procedury opóźnienia dla PICa - błędne obliczenia czasów?

pic i petla delay





Poprzedni Następny
Wiadomość
Spis treści
From: KrzysiekS <ks123_at_nospam_SPAM.wp.pl>
Subject: pic i petla delay
Date: Sat, 29 Jun 2002 15:36:37 +0000 (UTC)


Cześć

Mam sobie taką procedurkę na PICa:

Dlay160 ; Delay 160 usecs
movlw 256 - ( 160 / 4 ) ; Loop Until Carry Set
addlw 1
btfss STATUS, C
goto $-2
return

No i jak ją analizuje to nijak mi nie wychodzi 160us (przy
4MHz kwarc).
A liczę tak:
4MHz --> 1takt maszynowy = 1us
160/4 = 40 - licznik pętli
3 rozkazy w pętli po 1 takt maszynowy
3*40 = 120us

Czy ja gdzieś źle rozumuje czy autor tej procedury się rąbnął.

ps. procedura pochodzi z http://www.rentron.com/Myke1.htm
Dodatkowo porąbana jest jeszcze Dlay5 (opóźnienie 5ms)

KrzysiekS

Poprzedni Następny
Wiadomość
Spis treści
From: jfox_at_nospam_poczta.onet.pl (J.F.)
Subject: Re: pic i petla delay
Date: Sat, 29 Jun 2002 16:56:00 GMT


On Sat, 29 Jun 2002 15:36:37 +0000 (UTC), KrzysiekS wrote:
movlw 256 - ( 160 / 4 ) ; Loop Until Carry Set
addlw 1
btfss STATUS, C
goto $-2
return

3 rozkazy w pętli po 1 takt maszynowy

skoki maja po dwa takty ..

J.


Poprzedni Następny
Wiadomość
Spis treści
From: KrzysiekS <KrzysiekS_at_nospam_mexico.ras.com.pl>
Subject: Re: pic i petla delay
Date: Sat, 29 Jun 2002 18:25:26 +0000 (UTC)



On Sat, 29 Jun 2002 15:36:37 +0000 (UTC), KrzysiekS wrote:
movlw 256 - ( 160 / 4 ) ; Loop Until Carry Set
addlw 1
btfss STATUS, C
goto $-2
return

3 rozkazy w pętli po 1 takt maszynowy

skoki maja po dwa takty ..

o kurna faktycznie, coś mi się pochrzaniło i myślałem że 1.

Dzieki

KrzysiekS