logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Kwarc 11,059200 częstotliwość - ile czasu zajmie wykonanie 1 komendy

piter2004 09 Maj 2011 22:10 2831 18
  • #1 9489916
    piter2004
    Poziom 17  
    Mam pytanko, jak obliczyć ile czasu zajmie wykonanie 1 komendy np NOP jeśli jej wykonanie trwa 1 cykl zegarowy a kwarc ma 11059200.
    Gdzieś wyczytałem, że jeden cykl zegarowy trwa 12 impulsów kwarcu (czyli 12 sinusoid)?
    Po prostu nie wiem jak działa w kwarcu.
  • #2 9489989
    gts1991
    Użytkownik obserwowany
    1,0850694 uS
  • #3 9490016
    szczepar
    Poziom 20  
    Witam
    Wszystko zależy ile cykli oscylatora trwa jeden cykl maszynowy.
    Kwestia rodziny procesora oraz jego konkretnej specyfiki, czy tez ustawień wew.

    Standardowy 8051 Miał 12 Cykli Oscylatora na 1 Cykl maszynowy
    Ale Są modele z 6 Cykli , albo 6 Cykli * Dzielnik (gdzie dzielnik sobie ustawiasz)

    Są też przecież rodziny gdzie 1 Cykl Oscylatora = 1 Cykl Maszynowy
    O wiele łatwiej było by odpowiedzieć znając konkretny model procka , jaki masz.
  • #4 9490092
    dondu
    Moderator na urlopie...
    gts1991 napisał:
    Czas ten będzie wynosić 1,085069(4) uS.

    Jak to policzyłeś?

    Czy nie powinno być tak:

    1 / 11.059.200 = 9,0422453703703703703703703703704e-8 = 90,42 nS

    przy założeniu że:

    piter2004 napisał:
    ... jak obliczyć ile czasu zajmie wykonanie 1 komendy np NOP jeśli jej wykonanie trwa 1 cykl zegarowy ...
  • #5 9490167
    gts1991
    Użytkownik obserwowany
    dondu napisał:
    gts1991 napisał:
    Czas ten będzie wynosić 1,085069(4) uS.

    Jak to policzyłeś?

    Czy nie powinno być tak:

    1 / 11.059.200 = 9,0422453703703703703703703703704e-8 = 90,42 nS

    przy założeniu że:

    piter2004 napisał:
    ... jak obliczyć ile czasu zajmie wykonanie 1 komendy np NOP jeśli jej wykonanie trwa 1 cykl zegarowy ...


    Kolego ciekaw jakim cudem ? :D
    Dajesz wolniejszy kwarc i szybsze wykonywanie komend? Jest kozak :)
  • #7 9490193
    gts1991
    Użytkownik obserwowany
    dondu napisał:
    Czyli jak w tym konkretnie w opisanym przez autora przypadku?

    Żebym to ja kolegi matematyki musiał uczyć :)
    Powiedzmy że mamy dla 12 Mhz i 12 taktów wynosi 1uS.
    12 000 000 / 11 059 200 = 1,0850694 uS w skrócie.
    Matematyka da się lubić.
  • #8 9490203
    dondu
    Moderator na urlopie...
    Jak to się ma do tego, co napisał autor?

    piter2004 napisał:
    ile czasu zajmie wykonanie 1 komendy np NOP jeśli jej wykonanie trwa 1 cykl zegarowy a kwarc ma 11059200.

    a autor nie wspomina o jaki procesor chodzi.

    Pytam ponieważ mogę się mylić, ale chciałby wiedzieć dlaczego?
  • #9 9490218
    gts1991
    Użytkownik obserwowany
    Bo jest nie dokładny autor zaraz powie że mam racje :) Zapewne mu chodzi o '51 12 taktowe :)
  • #11 9490255
    gts1991
    Użytkownik obserwowany
    Jak tam chcesz.
  • #12 9490320
    poorchava
    Poziom 18  
    Zależy od komendy, NOP zajmuje w AVR 1 cykl maszynowy, ale już np BRNE 2 lub 3 cykle. Okres to odwrotność częstotliwości czyli czas trwania jednego cyklu wyrażony w sekundach to 1/11059200.

    I faktycznie, ilość cykli zegarowych na jeden maszynowy jest różna. W PICach 16F i 18F jeden cykl maszynowy to 4 cykle zegarowe. W takim np. PIC32MX rdzeń MIPS32 pozwala na wykonanie jednej instrukcji w jednym cyklu zegarowym z tym, że dzięki przetwarzaniu równoległemu niektórych poleceń otrzymuje się wydajność maksymalną 1.56 instrukcji na cykl. Dążę do tego, że często czas wykonania instrukcji zależy od kodu (chociaż w AVR chyba akurat nie)

    p.s. skąd taka egzotyczna częstotliwość kwarcu?
  • #13 9490356
    mirekk36
    Poziom 42  
    gts1991 napisał:
    Bo jest nie dokładny autor zaraz powie że mam racje :) Zapewne mu chodzi o '51 12 taktowe :)


    No to na tej samej zasadzie można byłoby domniemywać, że jeśli autor napisał taki post w dziale AVR, to może wcale nie chodziło mu o '51 tylko może o PIC gdzie przypadają 4 takty na jeden cykl maszynowy ????

    A może chodziło o ARM'y?


    .... a może jednak warto uważniej czytać i zwracać uwagę na dział w jakim powstał post, zamiast próbować uczyć matematyki kogoś kto słusznie podpowiada że będzie to ok 90ns - na pytania autora w odpowiednim dziale ???

    też zgadzam się z kolegą dondu, że czasem przydałoby się troszkę pokory zamiast uśmieszków i nauczania matematyki .....

    Dodano po 2 [minuty]:

    poorchava napisał:

    p.s. skąd taka egzotyczna częstotliwość kwarcu?


    Egzotyczna ????? oj ;) .... polecam zajrzeć na ostatnią stronę rozdziału USART/UART w dowolnej nocie PDF dowolnego procesora AVR i sprawdzić jaki jest procent błędów w transmisji RS232 dla takiej częstotliwości taktowania - to szybko się okaże, że nie dość że to nie żadna egzotyczna częstotliwość to bardzo często stosowana i pożądana - zresztą podobnie jak np: 18,432MHz i jeszcze kilka innych - także mniejszych - jeszcze raz polecam notę PDF i te strony z tableami o których wspomniałem wyżej.
  • #14 9490408
    asembler
    Poziom 32  
    Wszyscy maja rację zalezy jak sie program napisze raz NOP trwa 90ns a raz 1.08uS.
    Dodatkowo NOP umieszczony w kwarcu może go rostroić.
  • #15 9490487
    McMonster
    Poziom 32  
    asembler napisał:
    Wszyscy maja rację zalezy jak sie program napisze raz NOP trwa 90ns a raz 1.08uS.
    Dodatkowo NOP umieszczony w kwarcu może go rostroić.


    Muszę przyznać, że zupełnie nie rozumiem, co chciałeś przekazać. Mógłbyś to rozwinąć?
  • #16 9490526
    mirekk36
    Poziom 42  
    McMonster napisał:
    asembler napisał:
    Wszyscy maja rację zalezy jak sie program napisze raz NOP trwa 90ns a raz 1.08uS.
    Dodatkowo NOP umieszczony w kwarcu może go rostroić.


    Muszę przyznać, że zupełnie nie rozumiem, co chciałeś przekazać. Mógłbyś to rozwinąć?


    Ja się dołączam - bo też w ogóle nie zrozumiałem tego przekazu ..... a może to jakiś istotna sugestia ? (szczególnie z tym umieszczeniem NOP'a w kwarcu nie wspominając o jego "rostrojeniu") .....
  • #17 9490535
    asembler
    Poziom 32  
    piter2004 napisał:
    Mam pytanko, jak obliczyć ile czasu zajmie wykonanie 1 komendy np NOP
    Po prostu nie wiem jak działa w kwarcu.

    Cóż tu wyjaśniać.
    Autor wyraźnie pisze że nie wie jak działa komenda NOP w kwarzu.
    A skoro już mu sie uda to trudno przweidzec czas jej wykonanie nie prawdaż?:-)
  • #18 9490881
    piter2004
    Poziom 17  
    Nie rozumialem zasady dzialania kwarca ale teraz zaczelem rozumiec.
    Dziekuje.

    czas trwania jednej instrukcji trawa

    jak napisał dondu
    1 / 11.059.200 = 9,0422453703703703703703703703704e-8 = 90,42 nS


    Poprostu napisalem programik zeby sterował 1 pinem procesora raz w stan wysoki potem stan niski i tak ciagle taki generator. I okazalo sie ze winą tego, że zle analizator mi mierzył czas było użycie cemosa na wyjsciu procesora, gdzie czas jego propagacji wynosi dla stanu wysokiego 26 ns i opadania 7 ns i dlatego nie zgadzały mi się czasy wykonania 1 instrukcji.
  • #19 9491236
    tmf
    VIP Zasłużony dla elektroda
    Zauważ tylko, że czas wykonywania trwa 1/FCore, a FCore nie musi być równa częstotliwości kwarcu. Prawie wszystkie AVRy mają preskaler zegara, a niektóre także PLL do mnożenia częstotliwości kwarcu. W efekcie należy to uwzględnić.
REKLAMA