Hi!
Zuerst mal wundere ich mich ein wenig über dieses Konstrukt:
Code:
//NUR AUFRUFEN, WENN EIN TIMER INTERUPT DA WAR
if(servo_flag == 1) {
cli();
calc_steps();
keep_moving();
sei();
Warum machst Du das über ein Flag und schreibst nicht den ganzen Kram in die Interrupt-Routine?
Was Dein Empfangs-Problem angeht - das wird wohl ein Timing-Problem sein. Der Empfangs-Interrupt bekommt einfach nicht genügend Zeit zum arbeiten.
Versuche doch mal
- Den Timer langsamer laufen zu lassen
- Die Interrupts während der Positionierung nicht global zu deaktivieren.
askazo
Lesezeichen