85-Modplayer-Library (STM32F4)

Mit dieser Library können Modul-Files vom Typ “.MOD” und “.S3M” aus dem Flash der CPU abgespielt werden.

Die Quelle vom Player sind von “Ronan K.”
(hier zu finden  : http://mobile4dev.blogspot.co.il)

Mod-Files findet man im Netz z.B. unter “http://modarchive.org/”

Im “Global.h” File kann eingestellt werden, ob die Ausgabe per DAC oder per PWM
gemacht werden soll (beide Librarys sind dabei). RC-Glied am Ausgang nicht vergessen !!

Das abspielen von MOD-Files funktioniert ohne Probleme aber bei S3M-Files
muss die Samplefrq auf 20kHz runtergestellt werden.

Das File kann entweder nur einmal oder Endlos abgespielt werden. Funktionen für STOP, PAUSE, RESUME gibt es auch.

Zum umwandeln der Mod-Files in ein C-File kann mein Konverter benutzt werden.

Benutzte Pins :

1
2
bei DAC-Out  : PA4 (left) , PA5 (right)
bei PWM-Out  : PB11 (left), PA1 (right)

Voraussetzungen :

1
2
Benutzte Module der CooCox-IDE : TIM, MISC
Benutzte Librarys : STM32_UB_DAC, STM32_UB_PWM

Enumerationen :

1
2
3
4
5
6
7
typedef enum {
  MODPLAYER_NO_INIT = 0,  // noch nicht initialisiert
  MODPLAYER_INIT_OK,      // init ok
  MODPLAYER_PLAY,         // PLAY
  MODPLAYER_PAUSE,        // PAUSE
  MODPLAYER_STOP          // STOP
}MODPLAYER_STATUS_t;

Funktionen :

1
2
3
4
5
6
7
void UB_Modplayer_Init(void);                             // zum init vom Player
MOD_FILE_t UB_Modplayer_PlaySingle(UB_MOD_File *modfile); // spielt einen Song einmal ab
MOD_FILE_t UB_Modplayer_PlayLoop(UB_MOD_File *modfile);   // spielt einen Song in Dauerloop ab
MODPLAYER_STATUS_t UB_Modplayer_PlayDo(void);             // muss zyklisch aufgerufen werden
void UB_Modplayer_Pause(void);                            // pause
void UB_Modplayer_Resume(void);                           // resume
void UB_Modplayer_Stop(void);                             // stop

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
//--------------------------------------------------------------
// File     : main.c
// Datum    : 05.06.2014
// Version  : 1.0
// Autor    : UB
// EMail    : mc-4u(@)t-online.de
// Web      : www.mikrocontroller-4u.de
// CPU      : STM32F4
// IDE      : CooCox CoIDE 1.7.4
// GCC      : 4.7 2012q4
// Module   : CMSIS_BOOT, M4_CMSIS_CORE
// Funktion : Demo vom Mod-Player
// Hinweis  : Diese zwei Files muessen auf 8MHz stehen
//              "cmsis_boot/stm32f4xx.h"
//              "cmsis_boot/system_stm32f4xx.c"
//--------------------------------------------------------------
 
#include "main.h"
#include "stm32_ub_modplayer.h"
 
int main(void)
{
  SystemInit(); // Quarz Einstellungen aktivieren
 
  // init vom Modplayer
  UB_Modplayer_Init();
 
  // Modfile in Dauerloop laden
  UB_Modplayer_PlayLoop(&MOD_File_Aurora);
 
  while(1)
  {
    // Modfile abspielen
    UB_Modplayer_PlayDo();
  }
}

Hier die Library zum Download :

ub_stm32f4_modplayer_v100

Hier der komplette CooCox-Projektordner zum Download :

Demo_85_MOD_Player


Eine Antwort auf 85-Modplayer-Library (STM32F4)

  1. DIY DSP sagt:

    Gruesse! Ich moechte ankuendigen, dass ich diesen Post ueber dem 85-Modplayer Library fuer STM32F4 zum r/stm32f4 Subreddit zugetan habe. Den findet man auf http://reddit.com/r/stm32f4.

    Uebrigends, noch weitere Auskunft ueber dem STM32F4 bzw. Muzik findet man auf meiner Seite: http://diydsp.com/livesite/pages/stm32f4

    Great work!


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.