Witam,
jak w temacie programuję odtwarzacz audio. Korzystam z dekodera Helix, dane pobieram z karty uSD poprzez FAT i interfejs SDIO. Korzystam z DMA przy odczycie jak i przy przesyłaniu danych do I2S. Biblioteki z których korzystałem ustawiały priorytet DMA I2S na niski. Powodowało to problem z odtwarzaniem. Po zmianie priorytetu na wysoki(0 lub 1) udało się odpowiednio odtworzyć pliki mp3. Odtwarzanie muzyki działa dopóki priorytet DMA jest wyższy od priorytetu przerwań od przycisków, które obsługują wyświetlacz. Zatem albo mogę obsługiwać przyciski albo odtwarzać muzykę, a chciałbym dodać opcje przewijania piosenki oraz jej zmiany. Ustawienie obu priorytetów na równe sobie też powoduję że nie gra muzyka. Przepatrzyłem rejestry konfiguracyjne DMA i nie znalazłem żadnego który by sugerował na przykład przerwanie DMA przez inne przerwanie. Z góry dziękuję za pomoc.
Pozdrawiam,
Łukasz
jak w temacie programuję odtwarzacz audio. Korzystam z dekodera Helix, dane pobieram z karty uSD poprzez FAT i interfejs SDIO. Korzystam z DMA przy odczycie jak i przy przesyłaniu danych do I2S. Biblioteki z których korzystałem ustawiały priorytet DMA I2S na niski. Powodowało to problem z odtwarzaniem. Po zmianie priorytetu na wysoki(0 lub 1) udało się odpowiednio odtworzyć pliki mp3. Odtwarzanie muzyki działa dopóki priorytet DMA jest wyższy od priorytetu przerwań od przycisków, które obsługują wyświetlacz. Zatem albo mogę obsługiwać przyciski albo odtwarzać muzykę, a chciałbym dodać opcje przewijania piosenki oraz jej zmiany. Ustawienie obu priorytetów na równe sobie też powoduję że nie gra muzyka. Przepatrzyłem rejestry konfiguracyjne DMA i nie znalazłem żadnego który by sugerował na przykład przerwanie DMA przez inne przerwanie. Z góry dziękuję za pomoc.
Pozdrawiam,
Łukasz