Elm Chan sd wav player

OP #3849281
Lesenswert?
• ▲
▼
Hallo,
ich möchte gerne noch einmal einen Elm Chan SD-wav-player Thread öffnen. 
Es geht ums Code-Verstehen von dem Wunderding hier 
http://elm-chan.org/works/sd20p/report.html bzw. Anhang.

Ich versteh den Teil nicht so richtig, in dem er die Daten von der 
SD-Karte in den RAM schaufelt bzw. den Timer damit füttert für die PWM.
In der Endlosschleife von play() in der main findet das irgendwie statt. 
Er liest mit

pf_read(0, btr, &rb);

Wobei

FRESULT pf_read (
  void* Buffer,       /* Pointer to the read buffer */
  WORD ByteToRead,    /* Number of bytes to read */
  WORD* BytesRead     /* Pointer to the variable to return number of 
bytes read */
);

Dann schreibt er die Daten auf Adresse Null? Und wie wird dann der Timer 
bzw. OCR1A/B beschrieben? Steh ich da so auf dem Schlauch?

Viele Grüße
Angehängte Dateien:
Gast #3849320
Lesenswert?
• ▲
▼
Hi,

Wenn der buff Parameter 0 ist, benutze "Buff".

Gruß Marvin

pff.c:
void* buff, /* Pointer to the read buffer (NULL:Forward data to the 
stream)*/


asmfunc.S:
fb_wave: ; Forward intermediate data bytes to the wave FIFO
  sbic  _FLAGS, 4    ;if (16bit data) R21:R20 /= 2;
  lsr  r21      ;
  sbic  _FLAGS, 4    ;
  ror  r20      ;/
  sbic  _FLAGS, 1    ;if (Stereo data) R21:R20 /= 2;
  lsr  r21      ;
  sbic  _FLAGS, 1    ;
  ror  r20      ;/
  lds  r22, FifoWi    ;r22 = FIFO write index

3:  ldi  XL, lo8(Buff)    ;X = Buff + R22
  ldi  XH, hi8(Buff)    ;



main.c:
BYTE Buff[256];    /* Audio output FIFO */
Gast #3849336
Lesenswert?
• ▲
▼
Ach, und:

asmfunc.S:

;----------------------------------------------------------------------- 
----;
; ISR for Audio Output Interrupt
;----------------------------------------------------------------------- 
----;
; ISR(TIMER0_COMPA_vect);
;
; Pop an audio sample from FIFO and put it to the DAC.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.