Danke fürs void und fürs ==.
Aber das Problem ist immer noch das selbe. Hab auch die warte(); gegen ein while(1) in main getauscht und void warte (void) komplett rausgeschmissen.
Port B soll ja auch auf 0xff gesetzt werden wenn counter bei 0 ist.
Liegt es am while(1) die Varriante hab ich mal gesehen ob das so richtig ist hab ich noch nie probiert.
Wäre eine aufwärts Zählschleife besser?
Hier nochmal der Code:
Code:
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/signal.h>

volatile int counter=10;


void initialise (void)
{	
	DDRB = 0xFF;				
	DDRD = 0x00;
	GIMSK |= (1<<INT0)|(1<<INT1);	
	MCUCR |= (0<<ISC01)|(0<<ISC00);			
}

SIGNAL (SIG_INTERRUPT0)
{
    counter = counter - 1 ;
	if (counter == 0)
	{
	PORTB = 0b11111111;
	}
}

int main (void)
{ 
    initialise();	
	PORTB = 0b11110101;
	sei();
    while(1);  
}
Dann noch ne allgemeine Frage: Warum hängen sich den rekursive Aufrufe wie meine warte() schnell auf? Oder nur in diesem speziellen Fall?

Danke nochmals