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