Hallo liebe Community,
ich würde gerne die Soundausgabe mit einem ATMega328p steuern. (Arduino uno)
Dazu habe ich die pcm.h + pcm.c von Michael Smith genutzt. Arduino Playground - PCMAudio
Jetzt würde ich gerne ein Motorgeräusch abspielen, bei dem ich die Geschwindigkeit ändern kann (Auto beschleunigt). Dazu habe ich die Funktion ISR(TIMER1_COMPA_vect) etwas angepasst, um das Geräusch in einem loop laufen zu lassen.
Durch anpassen der Sample_Rate
// Set the compare register (OCR1A).
// OCR1A is a 16-bit register, so we have to do this with
// interrupts disabled to be safe.
OCR1A = F_CPU / SAMPLE_RATE; // 16e6 / 8000 = 2000
kann ich die Geschwindiglkeit verändern. Wenn ich dies allerdings über eine globale Variable während der Laufzeit anpasse, entstehen merkwürdige Geräusche.
Ich programmiere normalerweise nicht so Hardwarenah, daher bitte ich um Hilfe
Grüße
Tom