Plays 8-bit Mono Wav Files for PWM

Revision:
3:574fdfeb949e
Parent:
0:c2f3d752d98f
--- a/WDplayer.cpp	Tue Apr 09 04:32:52 2019 +0000
+++ b/WDplayer.cpp	Wed Apr 17 05:07:15 2019 +0000
@@ -1,6 +1,5 @@
 #include "WDplayer.h"
 
-PwmOut dac(PTC10);
 unsigned char *buffer = (unsigned char *)malloc(1);
 
 void WDplayer::intWD(const char *path) {
@@ -16,27 +15,26 @@
     fseek(_fptr,0,SEEK_END);
     unsigned int len = ftell(_fptr);
     _pwmfreq = (1.0f / samplerate);
-    dac.period(_pwmfreq / (8.0f * 1.75f));//wave control and playback factor control
     _path = path;
     _length = len - 44;
     _fptr = NULL;
     _tck = 0;
 };
 
-void WDplayer::WDplay() {
+void WDplayer::WDplay(PwmOut &dac) {
     _fptr = fopen(_path,"r");
     fseek(_fptr,44,SEEK_SET);
     //sampling loop _ source of main performance issues
     for (_tck = _length; _tck > 1; _tck--) {
         fread(buffer,1,1,_fptr);
-        dac.write((int)buffer[0] / 255.00);
-        wait(_pwmfreq / 1.75f); //I dont like this & Playback present here        
+        dac.write((float)buffer[0] / 255.00f);
+        wait(_pwmfreq / 2.0f); //I dont like this & Playback present here        
     }
     _fptr = NULL;
     _tck = 0;
 };
 
-void WDplayer::WDtck() {
+void WDplayer::WDtck(PwmOut &dac) {
     if (_fptr == NULL) {
     _fptr = fopen(_path,"r");
     fseek(_fptr,44,SEEK_SET);
@@ -48,11 +46,11 @@
     } else {
         fread(buffer,1,1,_fptr);
         dac.write( (int)buffer[0] / 255.00 );
-        wait(_pwmfreq / 1.75f); //I dont like this remove to tick mode
-        
+        //wait(_pwmfreq / 2.0f); //I dont like this remove to tick mode
+        _tck++;
     }
 };
 
-unsigned long WDplayer::get_pwmfreq() {
+float WDplayer::get_pwmfreq() {
     return _pwmfreq;
 };
\ No newline at end of file