Sin/Cos aus 16Bit Wertebereich

Gast #2167160
Lesenswert?
• ▲
▼
Hi,

ich habe einen Motor mit 16 Bit Auflösung (0-65536) für eine 
Umdrehenung.
Ich möchte jetzt daraus einen Cos und Sin machen, so dass wenn ich ihn 
drehe.
Hatte gedacht den Wertebereich (65536 - die Hälfte), damit ich einen 
Bereich von -32768 bis + 3232768 bekomme. Jedoch würde er bei jeder 
Umdrehung wieder von + nach - schlagartig ändern. Wie bekomme ich aus 
einem solchen Wertebereich eine Sinus Funktion?

LG
Gast #2167172
Lesenswert?
• ▲
▼
Die üblichen sin()-Funktionen nehmen als Parameter den Winkel im 
Bogenmass, also für eine Umdrehung 0..2*Pi.

Dein Zähler läuft für eine Umdrehung von 0..65535

Der Rest ist ein einfacher Dreisatz.

Oliver
Gast #2167191
Lesenswert?
• ▲
▼
dachte mir Sin/Cos Arrays zu schreiben.
Die Antwort von Oliver ist mir noch nicht so ganz eindeutig!
1
    int amount = 65536; 
2
    int cosinus_array[65536];
3
    int sinus_array[65536];
4
      
5
   // COSINUS - START 32768 
6
    for (i=0; i<(amount-1); i++)
7
        cosinus_array[i]=((amount/2)-1)*cos((double)i/amount*2*3.14);
8
        
9
    // SINUS - START 0
10
    for (i=0; i<(amount-1); i++)
11
        sinus_array[i]=((amount/2)-1)*sin((double)i/amount*2*3.14);

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.