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

Atmega - kwarc i obsługa różnych peryferiów

webmortiz 21 Sty 2009 13:40 2266 5
REKLAMA
  • #1 6031739
    webmortiz
    Poziom 20  
    Załóżmy że mam pod ATmege 32 podłączony kwarc 16 MHz. Do Atmegi podpiąłem też wyświetlacz, który może pracować na transmisji z max częstotliwością 6 MHz. Plus powiedzmy jeszcze jakieś inne elementy (np. karta pamięci, dioda podczerwieni). Jak te wszystkie różne częstotliwości ogarnąć razem w kodzie względem tych 16 MHz aby wszystkie części pracowały poprawnie?
  • REKLAMA
  • Pomocny post
    #2 6031833
    riddyk
    Poziom 20  
    Witam, a od czego są przerywania ?

    Wszystko jest obsługiwane na przerywaniach, i też wszystko nie działa w jednej chwili więc spokojnie ATmega się wyrobi.
  • REKLAMA
  • Pomocny post
    #3 6031881
    mirekk36
    Poziom 42  
    webmortiz napisał:
    Załóżmy że mam pod ATmege 32 podłączony kwarc 16 MHz. Do Atmegi podpiąłem też wyświetlacz, który może pracować na transmisji z max częstotliwością 6 MHz. Plus powiedzmy jeszcze jakieś inne elementy (np. karta pamięci, dioda podczerwieni). Jak te wszystkie różne częstotliwości ogarnąć razem w kodzie względem tych 16 MHz aby wszystkie części pracowały poprawnie?


    riddyk napisał:
    Witam, a od czego są przerywania ?

    Wszystko jest obsługiwane na przerywaniach, i też wszystko nie działa w jednej chwili więc spokojnie ATmega się wyrobi.


    a co ma "piernik do wiatraka" - czyli ten kwarc 16MHz do różnych elementów, wyświetlacza czy przerwań ?????

    Kolega autor już próbował coś programować na prockach? czy na razie tak tylko teoretyzuje hmmm???

    - zrób sobie podstawowy układ do migania np jedną diodą LED - i wstaw w pętli gdzie zastosujesz na początek najprostsze procedurki opóźniające np co 1 sekundę - tak aby dioda migała co 1 sekundę właśnie.

    i co? przecież dioda nie będzie migała z częstotliwością 16MHz ;)

    potem podłącz sobie wyświetlacz LCD czy też LED (obojętnie jaki) - poczytaj sobie jego notę katalogową (jeśli sam chcesz napisać obslugę do niego) - dowiedz się z niej jakie trzeba opóźnienia użyć aby wysyłać odpowiednie sygnały sterujące i znowu zrobisz jakieś procedury opóźniające tyle że o wiele krótszym czasie.

    Oczywiście twoje procedury opóźniające będą już zależały od tego jaki masz kwarc ale tylko one a nie "inne elementy" (co nie znaczy, że wartość kwarca nie ma znaczenia - bo jeśli chcesz zrobić coś prostego i mało funkcji - to kwarc może być o niskiej wartości, ale jeśli będziesz potrzebował większe mocy obliczeniowej dla procka i obsługiwać większą ilość urządzeń w jednym czasie - to pewnie, że dopiero wtedy przydaje się zwiększać wartość taktowania procka) W ogromnej większości wypadków na początku drogi programowania ale także później wystarcza spokojnie wbudowany oscylator wewnętrzny 8MHz.

    i o czywiście do "produkcji" dokładnych opóźnień czasowych - np przy obsłudze odbiorników IR - pewnie, że będzie można się także w tym celu posłużyć ew przerwaniami choć nie koniecznie

    Dzięki takiemu podejściu można często te same urządzenia, moduły elementy sterować programowo przy róznej wartości kwarców.

    - teraz jaśniej ?
  • REKLAMA
  • #4 6032007
    webmortiz
    Poziom 20  
    Bawię się od czasu do czasu na atmedze 8 z zegarem 4 MHz. Ale chcę przerzucić się na Atmege 32 z 16 MHz więc za wczasu teoretyzuję ;). Ale ok, rozumiem już ;) Zapędziłem się trochę bo ostatnio na FPGA trochę siedziałem i podświadomie chciałem procesy równoległe uwzględnić w strukturalnym wykonywaniu rozkazów ;) Dzięki za sprostowanie.
  • REKLAMA
  • Pomocny post
    #5 6035391
    asembler
    Poziom 32  
    Moze koledze chodzi o to zeby po zmianie kwarcu tez program dzialal poprawnie. Rada na to jest taka zeby sobie przyjac zmienna kwarz i wszystkie inne czestotliwosci odnosic do tej zmiennej.
  • #6 6036335
    webmortiz
    Poziom 20  
    ok, dzieki za rade. Przyda sie :)
REKLAMA