Moin Martinius,

also ich sehe da auf den ersten Blick zwei Fehler:

Erstens musst Du den Befehl Timer3 = 63693 auch in der Timer3-ISR ausführen lassen. Sonst läuft Dir der Timer nur beim ersten mal nach 1 ms über, und ab dann alle ca. 35 ms, weil er nach dem Overflow bei 0 anfängt zu zählen.

Zweitens lässt Du die Variable Sw1s zwar permanent in der Do-Loop-Schleife ausdrucken - berechnet wird sie aber nur ein einziges mal, nämlich vor der Do-Loop-Schleife! Und da sind alle Deine Variablen noch Null. Folglich ändert sich zwar Sw1ys, aber alle anderen Variablen nicht! Die Divisionen müssten also schon in die Do-Loop-Schleife rein.

Gruß,

Daniel