@@ -85,6 +85,9 @@ bool AudioControlWM8731::write(unsigned int reg, unsigned int val) | |||
bool AudioControlWM8731::volumeInteger(unsigned int n) | |||
{ | |||
// n = 127 for max volume (+6 dB) | |||
// n = 48 for min volume (-73 dB) | |||
// n = 0 to 47 for mute | |||
if (n > 127) n = 127; | |||
//Serial.print("volumeInteger, n = "); | |||
//Serial.println(n); |
@@ -34,7 +34,7 @@ class AudioControlWM8731 : public AudioControl | |||
public: | |||
bool enable(void); | |||
bool disable(void) { return false; } | |||
bool volume(float n) { return volumeInteger(n * 0.8 + 47.499); } | |||
bool volume(float n) { return volumeInteger(n * 80.0 + 47.499); } | |||
bool inputLevel(float n) { return false; } | |||
bool inputSelect(int n) { return false; } | |||
protected: |
@@ -1,61 +0,0 @@ | |||
#include <Audio.h> | |||
#include <Wire.h> | |||
#include <SPI.h> | |||
#include <SD.h> | |||
AudioSynthWaveform mysine(AudioWaveformSine); | |||
AudioOutputI2Sslave dac; | |||
AudioControlWM8731master codec; | |||
AudioConnection c1(mysine,dac); | |||
int volume = 0; | |||
void setup() { | |||
codec.enable(); | |||
delay(100); | |||
while (!Serial) ; | |||
Serial.println("Begin AudioTest"); | |||
// Audio connections require memory to work. For more | |||
// detailed information, see the MemoryAndCpuUsage example | |||
AudioMemory(15); | |||
mysine.frequency(440); | |||
mysine.amplitude(0.9); | |||
codec.volume(0.70); | |||
Serial.println("setup done"); | |||
} | |||
void loop() { | |||
/* | |||
Serial.print("cpu: "); | |||
Serial.print(AudioProcessorUsage()); | |||
Serial.print(", max: "); | |||
Serial.print(AudioProcessorUsageMax()); | |||
Serial.print(", memory: "); | |||
Serial.print(AudioMemoryUsage()); | |||
Serial.print(", max: "); | |||
Serial.print(AudioMemoryUsageMax()); | |||
Serial.println(""); | |||
*/ | |||
//int n; | |||
//n = analogRead(15); | |||
//Serial.println(n); | |||
//if (n != volume) { | |||
//volume = n; | |||
//codec.volume((float)n / 10.23); | |||
//} | |||
//n = analogRead(16) / 8; | |||
//Serial.println(n); | |||
//mysine.frequency(200 + n * 4); | |||
//delay(5); | |||
} |
@@ -0,0 +1,50 @@ | |||
// Simple sine wave test for WM8731 Audio Codec Board | |||
// | |||
// Requires the MikroElektronika Audio Codec board or similar hardware | |||
// http://www.mikroe.com/add-on-boards/audio-voice/audio-codec-proto/ | |||
// | |||
// Recommended connections: | |||
// | |||
// Mikroe Teensy 3.1 | |||
// ------ ---------- | |||
// SCK 9 | |||
// MISO 13 | |||
// MOSI 22 | |||
// ADCL | |||
// DACL 23 | |||
// SDA 18 | |||
// SCL 19 | |||
// 3.3V +3.3V | |||
// GND GND | |||
// | |||
// This example code is in the public domain. | |||
#include <Audio.h> | |||
#include <Wire.h> | |||
#include <SPI.h> | |||
#include <SD.h> | |||
// GUItool: begin automatically generated code | |||
AudioSynthWaveform waveform1; //xy=110,75 | |||
AudioOutputI2Sslave i2ss1; //xy=303,78 | |||
AudioConnection patchCord1(waveform1, 0, i2ss1, 0); | |||
AudioConnection patchCord2(waveform1, 0, i2ss1, 1); | |||
AudioControlWM8731master wm8731m1; //xy=230,154 | |||
// GUItool: end automatically generated code | |||
void setup() { | |||
wm8731m1.enable(); | |||
AudioMemory(15); | |||
waveform1.begin(WAVEFORM_SINE); | |||
waveform1.frequency(440); | |||
waveform1.amplitude(0.9); | |||
wm8731m1.volume(0.50); | |||
} | |||
void loop() { | |||
} |