Schönen Nachmittag,

Ich habe mir eine Erweiterungsplatine für 3 Servos gebastelt und diese auf meine ATMEGA32 Erweiterungsplatine gesteckt. Für die Servos belegt habe ich die PINS PB5(MOSI), PB6(MISO) und PB7(SCK) der ISP-Schnittstelle.

In der Asuro.c habe ich folgendes eingetragen:
Code:
/* function for Servos */
/* example code right Servo On, middle Servo On, left LED Off */
/* Servo(OFF,ON,ON); */
void Servo(unsigned char left, unsigned char middle, unsigned char right)
{
	if (left || middle || right) {
		DDRB |= (1 << PB5) | (1 << PB6) | (1 << PB7);
		PORTB |= (1 << PB5) | (1 << PB6) | (1 << PB7);
	}
	if (!left) PORTB &= ~(1 << PB7);
	if (!middle) PORTB &= ~(1 << PB6);
	if (!right) PORTB &= ~(1 << PA5);
}
In die Asuro.h
Code:
/* function for Servos */
/* example code right Servo On, middle Servo ON, left LED Off */
/* BackLED(OFF,ON,ON); */
void Servo(unsigned char left, unsigned char middle, unsigned char right);
Und das Programm ist so
Code:
#include "asuro.h" 

unsigned char i, servo_stellzeit; 

void servo(unsigned char winkel){ 
unsigned int count=0; 
do{ 
   count++; 
   Servo(ON,ON,ON); 
   FrontLED(ON); 
   Sleep(winkel); 
   Servo (OFF,OFF,OFF);
   FrontLED(OFF); 
   Sleep(255); Sleep(255); Sleep(255); 
}while (count<servo_stellzeit); 
} 

int main(void) { 

Init(); 
StatusLED(OFF); 
do{ 
servo_stellzeit=35; 
servo(51); 
servo(90); 
servo(51); 
servo(15); 
servo_stellzeit=2; 
for (i=15; i<88; i+=2) servo(i); 
for (i=90; i>17; i-=2) servo(i); 
}while (1); 
return 0; 
}
Aber es bewegt sich nichts...
Könntet ihr mir bitte etwas unter die Arme greifen?