-
1. Data: 2010-08-23 10:46:37
Temat: Jak policzyć ile cykili zegara wykonuje sie procedura
Od: bobofrut <r...@g...com>
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.
-
2. Data: 2010-08-23 11:23:56
Temat: Re: Jak policzyć ile cykili zegara wykonuje sie procedura
Od: Dykus <d...@s...wp.pl>
Witam,
W dniu 2010-08-23 12:46, bobofrut pisze:
> 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.
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...
--
Pozdrawiam,
Dykus.
-
3. Data: 2010-08-23 16:42:32
Temat: Re: Jak policzyć ile cykili zegara wykonuje sie procedura
Od: EM <e...@p...onet.pl>
Dykus pisze:
> Witam,
>
> W dniu 2010-08-23 12:46, bobofrut pisze:
>
>> 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.
>
> 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...
>
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