Forum: Compiler & IDEs wieder ein Probl. Timer?


von tronic (Gast)


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

von tronic (Gast)


Lesenswert?

Problem gelöst, ich hab die delay zeit auf 100uS gesetzt, der Oszi
erkennt die Flanke somit besser und zeigt mir jede 16mS eine Flanke...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.