sackoizo napisał:
Tak wiem że należy odpalić timer na początku i zatrzymać na końcu i odczytać jego wartość.. no nic. Dziękuję za wypowiedzi tak czy inaczej..
Odp. kol. Draco była troche sarkastyczna, bo na tak prostą procedurę nikt, kto ma choć troche rozeznania w tej dziedzinie chyba (!) nie szuka pomocy.
Mopzesz to zrobić na kilka sposobów:
1. mierzyc czas metodą Timer1/Capture. Pozwala mierzyć czas w zakresie do ok 4 sec. bez zliczania przepełnień.
Wymaga jednak stosowania interruptu.
2. Pomiar czasu Timerem. W tym przypadku najwygodniejszy byłby timer1 ( albo inny 16-bit) ze względu na narzucony czas 300 msec. 8-bitowy timer nie nadaje się bo musiałbyś zliczać przepełnienia, co wprowadzi pewną niedogodność rachunku i pomiaru.
3. Bezpośredni pomiar czasu Timerem1; - nie wymaga zatrzymuwania i ponownego startu jak w załączonym przykładzie.
4. I wreszcie następna opcja: W Bascom IDE podczas sumulacji metodą "Step into code(F8)' gdy dojdziesz do pierwszej instrukcji w Do....Loop, zerujesz ilość cykli w status bar ( lewa strona na pasku na samym dole okna symulatora) ; w miarę postępu programu obserwujesz zmiany cykli oraz obok obliczonego czasu od momentu wyzerowania. Dochodząc do końcowego zamknięcia pętli 'Loop' odczytasz wynik zużytego czasu na wykonanie całej pętli.
Poniżej prosty przykład dla (3.) oraz dla prześledzenia alternatywy (4.).
Zaloguj się, aby zobaczyć kod
We 'free run' -pierwszy wynik/odczyt może być zerowy(!)...
e marcus