Hallo Zusammen,

irgendwie komme ich mit einem simplem Programmteil für einen Tiny25 nicht weiter.
Ich habe mal das Problem auf so wenig Code wie möglich reduziert.

Die LED soll einfach nur jede Minute kurz aufblinken. Leider blinkt sie viel zu schnell und mein Zähler i wird trotz volatile ignoriert.

Hier der Code:

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

// Flags f�r IRQs
volatile uint8_t EveryMinuteFlag;

// Z�hler f�r IRQs
volatile uint8_t i=0;
 
int main(void) {

	// Ausg�nge setzen
    DDRB |= ((1 << PB2) | (1 << PB3) | (1 << PB1));

	//Action-Flags
	EveryMinuteFlag = 1;
    
	// Timer0 Prescaler 1024
	TCCR0B |= ((1<<CS02) | (0<<CS01) | (1<<CS00));		 

    OCR0A = 0x00;
//	OCR0B = 0x00;

	// Interrupts f�r Timer0
	TIMSK |= (1<<OCIE0A); //Interrupt bei Compare
	TIMSK |= (1<<TOIE0); //Interrupt bei Overflow

	// Interrupts aktivieren
	sei();

	while (1) {

		if (EveryMinuteFlag) {

			// LED bliken lassen
			PORTB |= ( 1 << PB2 );            
        	_delay_ms(5);
			PORTB &= ~( 1 << PB2 );            

			EveryMinuteFlag = 0;
		}

   	}
}

SIGNAL(SIG_OVERFLOW0) 
{
	i++;
	if (i==250) {
		EveryMinuteFlag=1;
		i=0;
	}
}
Egal welchen vergleichswert ich für i nehme die LED blinkt immer genauso schnell.

Ich mach daran seit Tagen rum und es will einfach nicht. Hat jemand noch ne Idee?

Vielen Dank
daniel