Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

ATMega8 nie widzi procedury obsługi przerwania - ROZWIĄZANE

18 Kwi 2008 11:09 1075 2
  • Poziom 10  
    Buduję prosty sterownik na atmedze 8, chcę obsługiwać klawiaturę w przerwaniach od timera0
    ale atmega nie widzi procedury obsługi przerwania i resetuje się. Jeżeli zatrzymam timer albo wyłączę przerwanie timera, albo wyłączę globalnie przerwania to nie resetuje się.

    Kod procedury obsługi przerwania (funkcje do LCD są w pełni sprawne, nawet gdy ISR jest puste w środku to dzieje się to samo :/ ).
    Code:

    ISR(TIMER0_OVF_vect){
    LCD_GoTo(8,1); LCD_WriteData('I');
    }

    Kod ustawiający timer i przerwania (wykonywany zaraz po uruchomieniu).
    Code:

    SFIOR=1;
    TCCR0=0x5;
    TCNT0 = 0;
    TIMSK = _BV(TOIE0);


    Używam wewnętrznego oscylatora 1MHz, avr-libc 1.4.8 i avr-gcc 4.2.3.
    Co robię źle? :|
    Darmowe szkolenie: Ethernet w przemyśle dziś i jutro. Zarejestruj się za darmo.
  • Poziom 28  
    a masz w kodzie instrukcje sei(); ?
  • Poziom 10  
    Tak, tak. Mam kawałek dalej. Jak jej nie ma (=wyłączone przerwania) to nie resetuje się.

    ---------------------------
    rozwiązałem problem
    zamiast flashować plikiem .hex flashowałem binarką .elf która też działała w podstawowym zakresie.

    Temat do zamknięcia/usunięcia.