Verschiedene Frequenzen mit nur einem Timer

OP #2728549
Lesenswert?

Hi Forum,

ich würde gerne zwei unabhängig voneinander einstellbare Frequenzen 
(Rechteck) mit einem Tiny45 erzeugen.
Ich möchte dafür aber nur Timer0 verwenden.
Erste Versuche im Toggle/ctc Mode waren nicht so erfolgreich 
(Verschiedene  ocra/B Werte (dachte ich im jugendlichen Leichtsinn...)
Der Counter wird ja stets von Overflow on A zurückgesetzt :-(

Frage:
Gibt's noch einen WGM Mode, den ich übersehen habe

- oder bleibt nur der Weg über Timerinterupt einen/zwei/drei Phasenakkus 
als Zeiger in eine DDS Tabelle weiterzuzählen und die Pins  dann selbst 
(PORTB=) zu toggeln.
DDS hätte noch den netten Nebeneffekt, dass ich auch noch ein 
vorausberechnetes ein-Bit codiertes Rauschen auf einem dritten Pin mit 
ausgeben kann.
Persönliche Seite #2728557
Lesenswert?

Michael R. schrieb:
> - oder bleibt nur der Weg über Timerinterupt einen/zwei/drei Phasenakkus > als 
Zeiger in eine DDS Tabelle weiterzuzählen und die Pins  dann selbst
> (PORTB=) zu toggeln.

Rischtisch. Ein Timer kann immer nur eine einzige Frequenz gleichzeitig 
erzeugen. Aus dieser Frequenz musst Du dir dann (z.B. mittels DDS) deine 
anderen Frequenzen ableiten. Um welche Frequenzen geht es denn?


Gruß
Jonathan
OP #2728887
Lesenswert?

Die Anforderungen sind m.E. nicht besonders hoch
fmin= 4 kHz, fMax 40 kHz, Auflösung ca. 100Hz
Phasenjitter ist weitgehend egal. 10° ist sicher drin.

Genauigkeit: interner Rc Oszillator ist ausreichend.
Mit dem 8-Bit Teiler hätte ich bei 40kHz auch kaum mehr als 1kHz Steps 
hinbekommen und das wäre auch noch ok gewesen.

Werd's wohl mal mit einer 16-Bit dds probieren (meine erste :-).
Die Lookup-Tabelle lässt sich bei Rechteck ja recht gut "komprimieren" 
und bei 40 KHz bleiben reichlich cpu-Takte die man in einer ISR 
verbraten darf.
OP #2729166
Lesenswert?

yep, so ungefahr...

mal sehen ob der gcc-code schnell genug dafür ist oder ob es Handarbeit 
braucht.

Btw: wie bekomme ich das 1-Bit Rauschen hin? (alle Ausgänge digital, 
kein r/2r Netzwerk)
Längere Lookup-Tabele, klar. 256 Stützstellen sind nicht so wirklich 
berauschend.
Das Rauschen sollte natürlich auch  > 4kHz HP gefiltert sein. Also 
weisses Rauschen im Audacity an passender Grenzfrequenz HP filtern und 
das ganze dann mit Sigma/delta auf ein Bit encoden?

Das hier könnte evtl nützlich sein. 
http://www.romanblack.com/BTc_alg.htm
Hat das schon jemand versucht oder bin ich auf dem Holzweg.

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