Const odlicz=65436
rem dla zegara 12MHz odliczy tylko 100 impulsow (100us)
dim licznik as word
dim koniec as bit
Config Timer1 = Timer , Mode = 1 , Gate = Internal
On Timer1 etykieta
Counter1 = odlicz
do
start timer1
bitwait koniec,set
reset koniec
rem petla powtarza sie co 100 us
loop
etykieta:
licznik = counter1 rem To ma eliminowac czas od momentu
licznik= licznik+odlicz rem zgloszenia przerwania, do jego obslugi
counter=licznik
set koniec
Return
Dodano po 7 [minuty]:
Ewentualnie, cos duzo prostszego!!!
dim licz as byte
do
for licz= 0 to 100
next licz
loop
Ten przyklad pewnie nie odliczy czasu zbyt dokladnie ale jest prosty
Zalezy jeki masz zegar, jesli 12 MHz to cykl trwa 1MHz czyli 1us
wiec trzeba tą 1us wykonac 100 razy.
Problem w tym ze niekture instrukcje są wykonywane w czasie dluzszym niz
jeden cykl maszynowy