Pokrewne
menu      Co myslicie ? DS1621<->MAX232<->MAX232<->AVR
menu      Proste, krótkie pytanie - jak zapisać float do Eprom'u w avr gcc?
menu      GPS AVR ATMega128 - pomiar odleglosci pomiedzy dwoma punktami
menu      avr-gcc zajetosc ram/data - dziwne zachowanie
menu      [avr-gcc] Skanowanie klawiatury - jednak nie dziala
menu      firmware/projekt AVR JTAG+ISP naraz?
menu      float format zapisu w pamięci - avr gcc
menu      Prosty programator AVR - skad zasilanie w LPT?
menu      Karta RJ-45 na USB i AVR
menu      [avr-gcc] zmienne "ciurkiem" w ramie?
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • anikol.xlx.pl
  • czas wykonywania operacji - avr





    nuclear - 04-03-2007 19:45
    czas wykonywania operacji - avr
      Witam
    tak sie zastanaiwam, jak zrobić układ, który wykonywałby nastepujacy ciąg
    poleceń:
    -zapisz bajt (8bit) z jakiegoś portu do pamięci (w sumie bedzie 256, lub 512
    bajtów)
    -wygeneruj impuls na jakiejs nóżce
    i ma to być wykonywane ze scisle okresloną czestotliwoscią (max 5MHz) lub
    inną wynikajacą z podziału tejże.

    zastanawiam sie czy wystarczy do tego celu uzyć procka atmega88, na kwarcu
    20mhz? bo aż się boję....ewentualnie jaką max czestotliwość moge osiagnąć na
    tym kwarcu?





    ThomasN - 04-03-2007 20:45

     
    "nuclear" <nuclear2001@poczta.onet.pl> wrote in message
    news:esf3un$ms7$1@news.onet.pl...
    > Witam
    > tak sie zastanaiwam, jak zrobić układ, który wykonywałby nastepujacy ciąg
    > poleceń:
    > -zapisz bajt (8bit) z jakiegoś portu do pamięci (w sumie bedzie 256, lub
    > 512 bajtów)
    > -wygeneruj impuls na jakiejs nóżce
    > i ma to być wykonywane ze scisle okresloną czestotliwoscią (max 5MHz) lub
    > inną wynikajacą z podziału tejże.
    >
    > zastanawiam sie czy wystarczy do tego celu uzyć procka atmega88, na kwarcu
    > 20mhz? bo aż się boję....ewentualnie jaką max czestotliwość moge osiagnąć
    > na tym kwarcu?

    Na końcu datasheeta w sekcji Instruction set summary masz wypisane ile cykli
    zegara trwa wykonanie każdej instrukcji. Rozpatrz przykład:

    ldi R17, 0

    Loop:
    out PORTA, R17 - 1 cykl
    com R17 - 1 cykl
    rjmp Loop - 2 cykle

    Łącznie 4 cykle. Przy kwarcu 20MHz generowany przebieg będzie miał
    częstotliwość 2,5MHz. A tu masz jedynie generowanie przebiegu na wszystkich
    pinach portu A. Na Atmega tego raczej nie zrobisz.

    pozdrawiam
    tn




    PAndy - 04-03-2007 22:45

     
    "ThomasN" <jakis.adres@serwer.jakis.pl> wrote in message
    news:esf55r$gr6$1@inews.gazeta.pl...

    > Na końcu datasheeta w sekcji Instruction set summary masz wypisane ile
    > cykli zegara trwa wykonanie każdej instrukcji. Rozpatrz przykład:
    >
    > ldi R17, 0
    >
    > Loop:
    > out PORTA, R17 - 1 cykl
    > com R17 - 1 cykl
    > rjmp Loop - 2 cykle
    >
    > Łącznie 4 cykle. Przy kwarcu 20MHz generowany przebieg będzie miał
    > częstotliwość 2,5MHz. A tu masz jedynie generowanie przebiegu na
    > wszystkich pinach portu A. Na Atmega tego raczej nie zrobisz.

    wywal loop'a i scykluj 1:1 - 256 lub 512 par pod rzad i bedzie juz 2
    cykle + 2 na jmp ale raz na 256 lub 512 par instrukcji




    nuclear - 04-03-2007 23:45

     

    >
    > wywal loop'a i scykluj 1:1 - 256 lub 512 par pod rzad i bedzie juz 2 cykle
    > + 2 na jmp ale raz na 256 lub 512 par instrukcji
    racja - loop nie jest potrzebny, bo to ma być jednostkowy odczyt , tzn po
    odcszytaniu tej seri danych bedzie przerwa na przetworzenie tych danych...
    czyli na razie mam 2 cykle na wygenerowanie impulsu, no i zostają 2 cykle na
    zczytanie i zapisanie bajtu - da się? czy w prockach avr jest cos takiego
    jak stos?





    ThomasN - 04-03-2007 23:45

      >> wywal loop'a i scykluj 1:1 - 256 lub 512 par pod rzad i bedzie juz 2
    >> cykle + 2 na jmp ale raz na 256 lub 512 par instrukcji
    > racja - loop nie jest potrzebny, bo to ma być jednostkowy odczyt , tzn po
    > odcszytaniu tej seri danych bedzie przerwa na przetworzenie tych danych...
    > czyli na razie mam 2 cykle na wygenerowanie impulsu, no i zostają 2 cykle
    > na zczytanie i zapisanie bajtu - da się? czy w prockach avr jest cos
    > takiego jak stos?

    Z opisu w pierwszym poście zrozumiałem, że zczytanie 512 bajtów zakończone
    jest zmianą stanu na jakiejś nóżce.
    Mój prosty przykład miał pokazać, że samo generowanie fali prostokątnej
    zajmuje zbyt wiele czasu, żeby osiągnąć 5MHz. Jeżeli zamiast pętli dać serie
    instrukcji out, com to będzie te 5MHz, ale nic więcej.
    Tobie jednak chodzi o to, żeby zmieniać stan wyjścia po zczytaniu każdego
    bajta. Kolejny prosty przykład:

    In R17, PINA - 1 cykl
    push R17 - 2 cykle
    com R18 1 - cykl
    out PORTB, R18 - 1 cykl
    .....

    5 cykli. Potrzebowałbyś kwarcu 25MHz. Atmega pewnie by poszedł - nie
    testowałem. atmega8 ma 1kB stosu - może się udać.

    pozdrawiam
    tn




    Grzegorz Kurczyk - 05-03-2007 06:48

      Użytkownik ThomasN napisał:
    > instrukcji out, com to będzie te 5MHz, ale nic więcej.
    > Tobie jednak chodzi o to, żeby zmieniać stan wyjścia po zczytaniu każdego
    > bajta. Kolejny prosty przykład:
    >
    > In R17, PINA - 1 cykl
    > push R17 - 2 cykle
    > com R18 1 - cykl
    > out PORTB, R18 - 1 cykl
    > ....
    >
    Oj tym stosem to tak trochę nieelegacko ;-) Od czego mamy rejestry
    indeksowe... i odpowiednio preparując dane początkowe można to troszkę
    przyśpieszyć;

    ; ładujemy adres bufora
    ldi r30, ADDRL
    ldi r31, ADDRH
    ; przygotowanie danych dla out-ów
    ldi r16, 255
    ldi r17, 0
    ; i lecimy ;-)
    in r0, PINA ; 1 clk
    st Z+, r0 ; 2 clk
    out r16 ; 1 clk
    in r0, PINA
    st Z+, r0
    out r17
    in r0, PINA
    st Z+, r0
    out r16
    in r0, PINA
    st Z+, r0
    out r17
    ..
    ..
    ..

    a taką sekwencją;
    ldi r16, 255
    ldi r17, 0
    out r16
    out r17
    out r16
    out r17
    ..
    ..

    wyciskamy 10MHz z ATmegi88@20MHz, tyle, że chyba lepiej zrobić to jakimś
    timerem ;-)

    Pozdrawiam
    Grzegorz
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • konstruktor.keep.pl
  • Design by flankerds.com