-         

Ergebnis 1 bis 2 von 2

Thema: Timer beim atmega8

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    05.05.2008
    Beiträge
    51

    Timer beim atmega8

    Anzeige

    Code:
    #include <avr/io.h>
    #include <avr/interrupt.h>
     int a = 106;
    
     #include <util/delay.h>
    int main(void)
    {
    
      // Timer 0 konfigurieren
      TCCR0 = (1<<CS01)|(1<<CS00); 
     
      // Overflow Interrupt erlauben
      TIMSK |= (1<<TOIE0);
     
      // Global Interrupts aktivieren
      sei();
      DDRB = 0xFF;
      DDRC = 0xFF;
       
      while(1)
      {
     
     _delay_ms(200);
        a = 106;
    	PORTC = 0xFF;
         _delay_ms(200);
    	   a = 136;
    	   PORTC = 0x00;
      }
    }
     
    
    ISR (TIMER0_OVF_vect)
    {
     
    PORTB ^= (1<<PB0);
    TCNT0 = a;
    }
    Die leds am Portc blinken.
    Jedoch will ich das der TCNT0 wert geändert wird um ne kleine Sirene hin zu bekommen.
    Der wert von der Variabel a verändert sich nicht ( nach Debuggen im AVR Studio)
    Was hab ich Falsch gemacht?

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    nehme an, du musst "a" als volatile definieren.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •