Diese Idee hatte ich auch schon... ich schreibe die berechneten Servopositionen in eine 16bit variable. welche dann vom interrupt dem Timerwert zugewiesen wird.

Ich habe es so gelöst dass ich 2 Blöcke gemacht habe, in etwa so:

servo_umsch=1
servo_1(1) = servo_pos(1)
servo_1(2) = servo_pos(2)
servo_1(3) = servo_pos(3)
servo_umsch=0
servo_2(1) = servo_pos(1)
servo_2(2) = servo_pos(2)
servo_2(3) = servo_pos(3)

Jenachdem ob servo_umsch 1 oder 0 ist lese ich in der ISR die variablen servo_1 oder servo_2. So kann ich verhindern dass ich eine Variable lese welche gerade beschrieben wird....

gruss bluesmash