-mit dieser Library können WAV-Files von einer SD-Karte abgespielt werden
-es wird nur der WAV_Typ : “0×01″ = PCM unterstützt !!
-der Treiber spielt Mono und Stereo Waves ab
Port-B7 = linker Kanal
Port-G5 = rechter Kanal (bzw. Signal vom linken Kanal bei Mono)
-die Ausgabe erfolgt je als 8bit PWM
(16bit WAV-Files werden auf 8bit umgerechnet)
-zum laden des WAV-Files von der SD-Karte wird
der FASTFAT16-Treiber benutzt
(siehe Doku zum FASTFAT-Treiber)
Funktionen :
1 2 3 4 5 6 | void MK3_INIT_WAV(void); // zum initialisieren WAV_CHK MK3_WAV_LOAD(const char *ptr); // zum laden eines WAV-Files void MK3_WAV_START(const char *ptr); // zum starten eines WAV-Files void MK3_WAV_PAUSE(void); // zum pausieren eines WAV-Files void MK3_WAV_STOP(void); // zum stopen eines WAV-Files void MK3_WAV_DO(void); // Do-Funktion (muss in die Main-while) |
Beispiel :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | //----------------------------------------------------------------------------- // Title : bsp_ub055_mk3_wav2 //----------------------------------------------------------------------------- // Funktion : WAV-Files abspielen // Schaltung : myAVR MK3 //----------------------------------------------------------------------------- // Prozessor : ATMega2560 // Takt : 16 MHz // Sprache : C // Date : 14.07.2012 // Version : 1.0 // Autor : UB //----------------------------------------------------------------------------- #define F_CPU 16000000 #include <avr/io.h> #include <ub_mk3_2560/MK3_2560_KEY.h> #include <ub_mk3_2560/MK3_2560_WAV.h> //----------------------------------------------------------------------------- // Hinweis : Quick-Jumper Port-K muss gesetzt sein // - WAV File muss auf der SD-Karte vorhanden sein // - Lautsprecher muss an Port B7 angeschlossen sein // - oeffnet ein WAV-File // - Button 1=START, 2=PAUSE, 3=STOP //----------------------------------------------------------------------------- #define WAV_NAME "m8k8b.wav" // mono, 8khz, 8bit int main (void) { MK3_INIT_KEY(); // init der Tasten MK3_INIT_WAV(); // init der WAV-Ausgabe // WAV-File laden MK3_WAV_LOAD(WAV_NAME); while (true) { MK3_WAV_DO(); if(MK3_KEY_SET(BUTTON1)==true) { MK3_WAV_START(WAV_NAME); } if(MK3_KEY_SET(BUTTON2)==true) { MK3_WAV_PAUSE(); } if(MK3_KEY_SET(BUTTON3)==true) { MK3_WAV_STOP(); } } return 0; } |
Hier die Library zum download :
Hallo,
genau sowas suche ich… allerdings für einen AtMega328
gibts sowas für den? oder was müsste ich für den 328 ändern?
danke
nein, das musst du selber anpassen.