wieder ein Probl. Timer?

Gast #412070
Lesenswert?

Hallo,

hab mal wieder ein Problem,

ich möchte gerne den Timer0 beim Atmega8 verwenden, jedoch stimmt laut
Oszi die gewünschte Zeit nicht, hab folgendes Programm, die Frequenz
ist auf 16000000 MHz eingestellt (im AVRStudio unter Configartions
Option),

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

void ini();

ISR(TIMER0_OVF_vect)
{
  PORTB&=~(1<<PB0);
}

void ini() //Initialisierung
{
DDRD = 0x00; // PortD als Eingang
DDRC = 0xFF; // PortC als Ausgang
DDRB = 0xFF; // PortB als Ausgang

PORTD=0xff; //Pullup aktivieren

TCCR0|=(1<<CS00)|(1<<CS02); //Frequenz durch 1024
}

int main()
{

ini();
sei(); //Interrupts aktivieren

PORTC=0xFF;
PORTB=0xFF;

  while(1)
  {
  _delay_us(1);
  PORTB|=(1<<PB0);
  _delay_us(1);

        TIMSK|=(1<<TOIE0); // Timer starten

  }


return 0;
}

Ich messe mit dem Oszilloskop nur ca. jede 30ms ein kurze negative
Flanke ...
sollte aber bei 1/(16000000/1024) * 255 jede 16te Milisekunde ein
Flanke ergeben!

weiss jemand auch dazu was?
thx
tronic

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