{"id":515,"date":"2017-11-25T15:01:35","date_gmt":"2017-11-25T14:01:35","guid":{"rendered":"http:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=515"},"modified":"2017-12-30T19:40:28","modified_gmt":"2017-12-30T18:40:28","slug":"85-modplayer-library-stm32f4","status":"publish","type":"page","link":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/stm32f4\/komplette-library-liste-stm32f4\/85-modplayer-library-stm32f4\/","title":{"rendered":"85-Modplayer-Library (STM32F4)"},"content":{"rendered":"<p><div id=\"nav-below\" class=\"navigation\"><div class=\"nav-previous\"><a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/stm32f4\/komplette-library-liste-stm32f4\/84-spi_lis3dsh-library-stm32f4\/\" title=\"84-SPI_LIS3DSH-Library (STM32F4)\"><span class=\"meta-nav\">\u2190<\/span> 84-SPI_LIS3DSH-Library (STM32F4)<\/a><\/div><\/div><!-- #nav-below --><div id=\"nav-below\" class=\"navigation\"><div class=\"nav-next\"><a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/stm32f4\/komplette-library-liste-stm32f4\/86-digin-dma-library-stm32f4\/\" title=\"86-DigIn-DMA-Library (STM32F4)\">86-DigIn-DMA-Library (STM32F4) <span class=\"meta-nav\">&rarr;<\/span><\/a><\/div><\/div><!-- #nav-below --><\/p>\n<p>Mit dieser Library k\u00f6nnen Modul-Files vom Typ \u201c.MOD\u201d und \u201c.S3M\u201d aus dem Flash der CPU abgespielt werden.<\/p>\n<p>Die Quelle vom Player sind von \u201cRonan K.\u201d<br \/>\n(hier zu finden \u00a0:\u00a0http:\/\/mobile4dev.blogspot.co.il)<\/p>\n<p>Mod-Files findet man im Netz z.B. unter \u201chttp:\/\/modarchive.org\/\u201d<\/p>\n<p>Im \u201cGlobal.h\u201d File kann eingestellt werden, ob die Ausgabe per DAC oder per PWM<br \/>\ngemacht werden soll (beide Librarys sind dabei). RC-Glied am Ausgang nicht vergessen !!<\/p>\n<p>Das abspielen von MOD-Files funktioniert ohne Probleme aber bei S3M-Files<br \/>\nmuss die Samplefrq auf 20kHz runtergestellt werden.<\/p>\n<p>Das File kann entweder nur einmal oder Endlos abgespielt werden. Funktionen f\u00fcr STOP, PAUSE, RESUME gibt es auch.<\/p>\n<p>Zum umwandeln der Mod-Files in ein C-File kann mein Konverter benutzt werden.<\/p>\n<p><strong>Benutzte Pins :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">bei DAC-Out  : PA4 (left) , PA5 (right)\r\nbei PWM-Out  : PB11 (left), PA1 (right)<\/pre>\n<p><strong>Voraussetzungen :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">Benutzte Module der CooCox-IDE : TIM, MISC\r\nBenutzte Librarys : STM32_UB_DAC, STM32_UB_PWM<\/pre>\n<p><strong>Enumerationen :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">typedef enum {\r\n  MODPLAYER_NO_INIT = 0,  \/\/ noch nicht initialisiert\r\n  MODPLAYER_INIT_OK,      \/\/ init ok\r\n  MODPLAYER_PLAY,         \/\/ PLAY\r\n  MODPLAYER_PAUSE,        \/\/ PAUSE\r\n  MODPLAYER_STOP          \/\/ STOP\r\n}MODPLAYER_STATUS_t;<\/pre>\n<p><strong>Funktionen :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">void UB_Modplayer_Init(void);                             \/\/ zum init vom Player\r\nMOD_FILE_t UB_Modplayer_PlaySingle(UB_MOD_File *modfile); \/\/ spielt einen Song einmal ab\r\nMOD_FILE_t UB_Modplayer_PlayLoop(UB_MOD_File *modfile);   \/\/ spielt einen Song in Dauerloop ab\r\nMODPLAYER_STATUS_t UB_Modplayer_PlayDo(void);             \/\/ muss zyklisch aufgerufen werden\r\nvoid UB_Modplayer_Pause(void);                            \/\/ pause\r\nvoid UB_Modplayer_Resume(void);                           \/\/ resume\r\nvoid UB_Modplayer_Stop(void);                             \/\/ stop<\/pre>\n<p><strong>Beispiel :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">\/\/--------------------------------------------------------------\r\n\/\/ File     : main.c\r\n\/\/ Datum    : 05.06.2014\r\n\/\/ Version  : 1.0\r\n\/\/ Autor    : UB\r\n\/\/ EMail    : mc-4u(@)t-online.de\r\n\/\/ Web      : www.mikrocontroller-4u.de\r\n\/\/ CPU      : STM32F4\r\n\/\/ IDE      : CooCox CoIDE 1.7.4\r\n\/\/ GCC      : 4.7 2012q4\r\n\/\/ Module   : CMSIS_BOOT, M4_CMSIS_CORE\r\n\/\/ Funktion : Demo vom Mod-Player\r\n\/\/ Hinweis  : Diese zwei Files muessen auf 8MHz stehen\r\n\/\/              \"cmsis_boot\/stm32f4xx.h\"\r\n\/\/              \"cmsis_boot\/system_stm32f4xx.c\"\r\n\/\/--------------------------------------------------------------\r\n\r\n#include \"main.h\"\r\n#include \"stm32_ub_modplayer.h\"\r\n\r\nint main(void)\r\n{\r\n  SystemInit(); \/\/ Quarz Einstellungen aktivieren\r\n\r\n  \/\/ init vom Modplayer\r\n  UB_Modplayer_Init();\r\n\r\n  \/\/ Modfile in Dauerloop laden\r\n  UB_Modplayer_PlayLoop(&amp;MOD_File_Aurora);\r\n\r\n  while(1)\r\n  {\r\n    \/\/ Modfile abspielen\r\n    UB_Modplayer_PlayDo();\r\n  }\r\n}\r\n<\/pre>\n<p>Hier die Library zum\u00a0<strong>Download :<\/strong><\/p>\n<p><a href=\"http:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2014\/06\/ub_stm32f4_modplayer_v100.zip\">ub_stm32f4_modplayer_v100<\/a><\/p>\n<p>Hier der komplette CooCox-Projektordner zum\u00a0<strong>Download :<\/strong><\/p>\n<p><a href=\"http:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2014\/06\/Demo_85_MOD_Player.zip\">Demo_85_MOD_Player<\/a><\/p>\n<hr \/>\n<h3 id=\"comments-title\">Eine Antwort auf <em>85-Modplayer-Library (STM32F4)<\/em><\/h3>\n<ol class=\"commentlist\">\n<li id=\"li-comment-1843\" class=\"comment even thread-even depth-1\">\n<div id=\"comment-1843\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/e27446debf57a9f43d264628c2a1c6ab?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\"><a class=\"url\" href=\"http:\/\/diydsp.com\/\" rel=\"external nofollow\">DIY DSP<\/a><\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">6. Juni 2014 um 19:07<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>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 <a href=\"http:\/\/reddit.com\/r\/stm32f4\" rel=\"nofollow\">http:\/\/reddit.com\/r\/stm32f4<\/a>.<\/p>\n<p>Uebrigends, noch weitere Auskunft ueber dem STM32F4 bzw. Muzik findet man auf meiner Seite: <a href=\"http:\/\/diydsp.com\/livesite\/pages\/stm32f4\" rel=\"nofollow\">http:\/\/diydsp.com\/livesite\/pages\/stm32f4<\/a><\/p>\n<p>Great work!<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Mit dieser Library k\u00f6nnen Modul-Files vom Typ \u201c.MOD\u201d und \u201c.S3M\u201d aus dem Flash der CPU abgespielt werden. Die Quelle vom Player sind von \u201cRonan K.\u201d (hier zu finden \u00a0:\u00a0http:\/\/mobile4dev.blogspot.co.il) Mod-Files findet man im Netz z.B. unter \u201chttp:\/\/modarchive.org\/\u201d Im \u201cGlobal.h\u201d File &hellip; <a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/stm32f4\/komplette-library-liste-stm32f4\/85-modplayer-library-stm32f4\/\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":144,"menu_order":85,"comment_status":"open","ping_status":"closed","template":"","meta":{"footnotes":""},"categories":[128],"tags":[9,244,243,245,7],"class_list":["post-515","page","type-page","status-publish","hentry","category-stm32f4","tag-library","tag-mod","tag-mod-player","tag-s3m","tag-stm32f4"],"_links":{"self":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/515","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/comments?post=515"}],"version-history":[{"count":3,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/515\/revisions"}],"predecessor-version":[{"id":1624,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/515\/revisions\/1624"}],"up":[{"embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/144"}],"wp:attachment":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/media?parent=515"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/categories?post=515"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/tags?post=515"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}