Teilen durch eine Fliesskommazahl in Assembler

Gast #25416
Lesenswert?

Hallo Leute

Ich hab mal ne Frage und hoffe, dass mir jemand weiterhelfen kann.
Ich baue mommentan einen Strom- Frequenz konverter. Dabei programmiere 
ich gerade einen ADuC834 (intern 8052) und auch einen PIC16F84A.
Der ADuC übernimmt die 24Bit AD-Wandlung und mit dem PIC generiere ich 
die Frequenz.
Nun sollte ich den 24Bit gewandelten Wert mit einer Konstanten 
Fliesskommazahl (1,386765864) teilen. Wie kann ich das in Assembler 
realisieren? Der 8052 verfügt zwar über einen Divisionsbefehl doch 
meiner Meinung nach nur Ganzzahlig.
Kann mir da jemand helfen? Besten Dank im Voraus..
andy
Gast #25418
Lesenswert?

Ich habe mommentan bei Full-scale (Alle 24Bit->High), am Ausgang vom PIC 
eine Frequenz von ungefähr 16,876....kHz!!(weiss sie Mommentan nicht 
auswendig)
Ich sollte aber auf 12,5kHz/50ppM genauigkeit kommen! Also dachte ich 
mir den 24Bit Wert mit dem Verhältnis der Ist- und Sollfrequenz zu 
teilen.
(Ich dachte man könne mit dem DIV-Befehl auch 32Bit-Werte mit 16Bit 
verrechnen?!)Kann aber auch sein dass ich mich irre..
Gast #25423
Lesenswert?

Must Du denn die Teilung im AD vornehmen? Für die PICs gibt es 16 und 
24Bit Algorhythmen. Die machen zwar keinen richtigen Spaß, funktioniert 
aber (war für mich die Entscheidung mich von den PICs zu verabschieden).
Wenn die Taktung so prezise sein soll, wirst Du wohl um einen 
temperaturstabilisierten Quarz nicht herumkommen. Sonst nützt Dir das 
"Ziehen" auch nichts. 24Bit ist ja auch keine kleine Sache (knapp 300nV! 
bei 5V Eingangsbereich).
Bei 50ppm bleiben Dir von den 24Bit nur noch 18 übrig.

Reiner
Gast #25425
Lesenswert?

Ich hatte eigentlich schon vor die Teilung im AD-wandler vorzunehmen, 
weil ich den PIC nicht unnötig noch mit weiteren Befehlen belasten 
wollte (dachte mir, dass das Tastverhältnis meiner Ausgangsfrequenz 
gestört werden könnte.) Sorry konnte leider keine 16 und 24Bit 
Algorhytmen für den PIC finden, ist das erste mal dass ich mit PICs 
arbeite. èbrigens stimmt es das ich mit 18Bit fahren könnte doch dachte 
ich mir wenn er schon 24 Bit wandelt...

PS: der ADUC834 wird mit einem Uhrenquarz getaktet und intern durch eine 
PLL auf maximal 12,58MHz +-20% gebracht!(Also für meine Anwendung völlig 
nutzlos)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren