Analiza procedury opóźnienia dla PICa - błędne obliczenia czasów?
pic i petla delay
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
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.
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