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 32 - Dlaczego są dwa 16-bitowe rejestry OCR1A i OCR1B w timerze 1?

makipaki123 15 Kwi 2015 18:37 825 7
REKLAMA
  • #1 14619901
    makipaki123
    Poziom 8  
    Po co dwa 16 bitowe rejestry w timerze

    OCR1AL
    OCR1AH

    OCR1BL
    OCR1BH

    Przecież np w trybie CTC sprawdzam czy TCNT1 równa się danemy OCrx więc po co mi 2 OCRx-y 16 bitowe
  • REKLAMA
  • #2 14619933
    excray
    Poziom 41  
    Chociażby po to aby generować 2 (lub więcej jeśli w procesorze jest więcej rejestrów porównania) przebiegi o różnym współczynniku wypełnienia.
  • REKLAMA
  • #3 14620141
    makipaki123
    Poziom 8  
    No dobra ale skąd wiadomo że np. w trybie CTC procesor ma porównać TCNT1 z jakim rejestrem porównania czy ztym OCR1Ax czy OCR1Bx
  • REKLAMA
  • #4 14620147
    excray
    Poziom 41  
    Do procesora jest napisana nota katalogowa gdzie jest to wszystko opisane. Wystarczy się z nią zapoznać.
  • #5 14620510
    makipaki123
    Poziom 8  
    No próbowałem ale jest po angielsku i mało z tego rozumiem czyli co pewnie jest tam jakiś bit który przełącza na dany rejestr czy jak jest z tym
  • #6 14620740
    Wirnick
    Poziom 30  
    Jestem na twoim etapie,
    Mamy 15 możliwości ustawienia timera1- i tu jest problem!
    To TCNT zależy od ustawień wstępnych(konfiguracji timera).
    OCR bierze udział tylko w kilku obciach(MODE). Natomiast, konfigurację robimy aż w 4-rech rejestrach - tę drogę Musisz przejść samodzielnie.
  • #7 14620814
    dondu
    Moderator na urlopie...
    To co opisał excray jest widoczne także na schemacie timera, a tutaj znajomość angielskiego nie jest potrzebna :)

    Atmega 32 - Dlaczego są dwa 16-bitowe rejestry OCR1A i OCR1B w timerze 1?

    Czy teraz już widzisz jak TCNT1 jest porównywany z OCR1A i/lub OCR1B, i których pinów OCn dotyczą?


    makipaki123 napisał:
    No dobra ale skąd wiadomo że np. w trybie CTC procesor ma porównać TCNT1 z jakim rejestrem porównania czy z tym OCR1Ax czy OCR1Bx

    Ze schematu timera i Twojej decyzji, który lub czy oba chcesz wykorzystać.
    De facto nawet jeśli wykorzystujesz tylko np. OCR1A, to porównanie TCNT1 z OCR1B jest także wykonywane, ale ponieważ nie ustawiasz:
    - ani pinu OC1B jako wyjście,
    - ani przerwań od tego porównania nie uruchamiasz,
    to porównanie to nie ma wpływu na nic. Więc działa ale efektu żadnego nie ma.

    Napisz może konkretnie co chcesz uzyskać i pokaż jak to zamierzasz programowo zrobić, a powiemy czy dobrze kombinujesz :)
  • REKLAMA
  • #8 14621757
    makipaki123
    Poziom 8  
    Ok rozumiem.
REKLAMA