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

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