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

ATTINY26 - CompareMatch Timer1 - "Odpalenie"

Michał458 27 Mar 2015 19:22 753 9
REKLAMA
  • #1 14566575
    Michał458
    Poziom 17  
    Witam,

    Próbuję odpalić przerwanie comparematch na attiny26 lecz za nic mi to nie wychodzi :)

    Kod inicjalizacji timmera :

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Szkielet podprogramu przerwania :

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Bardzo proszę o podpowiedź jak to zrobić.
    Pozdrawiam.
  • REKLAMA
  • #2 14566727
    zumek
    Poziom 39  
    Michał458 napisał:
    Witam,

    Próbuję odpalić przerwanie comparematch na attiny26 lecz za nic mi to nie wychodzi :)

    A to, czytał :?: :D


    ATTINY26 - CompareMatch Timer1 - "Odpalenie"
  • REKLAMA
  • #4 14566770
    Michał458
    Poziom 17  
    zumek napisał:
    Michał458 napisał:
    Witam,

    Próbuję odpalić przerwanie comparematch na attiny26 lecz za nic mi to nie wychodzi :)

    A to, czytał :?: :D


    ATTINY26 - CompareMatch Timer1 - "Odpalenie"


    Nie :)

    dondu napisał:
    Skąd taki wektor wziąłeś: TIMER1_CMPB_vect_num
    http://www.nongnu.org/avr-libc/user-manual/group__avr__interrupts.html


    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Zmiana TIMER1_CMPB_vect i odpaliło

    Dodano po 10 [minuty]:

    lecz brak dodatkowego podziału przez 39
  • #5 14567260
    zumek
    Poziom 39  
    Michał458 napisał:
    ... lecz brak dodatkowego podziału przez 39

    Co rozumiesz przez dodatkowy podział :?:
    Może opisz, jak w/g Ciebie powinien działać timer.
  • #6 14567752
    Michał458
    Poziom 17  
    Chodzi mi oto że licznik aktualnie pracuje w trybie NORMAL a nie CopareMatch. Brak porównania z rejestrem OCR1B przeszukałem całą notę katalogową i nie znalazłem jak uruchomić ten licznik w tym trybie.
  • REKLAMA
  • #7 14567792
    zumek
    Poziom 39  
    Michał458 napisał:
    Chodzi mi oto że licznik aktualnie pracuje w trybie NORMAL a nie CopareMatch
    Chciałbyś, aby licznik po osiągnięciu zadanej wartości wyzerował (CTC) się i jednocześnie nastąpiło przerwanie :?:
    Michał458 napisał:
    Brak porównania z rejestrem OCR1B
    A pisałeś, że przerwanie TIMER1_CMPB_vect działa :idea:
    Michał458 napisał:
    przeszukałem całą notę katalogową i nie znalazłem jak uruchomić ten licznik w tym trybie.
    Jakoś Ci nie wierzę :D
  • REKLAMA
  • #8 14567799
    Michał458
    Poziom 17  
    Chcę osiągnąć przerwanie o f=200Hz czyli chciałem zrobić to tak jak robie to na Atmegach. lecz nie ma opcji WGM.
    8000000Hz / 1024 / 200hz ~ 39 wiec chcę wpisać tę wartość do rejestru porównania OCRx. Lecz narazie z tego co się doczytałem nie ma takiego trybu ale może źle patrzę.
  • Pomocny post
    #9 14567882
    zumek
    Poziom 39  
    Michał458 napisał:
    ... Lecz narazie z tego co się doczytałem nie ma takiego trybu ale może źle patrzę.
    Przeczytaj jeszcze raz to co widać na obrazku (załączam ponownie).

    ATTINY26 - CompareMatch Timer1 - "Odpalenie"
  • #10 14567953
    Michał458
    Poziom 17  
    Działa :) Jakies "zaćmienie umysłu" chyba mnie spotkało :)

    Poprawny kod :

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
REKLAMA