amal
08.07.2011, 16:53
hallo,
mein Frage ist:
Ein Schrittmotor soll 50 Schritte fahren,danach soll er dir Richtung ändern dann wieder 50 Schritte machen.Wie kann man die frequenz rechnen, womit der Motor drehen soll?
ISR (INT0_vect) //recht fahren
{
PORTB|=(1<<PB0); // Enable
PORTB|=(1<<PB1); // Richtung
for(int i=0,i<50,i++)
{
PORTB|=(1<<PB2) //Clock
_delay_us(x) // wie berechnet man die x damit der Motor sauber sich dreht
PORTB&=~(1<<PB2)
}
PORTB&=~(1<<PB0); // Enable löschen
}
ISR (INT1_vect) //"Mache viele Schritte"
{
PORTB|=(1<<PB0); // Enable
PORTB&=~(1<<PB1); // Richtung
for(int i=0,i<50,i++)
{
PORTB|=(1<<PB2) //Clock
_delay_us(x) // wie berechnet man die x damit der Motor sauber sich dreht
PORTB&=~(1<<PB2)
}
PORTB&=~(1<<PB0); // Enable löschen
}
wird das so funktioniern und wenn ja wie kann man die genaue Wartezeit x für _delay_us berechnen.
mein Frage ist:
Ein Schrittmotor soll 50 Schritte fahren,danach soll er dir Richtung ändern dann wieder 50 Schritte machen.Wie kann man die frequenz rechnen, womit der Motor drehen soll?
ISR (INT0_vect) //recht fahren
{
PORTB|=(1<<PB0); // Enable
PORTB|=(1<<PB1); // Richtung
for(int i=0,i<50,i++)
{
PORTB|=(1<<PB2) //Clock
_delay_us(x) // wie berechnet man die x damit der Motor sauber sich dreht
PORTB&=~(1<<PB2)
}
PORTB&=~(1<<PB0); // Enable löschen
}
ISR (INT1_vect) //"Mache viele Schritte"
{
PORTB|=(1<<PB0); // Enable
PORTB&=~(1<<PB1); // Richtung
for(int i=0,i<50,i++)
{
PORTB|=(1<<PB2) //Clock
_delay_us(x) // wie berechnet man die x damit der Motor sauber sich dreht
PORTB&=~(1<<PB2)
}
PORTB&=~(1<<PB0); // Enable löschen
}
wird das so funktioniern und wenn ja wie kann man die genaue Wartezeit x für _delay_us berechnen.