DAC MCP4725的写入速率

时间:2018-01-11 19:23:29

标签: c audio i2c pcm dac

我有一个缓冲区,其中包含16000 PCM8Khz 8-bit mono个样本。我正在尝试使用12位MCP4725 DAC来播放它。我尝试使用micros()来控制DAC的写入间隔。这是我的代码 -

uint8_t soundData[16000] = { 234,206,79,255,249,....,210,222 }; // 8Khz 8-bit mono

void setup() {

Serial.begin(115200);
Wire.begin(D2, D1);
delay(100); // delay 100 ms
Serial.flush();
delay(1000);

} 

void value_write(uint16_t temp){

  Wire.beginTransmission(0x62);
  Wire.write(64); 
  Wire.write(temp >> 4);        // the 8 most significant bits...
  Wire.write((temp & 15) << 4); // the 4 least significant bits...
  Wire.endTransmission();

}

void loop() {

  unsigned long currentMicros = micros();

// 125 uS sampling for 8KHz signal    
if(currentMicros - previousMicros > 125) {
  Serial.print("Index: ");
  Serial.println(indx);
  uint16_t temp = map(soundData[indx++], 0, 255, 0, 4095);

  value_write(temp);
}


}

写入应该在2 seconds内逻辑完成,但需要花费更多时间。关于在PCM values成功将8000Hz写入DAC的任何帮助都非常感谢。

0 个答案:

没有答案