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

#define run_fwd (PINA&(1<<PA0)) // Start/Stop
#define run_rwd (PINA&(1<<PA1)) // Vorwärts/Rückwärts
#define DDR_LED DDRB			// PORTB (LED)
#define DDR_INP DDRA			// PORTA (Taster)
#define p_INP PORTA				// PORTA für Taster

void fwd(){						// Vorwärts
	PORTB<<=1;
	if(!PORTB) PORTB=1;
}

void rwd(){						// Rückwärts
	PORTB>>=1;
	if(!PORTB) PORTB=128;
}

int main (void) {

	DDR_LED  = 0xff;			// Ausgänge EIN für LED
	DDR_INP  = 0x00;			// Eingänge EIN für Taster
	p_INP = 0xFF;				// PullUp EIN
	char auswahl='s';			// Default

while(1) { // MAINSCHLEIFE

		 if((run_rwd)&&(auswahl=='f')) auswahl='r'; 	// Run RWD, war FWD
	else if((run_rwd)&&(auswahl=='r')) auswahl='f'; 	// Run FWD, war RWD
	else if((run_fwd==1)&&(auswahl=='f')) auswahl='x'; 	// Stop FWD, war FWD
	else if((run_fwd==1)&&(auswahl=='r')) auswahl='y'; 	// Stop RWD, war RWD
		switch(auswahl){
		case 'f':	// VORWÄRTS FWD
		  	fwd();
			break;
		case 'r' :  // RÜCKWÄRTS RWD
			rwd();
			break;
		case 'x' :	// STOP FWD, setze danach FWD (war FWD) 
			loop_until_bit_is_set(PINA, PA0);
			auswahl='f';
			break;
		case 'y' :	// STOP RWD, setzte danach RWD (war RWD)
			loop_until_bit_is_set(PINA, PA0);
			auswahl='r';
			break;
		case 's' :	// Default Stop, Start drücken zum Starten
			loop_until_bit_is_set(PINA, PA0);
			auswahl='f';
			break;
		}
} // MAINSCHLEIFEN ENDE
 

   return 0; 
}
So besser? Wenn ich die Variablen mit <pre>#define</pre> Deklariere, funktioniert alles wunderbar. Wenn ich es hingegegen mit <pre>uint8_t</pre> mache Funktioniert es nicht. Genauso: Schreibe ich statt <pre> if((run_rwd)&&(auswahl=='f')) auswahl='r';</pre> dieses <pre> if((run_rwd==1)&&(auswahl=='f')) auswahl='r';</pre> Funktioniert das Rückwärts Shiften auch nicht. Er ändert die Variable dann nicht. Bei <pre>run_fwd</pre> ist es egal wie ichs mach ^^ Irgendwie ... weis nich.
Das AVR Studio bietet dort ein kleines Kuriosum. Genauso wie <pre>_delay_ms(>10)</pre> nicht Funktioniert. Er Springt dann in der delay.h rum, macht aber nichts. Ergo kann ich auch keine debounce Funktion einbauen, bzw den "vorgekauten" Code benutzen.

Ich hoffe auf Lösung und verbleibe mit Freundlichen Grüßen