Frage

Was der Assembler-Code für 68HC11 zu berechnen Wert von Sinus wäre entweder Taylor-Reihe oder eine Lookup-Tabelle?

Anzeigewert wird nur in integer sein. Wie würde eine Lookup-Tabelle Arbeit in diesem Fall? Wie kann es Taylorreihe implementiert werden, indem?

War es hilfreich?

Lösung

Ich habe keine 68HC11 Programmierung in einer langen Zeit, so dass ich ‚gewonnen t Lage sein, Sie genaue Anweisungen zu geben, aber Sie tun mögen, mehr oder weniger folgende:

  1. Definieren einer Tabelle im Speicher, die 256 (oder wie viele) Werte für sin (x) hat, über einen Quadranten, in dem Bereich [0-Pi / 2].
  2. Konvertieren Sie Ihre Eingabe in den Bereich [0-Pi / 2], Spur davon zu halten Quadranten war es ursprünglich in. Für Q2 Sie den Wert wollen (Pi / 2-x), zum Beispiel.
  3. den eingestellten Wert in der Tabelle nachschlagen, negiert das Ergebnis, wenn der ursprüngliche Winkel in der 3. oder 4. Quadranten war.

Besonderheiten wären natürlich von Ein- und Ausgangsbereichen, aber im Allgemeinen, werden Sie Modus indiziert Adressierung verwenden, mit dem Indexregister in die Tabelle zeigt, oder alternativ erweiterte Adressierung, mit dem Offset-Satz durch den Opcode zu modifizieren.

Andere Tipps

Wenn Sie eine Floating-Point-Lösung suchen, müssen Sie zunächst Gleitkommaoperationen implementieren. Dieser Teil wird nicht trivial auf einem 68HC11, die selbst für 32-Bit-Operationen keine Unterstützung hat. Danach, sin Berechnung ist einfach, aber sehr langsam. ; -)

Verwenden Sie eine Lookup-Tabelle.

Verwenden Taylor-Reihe nicht.

Google gefunden diese .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top