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

AVR GCC: Nie działa przerwanie TIMER0_OVF w AVR Studio - co sprawdzić?

crashbit 17 Maj 2013 16:59 1215 4
REKLAMA
  • #1 12317444
    crashbit
    Poziom 15  
    Witam.
    Zacząłem parę lat temu zabawę z AVR-ami. Nowa praca mi to przerwała. Teraz powracam do nich i powoli sobie chce wszystko przypomnieć.
    Niestety natrafiłem na problem. Pojawiło się dużo zmian zwłaszcza w AVR Studio.
    Mój problem dotyczy wywołania obsługi przerwania przez mój program. Testowo po prostu ma się wywołać przerwanie od timera0 OVF.
    Kod: text
    Zaloguj się, aby zobaczyć kod

    Nie wiem co ja tu mam źle.
    Dodam, że w symulatorze gdy program jest już w pętli while(1) następuje wyłączenie przerwań w rejestrze SREG. Co z tym idzie w momencie jak już doliczy mi licznik wystawia flagę i nic dalej się nie dzieje.

    Bardzo proszę o pomoc bo przypuszczam że to jakaś straszna głupota się stała a ja już którąś godzinę marnuje na sprawdzanie tysiąca różnych rozwiązań i nic
  • REKLAMA
  • #2 12317566
    alagner
    Poziom 26  
    najpirew konfig timera, potem sei, to raz. Dwa - nie mam datasheeta przed oczami, ale nie trzeba jeszcze najpierw ustawić źródła taktowania dla timera? Chyba, że robi to bit 0 TCCR0, ale to z kodu nie wynika, używaj AVRowych makrodefinicji, bo ten kod jest nieczytelny...
  • REKLAMA
  • #3 12317604
    crashbit
    Poziom 15  
    Dałem sei() po ustawieniach... bez zmian.
    TCCR0 ustawia się źródło dla licznika w tej chwili ustawiony jest po prostu zegar systemowy. Jak napisałem licznik idzie dochodzi do końca i wystawia flagę od przepełnienia. Tylko jeszcze za nim do tego dojdzie wyłącza się globalne odblokowanie przerwań.

    Niestety wcześniej pracowałem na AVR studio 4.19. Po tym jak zacząłem używać 6.0 wszystko jakoś dziwnie działa. Może coś trzeba przestawić. Nie wiem, dlatego pisze prosząc o pomoc
  • REKLAMA
  • Pomocny post
    #4 12317615
    Konto nie istnieje
    Poziom 1  
  • #5 12319047
    crashbit
    Poziom 15  
    Nie koniecznie musisz cofać co powiedziałeś ;)
    Mój problem rozwiązałeś bo okazało się że nie wina mojego programu tylko symulatora.
    A wprowadzenie przez Atmela opcji wyboru co do flag jest ok ale powinno być ustawione domyślnie na false skoro taka cały czas była polityka. A jak widać z dyskusji pod Twoim linkiem kupa ludzi traci swój czas...
    Mimo wszystko bardzo dziękuje.
REKLAMA