Hallo, Ich stecke schon seit stunden vor einem wahrscheinlich kleinen problem. Ich verwende für ein Analog-Synthesizer-Inferface einen DAC mit 16-Bit. Nun möchte ich gerne eine Funktion haben, die eine Frequenz als Parameter (in Hz) nimmt, und diese als Steuerspannung ausgibt. (http://en.wikipedia.org/wiki/CV/Gate) Hierfür habe ich die folgende DAC-Library gebaut (hier nur zur veranschaulichung): void DAC_WriteChannel(int8_t channel, int16_t value); Das funktioniert auch wunderbar. Nur leider habe ich wirkliche Probleme bei der Formel zur Umrechung der Frequenz in Steuerspannung (0.01 V beim DAC ist in dem fall der Wert 13, 0.1V 130, etc). Ich habe mir bereits die Frequenztabelle (https://www.uni-muenster.de/imperia/md/content/fachbereich_physik/technik_didaktik/entwicklung_bau_synthesizer.pdf) angeguckt, aber keine Lösung gefunden. Bin für jede Hilfe sehr dankbar!
:
Bearbeitet durch User
Peter Frend schrieb: > aber keine Lösung gefunden. log2(frequenz)-log2(32.703) und log2(x) ist ln(x)/ln(2)
MaWin schrieb: > log2(frequenz)-log2(32.703) > > und log2(x) ist ln(x)/ln(2) Das heißt: AD5668_write(WRITE_UPDATE_N, outputPin & 0x07, (log2(noteFrequency)-log2(32.703)) * 13.4 ); ?
Peter Frend schrieb: > Das heißt: > AD5668_write(WRITE_UPDATE_N, outputPin & 0x07, > (log2(noteFrequency)-log2(32.703)) * 13.4 ); > ? (log2(noteFrequency)-log2(32.703)) * 13400 war's :) Danke :)
Darf man mal fragen, woher hier die 32.703 kommen?
Ingenieur schrieb: > Darf man mal fragen, woher hier die 32.703 kommen? Aus dem Link vom Eroeffnungsposting. Das tiefste C wird dort mit 0V repraesentiert und hat eine Frequenz von 32.703Hz
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.