Skocz do zawartości

[C, AVR] W jaki sposób sprawdzić czas wykonywania programu


kling

Pomocna odpowiedź

Witam,
dążąc do jak największej optymalizacji kodu w swoim robocie, interesuje mnie sposób mierzenia czasu jaki potrzebuje program by wykonać całą swoją pętle.

Dobrze by było, aby podany sposób uwzględniał również czas potrzebny na dokonanie pomiarów w przetworniku A/C.

Zna ktoś na to sposób?

Link do komentarza
Share on other sites

Możesz po prostu w symulacji w AVR studio sprawdzić jak długo wykonuje się dany fragment kodu, ustawiając breake-pointy. Jeżeli nie ufasz symulacji, możesz zrobić sobie jakieś dwa punkty - start i stop timer'a i przy jego pomocy zmierzyć czas. Oczywiście pod warunkiem, że masz ten czas jak odczytać: LCD, wyswietlacze 7segm, rs232 etc.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Nie potrzeba oscyloskopu, nada się analizator stanów logicznych na LPT/RS232 (samoróbka Scanalogic), a jeśli przebieg miałby być naprawdę z małą częstotliwością to i karta dźwiękowa się nada. Z tym, że ja ogólnie polecam złożenie sobie takiego analizatorka, zawsze się przyda.

Link do komentarza
Share on other sites

Symulacja jest ogólnie dobra, o ile czas wykonywania nie zależy od danych dochodzących z zewnątrz. Pamiętaj, że czas wykonywania pętli głównej będzie zależał od tego ile w danym podejściu razy zostanie wywołąne i wykonane przerwanie od ADC oraz od wykonywanych działań (np. mnożenie i dzielenie może trwać krótko bądź długo). Jeśli interesuje cię średnia po prostu wywołaj w symulatorze podczas symulacji kilka razy "run to cursor" na początku pętli.

Link do komentarza
Share on other sites

Dzięki za porady:) z symulacją nie jest tak kolorowo, bo jest 7 odczytów ADC i nie wiem ile one będą trwały. Jak skończę pisać program, to zastosuje pomysł z timerem i rs'em:) zobaczę co z tego wyjdzie:)

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.