Das ist Faulheit von mir.
MOD ; //bildet den Divisionsrest, dieser steht dann in Akku 1
L L#0; //lädt 0 in Akku 1, was vorher in Akku 1 war, wird dabei automatisch in Akku 2 geschoben
TAK ; //Tauscht Akku 1 mit Akku 2, also steht nun der Divisionsrest in Akku 1 und die 0 in Akku 2
<=D ; //Vergleich
SPB ENDE; //wenn der Divisionsrest >= 0 (genauer, wenn 0 <= Divisionsrest) dann Sprung zum Ende. Dabei steht der Divisionsrest in Akku1 und kann so bei der Marke ENDE sofort in #Istwert_Scale gespeichert werden
L 4096; // Wenn der Divisonsrest negativ ist, dann muß man ihn positiv machen, indem man eine Umdrehung dazu addiert, ohne TAK hätte ich den Divisionsrest oben zwischenspeichern und hier wieder laden müssen, mit TAK steht er ja aber schon in Akku1 bereit!
+D ;
ENDE: T #Istwert_Scale;
Noch zur Erklärung. Der Divisionsrest ist natürlich nur negativ, wenn schon das Ergebnis von Istwert - Offsett negativ war, also falls der Geber mal ein Stück rückwärts läuft.
Nehmen wir an, der Offset war 7000
7001 ergibt einen Output von 1
6999 ergibt -1, was aber eigentlich Unsinn ist
also -1 + 4096 = 4095
so muß das ja auch sein, wenn man den Geber vor den Offset zurückdreht.