32-WAV-Library (ATMega)

-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 :

UB_MK3_2560_WAV_v102

2 Antworten auf 32-WAV-Library (ATMega)

  1. Mitch sagt:

    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

    • admin_ub sagt:

      nein, das musst du selber anpassen.


Wie hat Dir dieser Artikel gefallen?

1 Stern2 Sterne3 Sterne4 Sterne5 Sterne (Noch keine Bewertungen)
Loading...

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert