Ich habe auch so einen Schrittmotor mit Braun/Schwarz , Orange/Gelb und einem L293D aber keinen ATtiny2313 sondern ein Atmega88 20PU.
Hab allerdings in C programmiert und mit zwei Schaltern weis nicht obs Dir hilft aber der Code sieht so aus :
Code:
#define  F_CPU   1000000UL 
#include <util/delay.h> 
#include <avr/io.h>

#define Time 25

#define STATSLED0_ON  (PORTC |= 1<<PC0)
#define STATSLED0_OFF (PORTC &= ~(1<<PC0))
#define STATSLED1_ON  (PORTC |= 1<<PC1)
#define STATSLED1_OFF (PORTC &= ~(1<<PC1))
#define STATSLED2_ON  (PORTC |= 1<<PC2)
#define STATSLED2_OFF (PORTC &= ~(1<<PC2))

#define SWITCH_1 	(PINB & 1<<PB0)
#define SWITCH_2 	(PINB & 1<<PB1)

// L
void StepA1(){
	// Step 1
	PORTD |= 1<<PD0;
	PORTD &= ~(1<<PD2);
	}

void StepA2(){
	// Step 2
	PORTD |= 1<<PD2;
	PORTD &= ~(1<<PD0);
	}

void StopA(){
	//stop
	PORTD &= ~(1<<PD0);
	PORTD &= ~(1<<PD2);
	}


//R
void StepB1(){
	// Step 1
	PORTD |= 1<<PD4;
	PORTD &= ~(1<<PD6);
	}

void StepB2(){
	// Step 2
	PORTD |= 1<<PD6;
	PORTD &= ~(1<<PD4);
	}

void StopB(){
	//stop
	PORTD &= ~(1<<PD4);
	PORTD &= ~(1<<PD6);
	}

int main(){

	DDRC = 1<<PC0 | 1<<PC1 | 1<<PC2;	// LED's

	DDRD = 1<<PD0 | 1<<PD2 | 1<<PD4 | 1<<PD6;	// Step1 + Step2;

	DDRB &= ~(1<<PB0 | 1<<PB1);	// SWITCH_1 / SWITCH_2

while(1){


	if(! SWITCH_1 && ! SWITCH_2){
			STATSLED0_ON;
			STATSLED1_OFF;
			STATSLED2_OFF;
			StopA();
			StopB();
		}


	else if(! SWITCH_1 && SWITCH_2){

			StepA1();
			_delay_ms(Time);
			StepA2();
			_delay_ms(Time);
			STATSLED0_OFF;
			STATSLED1_ON;
			STATSLED2_OFF;
		}

	else if(SWITCH_1 && ! SWITCH_2){

			StepB1();
			_delay_ms(Time);
			StepB2();
			_delay_ms(Time);

			STATSLED0_OFF;
			STATSLED1_OFF;
			STATSLED2_ON;

		}

	}
}