Jak policzy? ile cykili zegara wykonuje sie procedu

Aug 23, 2010 2 Replies

Witam wszystkich, Pytanie jak w tytule, mam procesorek z rodziny AVR i procedurę napisaną w C. W jaki sposób można policzyć jak długo wykonuje się procedura? Dodam tylko, ze AVR Simulator w AVR Studio ma możliwość sprawdzenia ile cykli zegarowych potrzebuje procedura (i o to mi chodzi), z tym że w przypadku np. konwersji ADC jest bezużyteczna bo np. w jaki sposób przeskoczyć tego typu linie: while(!(ADCSRA & (1<<ADIF))); w owym symulatorze.



Z góry dziękuje za wszelkie odpowiedzi.


Witam,

W dniu 2010-08-23 12:46, bobofrut pisze:

Nie wiem na ile symulator radzi sobie z przetwornikiem ADC, ale w dokumentacji jest dokładnie opisane ile cykli zajmuje przetwarzanie (pierwsze i kolejne), więc zawsze możesz wstawić NOPy, a jeśli dalsze przetwarzanie zależne jest od wyniku, to można wstawić BreakPointy i zmieniać wartości zmiennych... to tak mi przyszło na szybko do głowy. Wszystko zależy jak bardzo skomplikowany masz problem...

Dykus pisze:

AVRSTUDIO radzi sobie z takim przypadkiem. W moim przykładzie wyszło

208us na konwersję.

Zakładasz pułapkę tam gdzie zaczynasz konwersję i po tym while, gdy kończysz, zapodajesz RUN i już wiesz wszystko...

Pozdr EM

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required