Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: amakusa mbed-dsp mbed shimabara ukifune unzen_nucleo_f746
Fork of skeleton_unzen_nucleo_f746 by
Diff: main.cpp
- Revision:
- 0:a837eeab3ca6
- Child:
- 1:98ddcbbe10ba
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp Sun Jun 19 05:47:06 2016 +0000
@@ -0,0 +1,81 @@
+#include "unzen.h" // audio framework include file
+#include "umb_adau1361a.h" // audio codec contoler include file
+#include "mbed.h"
+
+#define CODEC_I2C_ADDR 0x38
+
+DigitalOut myled1(LED1);
+
+
+ // customer signal processing initialization call back.
+void init_callback(
+ unsigned int block_size // block size [sample]
+ )
+{
+ // place initialization code here
+}
+
+
+ // customer signal processing call back.
+void process_callback(
+ float rx_left_buffer[], // array of the left input samples
+ float rx_right_buffer[], // array of the right input samples
+ float tx_left_buffer[], // place to write the left output samples
+ float tx_right_buffer[], // place to write the left output samples
+ unsigned int block_size // block size [sample]
+ )
+{
+ // Sample processing
+ for ( int i=0; i<block_size; i++) // for all sample
+ {
+ tx_left_buffer[i] = rx_left_buffer[i]; // copy from input to output
+ tx_right_buffer[i] = rx_right_buffer[i];
+
+ }
+}
+
+
+
+int main()
+{
+ // I2C is essential to talk with ADAU1361
+ I2C i2c(D14, D15);
+
+ // create an audio codec contoler
+ shimabara::UMB_ADAU1361A codec(shimabara::Fs_32, i2c, CODEC_I2C_ADDR ); // Default Fs is 48kHz
+// shimabara::UMB_ADAU1361A codec(shimabara::Fs_441, i2c, CODEC_I2C_ADDR );
+// shimabara::UMB_ADAU1361A codec(shimabara::Fs_48, i2c, CODEC_I2C_ADDR );
+// shimabara::UMB_ADAU1361A codec(shimabara::Fs_96, i2c, CODEC_I2C_ADDR );
+
+ // create an audio framework by singlton pattern
+ unzen::Framework audio;
+
+ // Set I3C clock to 100kHz
+ i2c.frequency( 100000 );
+
+
+ // Configure the optional block size of signal processing. By default, it is 1[Sample]
+// audio.set_block_size(16);
+
+
+ // Start the ADAU1361. Audio codec starts to generate the I2C signals
+ codec.start();
+
+ // Start the audio framework on ARM processor.
+ audio.start( init_callback, process_callback); // path the initializaiton and process call back to framework
+
+
+ // periodically changing gain for test
+ while(1)
+ {
+ for ( int i=-15; i<4; i++ )
+ {
+ codec.set_hp_output_gain( i, i );
+ codec.set_line_output_gain( i, i );
+ myled1 = 1;
+ wait(0.2);
+ myled1 = 0;
+ wait(0.2);
+ }
+ }
+}
\ No newline at end of file
