Hi!
Zuerst mal wundere ich mich ein wenig über dieses Konstrukt:
Warum machst Du das über ein Flag und schreibst nicht den ganzen Kram in die Interrupt-Routine?Code://NUR AUFRUFEN, WENN EIN TIMER INTERUPT DA WAR if(servo_flag == 1) { cli(); calc_steps(); keep_moving(); sei();
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







Zitieren

Lesezeichen