powiedzmy że mam źródło sygnału prostokątnego ze zmienną szerokością
w zakresie od 1 do 2 ms, która to szerokość zmienia się bardzo dynamicznie. i teraz za pomocą polecenia pulsein chcę na bieżąco odczytywać wartość tej szerokości z danego pinu. i teraz moje pytanie:
jak powinienem zastosować polecenie pulsein? jak w przykładzie nr1 czy w przykładzie nr2?
przykład nr1
Kod: Zaznacz cały
do
pulsein dlugimp , Pinb , 1 , 0
if dlugimp < dlugimpdol then
'sprawdzam czy dlugosc impulsu w danej chwili
'jest wieksza niz zapisana dolna wartosc graniczna
end if
loopKod: Zaznacz cały
pulsein dlugimp , Pinb , 1 , 0
do
if dlugimp < dlugimpdol then
'sprawdzam czy dlugosc impulsu w danej chwili
'jest wieksza niz zapsana wartosc graniczna
end if
loopja sobie tłumaczę to tak że aby na bieżąco czytać wartość długości impulsu polecenie o którym mowa powinienem umieścić wewnątrz pętli do...loop, w ten czas z każdym kolejnym odczytem kodu procesor przypisze aktualną wartość impulsu do zmiennej dlugimp i mi ja zaktualizuje.
jeśli dobrze myślę to co w takim przypadku kiedy mam dwie pętle wewnątrz siebie w przykładzie jak poniżej?
czy na początku każdej z pętli powinienem podać polecenie pulsein ?
przykład nr3
Kod: Zaznacz cały
do
pulsein dlugimp , Pinb , 1 , 0
if dlugimp < dlugimpdol then
'w tej petli na poczatku
'sprawdzam czy dlugosc impulsu w danej chwili
'jest wieksza niz zapisana dolna wartosc graniczna
do
pulsein dlugimp , Pinb , 1 , 0
if dlugimp > dlugimpdol then
'z tej petli nie pozwole wyjsc dopoki
'nie zostanie spelniony warunek ze
'wartosc zmiennej dlugimp
'bedzie wieksza niz
'graniczna wartosc zmiennej zapisanej
'w pamieci ram dlugimpdol
end if
loop
end if
loop