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!
Gast
#3737214
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 :)
Gast
#3737259
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
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.