Sinus ausgeben

OP #364307
Lesenswert?
• ▲
▼
Ich habe einen Tiny26 mit 250kHz PWM.
Ich möchte nun ein Sinussignal ausgeben, wie es in der Appnote AVR131:
Using the AVR’s High-speed PWM beschrieben wird.
Ich programmiere allerdings in C, und mir föllt spontan keine
Möglichkeit ein, wie ich die 256 Byte Wertetabelle ausgeben soll.
Im RAM halten kann ich sie nicht, und ein SWITCH will ich mit so vielen
werten auch nicht machen...
Gast #364312
Lesenswert?
• ▲
▼
..alles eine Frage der gewünschten Auflösung

....Sinus besteht aus einer viertel Welle

..ansteigen ... wieder fallende
..ansteigend*-1 .. wieder fallend *-1

also kann mann selber die Ganeuigkeit festlegen.....


ansonsten eine reine Transistorschaltung
Gast #364313
Lesenswert?
• ▲
▼
Also die GEFORDERTE Aulösung ist 255.
Viertelwelle ginge natürlich, aber ich will mir die erweiterung auf
beliebige Signale offen halten.
Kan mir denn keiner helfen und mir sagen wie man in C eine Tabelle ins
Flash bekommt?
mit assembler geht es ja recht leicht.
Gast #364314
Lesenswert?
• ▲
▼
@Lukas ... was soll das mit der 255....

egal noch einmal:

ich habe eine zyklischen Kurvenverlauf wie z.B Sinus

gegen Stützwerte
°
10  0,1736482
20  0,3420201
30  0,5
40  0,6427876
50  0,7660444
60  0,8660254
70  0,9396926
80  0,9848078
90  1

Preisfrag was ist der Wert bei 130° - staun

130  0,7660444

also meine Werteliste absteiegn... und dann abe 180° negiert


ups

4 Mal das Array abarbeiten
1. Umlauf aufsteigen
2. Umlauf absteigend
3. Umlauf Aufsteigend aber negiert
4. Umlauf absteigen negiert


und was soll das nun mit der 255 erten im Array
Gast #364319
Lesenswert?
• ▲
▼
Guten Abend,

wenn Du die 256 Sinuswerte nacheinander brauchst, kannst Du die
rekursiv berechnen, auch in integer. Da brauchst Du gar keine Tabelle.
Das Prinzip dabei ist, nen Vektor cos(w)+i*sin(w) um nen Winkel von
2*pi/256 zu drehen. Das liefert Dir auch den Cosinus.

Cheers
Detlef

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.