Hi, vorab, ja ich hab die Suchfunktion bemüht und nichts zu meinem Problem gefunden. Ich bin grade dabei einen variablen Sinusgenerator auf PWM-Basis zu basteln, das Ding läuft auch eigentlich wie es soll, nur hab ich das Gefühl programmiertechnisch bin ich grottig schlecht und es geht eleganter. Also verbesserungs Vorschläge sind erwünscht. Achja, es geht hier nicht um eine andere Lösung an sich. Mir ist schon klar das es mit Rechtecksignal und Schwingkreis einfacher geht.
Leider doch, in dem von dir genannten Beitrag geht es leider nicht um einen variablen Sinus, das Ding statisch zusammenzimmern geht bei mir auch aus dem Rückenmark.
Viele Fehler von dem oben zietierten Beitrag sind da aber schon drin. Es lohnt sich also noch mal da nachzulesen, damit man hardware PWM benutzt. Für einen Sinus variabler Frequenz bietet sich dann noch die DDS methode an. Ist nicht viel komplizierter als immer die feste Tabelle abzuarbeiten, aber man hat eine bessere Auflösung (z.B. 32 Bit) und kommt zu höheren Frequenzen. Die Ausgabefrequnz ist an die PWM Frequenz gebunden. Bei 16 MHz Takt und 8 bit PWM also 62,5 kHz. Damit sollte man bei geeigentem Filter hinter dem PWM Ausgang bis etwa 10 kHz Sinusfrequenz kommen.
OMG, ich Volldepp. Danke, DDS war das Zauberwort. Ich habe krampfhaft versucht den Tabellen Index IN der ISR zu berechnen, bin damit natürlich gescheitert und kam dann so auf das gemurkse hier. Aber wenn man natürlich nur einmal die Verschiebung berechnen muss, passt die Addition auch prima in die ISR. Danke fürs Augenaufmachen.
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.