Individální projekty MPOA

Mikroprocesory s architekturou ARM

Uživatelské nástroje

Nástroje pro tento web


2018:mp3-player

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
Následující verze
Předchozí verze
2018:mp3-player [2019/01/28 00:14]
Ondrej Rehák [Hardware]
2018:mp3-player [2019/01/28 02:02] (aktuální)
Ondrej Rehák [Úvod]
Řádek 7: Řádek 7:
 ====== Úvod ====== ====== Úvod ======
  
-ToDo+Na dekódovanie MP3 je použitý I2S režim. Dekóduje sa vždy jeden rámec MP3 zatial čo druhý je pocielaný CODECu pomocou DMA. Striedajú sa teda dva vstupné buffre, zjednodušene do jedného sa zapisuje a z druhého sa číta.
    
-----+
 ===== Hardware ===== ===== Hardware =====
  
Řádek 26: Řádek 26:
 ===== Software ===== ===== Software =====
  
-ToDo+Kompilované pomocou príkazového riadku a Makefile, debugovane pomocou OpenOCD a ST-link/​V2.1 - Linux Mint 18.3. toolchain : arm-none-eabi. 
 +---------------------------- 
 +Kód je poskladaný z rôznych knižníc dostupných z odkazov. V maine sa volá funkcia ktoré načíta obsah priečinku z USB, prečíta si všetky súbory mp3, vynecháva priečinky. Z bufferu si potom naťahuje názvy pesničiek a tie prehráva v danom poradí. Po stlačení pridaného externého tlačítka na PE8 sa listuje v prehrávači naspäť, respektíve sa volí smer prehrávania. Ďalšími dvomi externými tlačidlami sa pridáva a uberá hlas. 
 +<code c> 
 + 
 +while(fno.fname[0] != 0){      /* store all files in USB to buffer for playing - while not end of file*/ 
 +   f_readdir(&​dir,​ &​fno);​ 
 +   fn = fno.fname;​ 
 +   if (!(fno.fattrib & AM_DIR)) { 
 +   sprintf(buffer,​ "​%s/​%s",​ path, fn); 
 +   for(k = 0; k < 16; k++) 
 +   { 
 +   buffer33[index_of_song][k]=buffer[k];​ 
 +   } 
 +   index_of_song++;​ 
 +   } 
 +  } 
 +  num_of_songs = index_of_song;​ 
 +  index_of_song = 0; 
 +  if (res == FR_OK) { 
 +    while(1) /* This is basicly the "​main"​ code, where songs are played in order or backwards. */ 
 +    {        /* The program is looped here */ 
 +       ​if(direction == 0) 
 +       { 
 +          if(index_of_song > num_of_songs) 
 +          { 
 +          index_of_song = 0; 
 +          } 
 +       } 
 +       ​else 
 +       { 
 +       ​if(index_of_song > num_of_songs) /* underflow, not correct solution, but works when there is no more than 256 songs in directory*/​ 
 +       ​{ ​                   /* Todo: find better solution than store all songs in memmory - its good soluton for LCD menu thou */ 
 +       ​index_of_song = num_of_songs;​ 
 +       } 
 +       } 
 +        // Check if it is an mp3 file 
 +        if (strcasecmp("​mp3",​ cwSFGetFilenameExt(buffer33[index_of_song])) == 0) 
 +        { 
 +          MP3PlayFile(buffer33[index_of_song]);​ 
 +        } 
 +        if(direction == 0) 
 +        { 
 +            index_of_song++;​ 
 +        } 
 +        else 
 +        { 
 +            index_of_song--;​ 
 +        } 
 +      } 
 + 
 +  } 
 +</​code>​
  
 ===== Video ===== ===== Video =====
Řádek 32: Řádek 84:
 {{youtube>​Oo0N6yU_SGQ?​medium}} {{youtube>​Oo0N6yU_SGQ?​medium}}
  
 +Pozn. - musím nahrať video s lepším mikrofónom.
 ===== Záver ===== ===== Záver =====
  
 Cieľom projektu bolo realizovať prehrávač MP3 na vývojovej platforme [[https://​www.st.com/​en/​evaluation-tools/​stm32f4discovery.html|STM32F4Discovery]] za vhodného použitia už vytvorených knižníc. Cieľom projektu bolo realizovať prehrávač MP3 na vývojovej platforme [[https://​www.st.com/​en/​evaluation-tools/​stm32f4discovery.html|STM32F4Discovery]] za vhodného použitia už vytvorených knižníc.
 +
 +Nepodarilo sa mi splniť zadanie pre výpočet percentuálneho výkonu pri softwarovom dekódovaní,​ prehrávanie beží v nekonečnej smyčke a blokuje všetky ostatné funkcie.
  
 Aktuálny stav je taký, že po pripojení sa prehrávajú MP3 súbory v koreňovom adresári USB. Modrým tlačidlom sa posúvajú pesničky dopredu, ďalšie externé tlačidlá slúžia na posun vzad v prehrávaní či znižovanie a zvyšovanie hlasitosti. ​ Aktuálny stav je taký, že po pripojení sa prehrávajú MP3 súbory v koreňovom adresári USB. Modrým tlačidlom sa posúvajú pesničky dopredu, ďalšie externé tlačidlá slúžia na posun vzad v prehrávaní či znižovanie a zvyšovanie hlasitosti. ​
Řádek 42: Řádek 96:
  
  
 +
 +===== Zdrojový kód =====
 +
 +{{ :​2018:​mp3:​mp3.zip |}}
  
 ===== Zdroje ===== ===== Zdroje =====
2018/mp3-player.1548630876.txt.gz · Poslední úprava: 2019/01/28 00:14 autor: Ondrej Rehák