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 - przerwania - problem chyba z wektorem

KowalD 15 Mar 2010 14:13 1086 3
REKLAMA
  • #1 7832350
    KowalD
    Poziom 17  
    Problem wygląda następująco. Pisze program na atmega32, gdy zostaje wywołane przerwanie od porównania dla timera 0 to program się restartuje. Jednocześnie, gdy zdefiniuje funkcje ISR(BADISR_vect) to wlaśnie ona jest wykonywana zamiast funkcji od timera :/.

    Gdy próbuje wywoływać przerwanie od przepełnienia timer 0 to w ogóle się ono nie wywołuje, a przerwanie od RX działa dobrze :/. Sprawdzałem Makefile, jest w nim zdefiniowana Atmega32. AVRStudio tez wyswietla Atmega32.

    Używam WinAVR - 20090313 (GCC 4.3.2 oraz avr-libc 1.6.6).

    Co to może być?
  • REKLAMA
  • Pomocny post
    #2 7832360
    Zbych_
    Poziom 25  
    KowalD napisał:
    Co to może być?


    Wróżka jest na urlopie. Pokaż kod źródłowy.
  • REKLAMA
  • Pomocny post
    #3 7832364
    tadzik85
    Poziom 38  
    źle zdefiniowana funkcja obsługi przerwania. Sprawdź w odpowiednich plikach nagłówkowych.
  • #4 7832417
    KowalD
    Poziom 17  
    analogicznego uzywam i w innych programach... i dziala... no ale na innych procesorach :/...

    void Timer_Init()
    {
    	OCR0 = 150;
    	USART_Transmit('^');
    	TCCR0 = (1<<CS02)|(0<<CS01)|(1<<CS00);
    	TIMSK |= OCIE0;	
    }
    
    ISR(TIMER0_COMP_vect)
    {
    	USART_Transmit('*');
    	OCR0 += 150;
    }
    
    ISR(BADISR_vect)
    {
        USART_Transmit('?');
    }
    
    int main()
    {
    	USART_Init(MYUBRR);	
    	printf("OK\r\n");
    
    	Timer_Init();
    	sei();
    
    	while(1){};
    }



    EDIT: o ja pierdzziu... ale literowka :/... dopiero teraz zobaczylem :/... przeciez tam mam TIMSK |= OCIE0; zamiast TIMSK |= (1<<OCIE0); :/... po zmianie jest ok... ogladalem ten kod z kilku stron, kilka razy i nie zauwazylem :/... glupia sprawa...

    przepraszam za zamieszanie... i dziekuje za zainteresowanie
REKLAMA