Bekomme Timer von ATMega16 nicht angerissen :-(

Gast #2112769
Lesenswert?

Hallo liebe Mikrocontrollergemeinde,

ich habe mal vor Jahren ein bisschen mit meinem ATMega16 rumgespielt.
Jetzt hat es mich wieder gepackt und ich möchte wieder angreifen.

Jedoch gabs gleich am ersten Tag nen bösen Dämpfer da ich anscheinend zu 
blöde bin den 16-Bit Timer von meinem Mega16 anzureissen :-(
Der scheint einfach nicht loszählen zu wollen.

Kann mir einer sagen was ich vergessen habe oder falsch gemacht habe?

Vielen Dank!
Holger


#include <avr/io.h>
#include <avr/interrupt.h>

int i=0;

ISR( TIMER1_OVF_vect )
{
  i++;
}

int main (void)
{
  DDRC=0xFF;

  sei();
  TCNT1H= 0xF0;
  TCNT1L= 0x00;
  TCCR1A=0x00;  // no compare/capture/pwm mode
  TCCR1B=0x05;  // start counter; prescale ck/1024
  TIMSK |= (1<<TOIE1);

  while(1)
  {
    PORTC=i;
    if (i>255)
    {
      i=0;
    }
  }
}

P.S.: Ich habe an PORTC eine LED-Leiste dran. Und die zeigt immer nur 
genau den PIN an mit dem ich i initialisiere.
Gast #2112783
Lesenswert?

Holger schrieb:
> ich habe mal vor Jahren ein bisschen mit meinem ATMega16 rumgespielt.

Nachtrag: Vor vielen Jahren war der gcc wesentlich toleranter gegenüber 
einem vergessenen "volatile". Es kann also gut sein, daß dein Beispiel 
mit einem alten gcc funktioniert.

Oliver

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren