Hallo zusammen

@PRobot
danke für die Codeschnippsel. Das sieht ja sehr gut aus.

Bei der Berücksichtigung von einem eventuellen Überlauf:
Code:
      buf_x=pan_read(0x17);
                //und zu der Positionvariable addieren
      pan_posx += buf_x;
          
                /* Nachschaun ob das Überlauf-Bit im Register 0x16 gesetzt ist
                   wenn das der Fall ist muss je nach Vorzeichen der Deltax Variable x
                   noch 128 (überlauf nach oben) dazugezählt oder eben 128 abgezogen werden
                */
      if(ino&(1<<3)){
         if(buf_x<0){
            pan_posx-=128;
         }else{
            pan_posx+=128;
         }
      }
addierst bzw. subtrahiert du die 128.
Ist es richtig, dass abgezogen wird, wenn buf_x < 0 ist?
Ich werfe dese Frage nur in der Raum, das ja die Werte in Register 0x17 und 0x18 als 2'er complement angegeben sind.
Ich bin mir sicher, dass es so korrekt sein müsste, aber dies könnte nochmal eine Stelle zum Nachdenken sein.

Und in deinem EXCEL komme ich in dem Block 'Umrechnungsfaktor' mit dem Wert '1 mm = 296,63 Ticks' nun auf 7534,402 Tiks / inch
Das glaube ich nicht


@jeffrey
Erst mal was einfaches: Das c steht für count (count per inch = cpi)
Deine Rechnung konnte ich so nachvollziehen. Aber Vorsicht mit den, mal von mir in den Raum geworfenen, 400 cpi (die ja mal nur 40 waren). Dieser Sensor müsste 800 cpi zu haben. Ich hatte mich ja auf eine Doku gestützt, die hier nicht relevant ist.

Jetzt muss ich erst einmal nach Hause
Gruß Sternthaler