Das mit dem Verteilen habe ich auch schon gemacht aber in meinem Fall
nützt es nichts, da ich eine Zahl mit einer anderen dividiere.
Dies mache ich so:
movlw 0xFF ; 255 in Periodendauer schreiben
movwf Periodendauer
Periodendauerloop
movf frequenz,0 ; Variable frequenz in Arbeitsregister
laden
bcf STATUS, C ; Carry Flag löschen
subwf Periodendauer,1 ; Periodendauer = Periodendauer -
Arbeitsreg.
bnc Periodendauerfertig ; Wenn C=1 springe zu Periodendauerfertig
incf Taktrate,1 ; Taktrate +1
goto Periodendauerloop ; springe nach Periodendauerloop
Periodendauerfertig
..... usw.
Das Problem ist nun, dass ich in die Variable Periodendauer höchstens
255 schreiben kann und in der Variable frequenz eine Zahl zwischen 1 und
150 steht. Dies bedeuted das wenn in der Variable frequenz 130 steht
schlussendlich das gleiche Resultat gibt wie wenn 150 stehen würde.
Nun müsste ich in die Variable Periodendauer eine höhere Zahl schreiben
können, damit die Genauigkeit zunimmt. Denn wenn ich es nur Verteile
habe ich den Fehler einfach mehrere Male.
Trotzdem danke für den Tipp