Gast
#235042
hi!
bin seit kurzen beim programmiern eines Atmega32 und versuche
verzweifelt eine motoranschnittssteuerung zum laufen zu bringen!
Sourcecode-Ausschnitt:
void moto_move (uint8_t ID, int8_t Schritte)
{
// Anschluss an L297 über
PA4=Enable,PA0=Drehrichtung(HIGH=clockwise),PA2=Takt
DDRA = 0xFF; // Datenrichtungsregister wegen
// Interrupt erneut setzen
PORTA |= (1<<PA4); // Motor einschalten
// Drehrichtung einstellen (positiv = rechts)
if(Schritte > 0)
PORTA |= (1<<PA0);
// Takt ausgeben
uint8_t i;
i=0;
while(i<Schritte)
{ PORTA |= (1<<PA2);
_delay_ms(9000);
PORTA &= ~(1<<PA2);
_delay_ms(1000);
i++;
}
PORTA &= ~( (1<<PA4)|(1<<PA0)|(1<<PA2) );
return;
}
die Funktion moto_move wird von einem Interrupt ausgelöst!
jedoch sobalt ich den interrupt auslöse kann ich keine spannung an PA4
und PA2 messen!! aber das delay funktionier!!!!
die parameter (uint8_t ID, int8_t Schritte) welche übergeben werden,
sind beide "0xFF" also 256!!
vielleicht kann mir ja einer helfen!