Danke, das mit dem Tooglen ist nun klar.

Ich hab noch ein kelines Problem wo ich nicht weiß wie ich das lösen soll:

Mittels Tabelle weise ich bestimmten Eingänge, bestimmte Ausgänge zu:

Code:
#define LED0			(1<<PC0)
#define LED1			(1<<PC1)
#define LED2			(1<<PC2)
#define LED3			(1<<PC3)
#define LED4			(1<<PC4)
#define LED5			(1<<PC5)

#define NR_KONFIGS		9
#define NR_KEYS			6

uint8_t Pattern[NR_KONFIGS][NR_KEYS] PROGMEM =
	{
		{LED0,LED1,LED2,LED3,LED4,LED5},					// Konfiguration 0
		{LED0,LED2,LED4,LED1,LED3,LED5},					// Konfiguration 1
		{LED2,LED0,LED4,LED1,LED3,LED5},					// Konfiguration 2
		{LED0,LED2,LED4,LED1,LED3,LED5},					// Konfiguration 3
		{LED0,LED2,LED4,LED1,LED3,LED5},					// Konfiguration 4
		{LED0,LED2,LED4,LED1,LED3,LED5},					// Konfiguration 5
		{LED0,LED2,LED4,LED1,LED3,LED5},					// Konfiguration 6
		{LED0,LED2,LED4,LED1,LED3,LED5},					// Konfiguration 7
		{LED0,LED2,LED4,LED1,LED3,LED5},					// Konfiguration 8
   };
Die dann im main abgerufen wird:

Code:
	while(1)
	{
		Summe = 0;

		if(!(KEY_PIN & 0x01))								// Wenn Taste PortB.0 auf HIGH
			Summe |= pgm_read_byte(&Pattern[nKeyPress][0]);
		if(!(KEY_PIN & 0x02))								// Wenn Taste PortB.1 auf HIGH
			Summe |= pgm_read_byte(&Pattern[nKeyPress][1]);
		if(!(KEY_PIN & 0x04))								// Wenn Taste PortB.2 auf HIGH
			Summe |= pgm_read_byte(&Pattern[nKeyPress][2]);
		if(!(KEY_PIN & 0x08))								// Wenn Taste PortB.3 auf HIGH
			Summe |= pgm_read_byte(&Pattern[nKeyPress][3]);
		if(!(KEY_PIN & 0x10))								// Wenn Taste PortB.4 auf HIGH
			Summe |= pgm_read_byte(&Pattern[nKeyPress][4]);
		if(!(KEY_PIN & 0x20))								// Wenn Taste PortB.5 auf HIGH
			Summe |= pgm_read_byte(&Pattern[nKeyPress][5]);

		OUT_PORT = Summe;									// sonst nur definierte Konfiguration ausgeben
Jetzt soll das Togglen des PortC.0 da inkludiert werden falls eine Taste gedrückt wird. Jedoch nur wenn eine Variable auf 1 gesetzt ist.

Ich dachte mir das zuerst so:

Code:
if(Dauerfeuer= 1) // Wenn Dauerfeuer aktiv
{
OUT_PORT = Summe | repeatMask;                  // Definierte Konfiguration mit Dauerfeuer an Ausgang PortC.0 ausgeben
}
else
{
OUT_PORT = Summe // sonst nur definierte Konfiguration ausgeben
}
Der Toggleeffekt funktioniert zwar, geht jedoch natürlich sofort los, auch wenn keine Taste gedrückt ist.

Wie kann ich das am ellegantesten lösen?