mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik VS1001 Pause


Autor: mr-unbekannt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Seit neuestens habe ich einen selfmade-mp3-player mit einem vs1001k

bis jetzt habe ich es nicht geschafft eine Pause-Funktion zu schreiben.

Ich möchte gerne wenn ich auf den Play-Button drücke dass der vs1001 in 
einen Pause modus gelangt, und wenn man ein zweites mal drückt wieder an 
der pausierten stelle anfängt.

hat jemand eine ahnung wie mann das realisieren kann?

vielen dank,
mr-unbekannt

Autor: nixversteh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: nixversteh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ergänzung:
In der Software ist 'ne Pausenfunktion, aber nicht so, wie Du es willst.
Ich würde bei Tastendruck immer ein Flagbit mittoggeln lassen.

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe zwar den VS101 noch nie benutzt, denke aber es wird ähnlich 
sein:
mit der Pausentaste ein Flag in Deinem Programm setzen/löschen und in 
der Routine, die die Daten zum VS1001 (vermutlich SPI-IRQ?) das Flag 
abfragen und wenn Pause ist, eben keine Daten zum VS1001 schicken.

Gruß aus Berlin
Michael

Autor: mr-unbekannt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das flag ist nicht das problem, sondern wie gesagt die unterbrechung des 
datenstromes...

danke

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

kommt darauf an, wie Du den Kram organisiert hast. Bei mir hat damals 
die Hauptschleife den Buffer im AVR von der HD nachgefüllt, wenn eine 
Hälfte leer war. Dieses Flag hat die IRQ-Riutine vom Decoder (MAS3507 
damals) gesetzt, wenn beim nachfüllen seines internen Buffers die 
Buffermitte überschritten wurde oder vom Ende zum Anfang gewechselt 
wurde.

Bei Pause wurde der Decoder nicht bedient, damit wurde eben nichs 
verändert, bis weiter gespielt wurde oder eine Funktion aufgerufen 
wurde, die hat sowieso jeweils das Abspielen beendet.

Ich weiß jetzt nicht, wie groß der interne Buffer des VS1001 ist, beim 
MAS3507 war das sowieso nicht allzuviel, der hörte sehr recht auf mit 
spielen.

Gruß aus Berlin
Michael

Autor: mr-unbekannt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
so, habs endlich geschafft...

wems interessiert:
if (bPause==true) break;
        if(!fplay_sector(&fp))
        { fclose(&fp);
          ps.state = PLAYING_MMC_INIT;
          PLAY_LED_OFF;
        }

einfach ein break vor die Funktion fplay_sector...

danke!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.