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
wie kommste auf so ne Zahl? Kann man die auch anders darstellen? Evtl. Kannst du auch mit Ganzzahlarithmetik auskommen. Den div-Befehl kannst du vergessen, der hilft nur bei einfacher 8bit-Division und läßt sich nicht größere Zahlen benutzen.
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..
und wenn du den pic einfach langsamer taktest ? weiß ja net ob das bei pic möglich ist hab noch nie mit den gearbeitet
Ich bezweifle das ich einen Quarz in dem von mir benötigten Verhältnis finde.. (muss ja auf die Verlangten 50ppM kommen) aber trotzdem danke
mh den quarz kannste ja aber auch durch hinziehen dazu bekommen... ich weiß zwar net genau wie... aber das geht... mein pa macht das öfters mal...für messgeräte gehen tut das....
Versuch es mit einer Kombination aus niedrigerer Quarzfrequenz und Analogabgleich (Referenzspannung ändern, falls möglich, oder Teiler vor dem Analogeingang). Ansonsten würde ich für diese Aufgabe lieber gleich z.B. einen AD654 einsetzen.
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
Hier meine Arithmetikbibliothek: http://www.specs.de/users/danni/appl/soft/arithmet/index.htm Die ist skalierbar von 16 Bit ... 640 Bit. Aber warum soll da noch ein extra PIC mit ran ? Der 8051 langweilt sich doch nur, warum darf der denn nicht die Frequenz erzeugen ? Peter
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)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.