Da ich nach langem Googeln nichts gefunden habe, frage ich mal im Forum: Wie funktioniert die Klangerzeugung mit einem Microcontroller über ein R2R Netzwerk? Soll ich einfach in einem Array die entsprechenden Wellenformen ablegen und diese dann über eine for Schleife abtasten? Vielleicht hat ja jemand für euch mehr Ahnung. MfG Benedikt
Benedikt K. schrieb: > Soll ich einfach in einem Array die entsprechenden > Wellenformen ablegen Ja... > und diese dann über eine for Schleife abtasten? Nein, das reicht nicht, da solltest Du schon einen Timer bemühen, dessen ISR im Takt der Samplerate (Wiedergaberate) das nächste Byte aus dem Array holt und an den Port mit dem R2R-DAC ausgibt. ...
Hier ist ein schönes Beispiel - ohne Timer, aber mit einer schnellen Programmschleife fester Laufzeit in Assembler.. http://www.myplace.nu/avr/minidds/
Könnte auch jemand aus dem ASM File eine HEX Datei erzeugen ? Die Emailadi vom Jasper auf seine HP geht nicht.
Thomas der Bastler schrieb: > Könnte auch jemand aus dem ASM File eine HEX Datei erzeugen ? Hä? Du wirst dir doch ja wohl den Text des Assembler-Programms von seiner Web-Seite per Copy&Paste ausschneiden und in einem neuen AVR-Studio Projekt einfügen und auf F7 drücken können?
Vielen Dank für eure Antworten. Mit einer im Flah abgelegten Sinus Tabelle funktioniert das auch schon ganz gut. Jedoch wollte ich daraus eher eine Drum Machine basteln. Hat jemand eine Ahnung wo ich solche 8 Bit Tabellen herbekomme? MfG Benedikt
Benedikt K. schrieb: > Hat jemand eine Ahnung wo ich solche 8 > Bit Tabellen herbekomme? Vielleicht aus entsprechenden WAV-Dateien, aus denen Du den Header entfernst? ...
Benedikt K. schrieb: > Wie funktioniert die Klangerzeugung mit einem Microcontroller über ein > R2R Netzwerk? Hier ist ein Beispiel (inkl. Software): http://wiki.forskningsavd.se/SyltJamSynth
Hannes Lux schrieb: > Benedikt K. schrieb: >> Soll ich einfach in einem Array die entsprechenden >> Wellenformen ablegen > > Ja... > >> und diese dann über eine for Schleife abtasten? > > Nein, das reicht nicht, da solltest Du schon einen Timer bemühen, dessen > ISR im Takt der Samplerate (Wiedergaberate) das nächste Byte aus dem > Array holt und an den Port mit dem R2R-DAC ausgibt. > > ... Okay Angenommen meine Samplerate beträgt 44100Hz. Dann muss ich meinen Prescaler so wählen, dass ich diese Frequenz bekomme, oder? Wie soll ich da vorgehen?
Benedikt K. schrieb: > Angenommen meine Samplerate beträgt 44100Hz. Dann brauchst Du für eine Sekunde Sound 44,1 Kilobyte Speicher zum Ablegen der Soundbitmap. Wie lange klingt ein Paukenschlag nach? Wie lange ein Becken? Wieviel Speicher würdest Du brauchen? Wieviel Speicher hast Du? Benedikt K. schrieb: > Dann muss ich meinen > Prescaler so wählen, dass ich diese Frequenz bekomme, oder? Ich glaube zwar, dass sich diese Frage aufgrund der angestrebten 44100 Hz und der Erkenntnis über den Speicherplatzmangel erübrigt hat, aber mit dem Prescaler (Vorteiler) alleine ist es nicht getan. Da spielt der Zählumfang des Timers auch noch eine Rolle. Mit dem Vorteiler stellst Du lediglich ein, dass das gewünschte Intervall bei gegebenem Controllertakt mit vertretbarer Auflösung in den Zählumfang des Timers passt. Die genaue Einstellung der Frequenz stellt man dann mit dem Timer direkt ein. Hat der Timer keine anderen Aufgaben, dann kann er im CTC-Modus mit Compare-Interrupt betrieben werden. Werden auch noch andere Interrupts des Timers benötigt, dann bietet sich an, im Compare-Interrupt das gewünschte Intervall auf den momentanen Wert des Compare-Registers aufzuaddieren um den Termin für den nächsten Interrupt festzulegen. ...
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.