Gast
#412070
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