Dialog DA7212 evaluating project DEVELOP branch

Dependencies:   FXAS21002 TLV320 mbed sinelookup C12832 FXOS8700

Committer:
k4zuki
Date:
Fri Mar 25 16:09:13 2016 +0900
Revision:
8:42093f0e5d9e
Parent:
5:f1907e4d1147
Child:
9:fe61a56fa5a9
uncomment i2s.frequency()

Who changed what in which revision?

UserRevisionLine numberNew contents of line
k4zuki 1:98b55aeebaa5 1 /** original: p07gbar/code/TLV320_Write_test/
k4zuki 1:98b55aeebaa5 2 * modify by k4zuki
k4zuki 1:98b55aeebaa5 3 * to control Dialog DA7212 codec
k4zuki 1:98b55aeebaa5 4 */
k4zuki 1:98b55aeebaa5 5 #include "mbed.h"
k4zuki 1:98b55aeebaa5 6 #include "sinelookup.h"
K4zuki 5:f1907e4d1147 7 // #include "TLV320.h"
k4zuki 1:98b55aeebaa5 8 // #include "DA7212.h"
K4zuki 5:f1907e4d1147 9 // #include "I2S.h"
K4zuki 5:f1907e4d1147 10 // #include "C12832.h"
K4zuki 5:f1907e4d1147 11
K4zuki 5:f1907e4d1147 12 // C12832 lcd(D11, D13, D12, D7, D10);
K4zuki 5:f1907e4d1147 13 // C12832 lcd(PTD2, PTD1, PTD3, PTC3, PTD0);
K4zuki 5:f1907e4d1147 14 // AnalogIn pot1 (A0);
K4zuki 5:f1907e4d1147 15 // AnalogIn pot2 (A1);
K4zuki 5:f1907e4d1147 16 // AnalogIn pot1 (PTB2);
K4zuki 5:f1907e4d1147 17 // AnalogIn pot2 (PTB3);
k4zuki 1:98b55aeebaa5 18
k4zuki 1:98b55aeebaa5 19 #define SAMPLERATE 32000
k4zuki 1:98b55aeebaa5 20
k4zuki 1:98b55aeebaa5 21 /*
K4zuki 2:3e6fb6a1f3ef 22 //DA7212 codec(I2C_SDA, I2C_SCL);
K4zuki 2:3e6fb6a1f3ef 23 TLV320 codec(I2C_SDA, I2C_SCL);
K4zuki 2:3e6fb6a1f3ef 24 I2S i2s(I2S_TRANSMIT, PTC1, PTB19, PTB18);
k4zuki 1:98b55aeebaa5 25
k4zuki 1:98b55aeebaa5 26 AnalogIn aIn(p19);
k4zuki 1:98b55aeebaa5 27 AnalogIn vol(p20);
k4zuki 1:98b55aeebaa5 28
k4zuki 1:98b55aeebaa5 29 float phase_l;
k4zuki 1:98b55aeebaa5 30 float phase_r;
k4zuki 1:98b55aeebaa5 31 int minibuf[16];
k4zuki 1:98b55aeebaa5 32 float skipper;
k4zuki 1:98b55aeebaa5 33 float volume;
k4zuki 1:98b55aeebaa5 34 float phase_kill;
k4zuki 1:98b55aeebaa5 35
k4zuki 1:98b55aeebaa5 36
k4zuki 1:98b55aeebaa5 37 extern "C" void HardFault_Handler()
k4zuki 1:98b55aeebaa5 38 {
k4zuki 1:98b55aeebaa5 39 error("Hard Fault!\n");
k4zuki 1:98b55aeebaa5 40 }
k4zuki 1:98b55aeebaa5 41
k4zuki 1:98b55aeebaa5 42
k4zuki 1:98b55aeebaa5 43 void play(void)
k4zuki 1:98b55aeebaa5 44 {
k4zuki 1:98b55aeebaa5 45 int to_write = i2s.max_fifo_points() - (i2s.fifo_points());
k4zuki 1:98b55aeebaa5 46 for(int i = 0; i < to_write; i+=2) {
k4zuki 1:98b55aeebaa5 47 minibuf[i] = int(float(sine16lookup[int(phase_l)])*volume);
k4zuki 1:98b55aeebaa5 48 //minibuf[i] = int(sine16lookup[int(phase_l)]);
k4zuki 1:98b55aeebaa5 49 minibuf[i+1] = int(float(sine16lookup[int(phase_r)])*volume);
k4zuki 1:98b55aeebaa5 50 phase_l+=skipper;
k4zuki 1:98b55aeebaa5 51 phase_r = phase_l + phase_kill;
k4zuki 1:98b55aeebaa5 52 while(phase_l >= SINE16LENGTH) {
k4zuki 1:98b55aeebaa5 53 phase_l -= SINE16LENGTH;
k4zuki 1:98b55aeebaa5 54 }
k4zuki 1:98b55aeebaa5 55
k4zuki 1:98b55aeebaa5 56 while(phase_r >= SINE16LENGTH) {
k4zuki 1:98b55aeebaa5 57 phase_r -= SINE16LENGTH;
k4zuki 1:98b55aeebaa5 58 }
k4zuki 1:98b55aeebaa5 59 while(phase_r< 0) phase_r += SINE16LENGTH;
k4zuki 1:98b55aeebaa5 60 }
k4zuki 1:98b55aeebaa5 61 i2s.write(minibuf, to_write);
k4zuki 1:98b55aeebaa5 62 }
k4zuki 1:98b55aeebaa5 63 */
k4zuki 1:98b55aeebaa5 64 /* main */
k4zuki 1:98b55aeebaa5 65 int main()
k4zuki 1:98b55aeebaa5 66 {
k4zuki 1:98b55aeebaa5 67 I2S0_TCSR |= 1u<<31;
k4zuki 8:42093f0e5d9e 68 // skipper = (aIn*49)+1;
k4zuki 8:42093f0e5d9e 69 //
k4zuki 8:42093f0e5d9e 70 // codec.power(true);
k4zuki 8:42093f0e5d9e 71 // codec.frequency(SAMPLERATE);
k4zuki 8:42093f0e5d9e 72 // codec.wordsize(16);
k4zuki 8:42093f0e5d9e 73 // codec.master(false);
k4zuki 8:42093f0e5d9e 74 // codec.headphone_volume(0.5);
k4zuki 8:42093f0e5d9e 75 // codec.start();
k4zuki 8:42093f0e5d9e 76 //
k4zuki 1:98b55aeebaa5 77 i2s.frequency(SAMPLERATE);
k4zuki 8:42093f0e5d9e 78 // i2s.wordsize(16);
k4zuki 8:42093f0e5d9e 79 // i2s.stereomono(I2S_STEREO);
k4zuki 8:42093f0e5d9e 80 // i2s.masterslave(I2S_MASTER);
k4zuki 8:42093f0e5d9e 81 // i2s.attach(&play);
k4zuki 8:42093f0e5d9e 82 // i2s.start();
k4zuki 1:98b55aeebaa5 83 while(1)
k4zuki 1:98b55aeebaa5 84 {;
k4zuki 8:42093f0e5d9e 85 // skipper = (aIn*30)+1;
k4zuki 8:42093f0e5d9e 86 //
k4zuki 8:42093f0e5d9e 87 // volume = 1;
k4zuki 8:42093f0e5d9e 88 // phase_kill = (vol-0.5)*400;
k4zuki 8:42093f0e5d9e 89 //
k4zuki 8:42093f0e5d9e 90 // //printf("Skipper:%f, %i, %i\n\r",skipper, to_write,i2s.fifo_level());
k4zuki 1:98b55aeebaa5 91 /*if(flag)
k4zuki 1:98b55aeebaa5 92 {
k4zuki 1:98b55aeebaa5 93 printf(".");
k4zuki 1:98b55aeebaa5 94 flag = false;
k4zuki 1:98b55aeebaa5 95 }*/
k4zuki 1:98b55aeebaa5 96 }
k4zuki 1:98b55aeebaa5 97
k4zuki 1:98b55aeebaa5 98 }
K4zuki 5:f1907e4d1147 99 // #include "C12832.h"
K4zuki 5:f1907e4d1147 100 //
K4zuki 5:f1907e4d1147 101 // C12832 lcd(D11, D13, D12, D7, D10);
K4zuki 5:f1907e4d1147 102 //
K4zuki 5:f1907e4d1147 103 // AnalogIn pot1 (A0);
K4zuki 5:f1907e4d1147 104 // AnalogIn pot2 (A1);
K4zuki 5:f1907e4d1147 105 //
K4zuki 5:f1907e4d1147 106 // int main()
K4zuki 5:f1907e4d1147 107 // {
K4zuki 5:f1907e4d1147 108 // while(1) {
K4zuki 5:f1907e4d1147 109 // lcd.cls();
K4zuki 5:f1907e4d1147 110 // lcd.locate(0,3);
K4zuki 5:f1907e4d1147 111 // lcd.printf("Pot 1 = %.2f", (float)pot1);
K4zuki 5:f1907e4d1147 112 // lcd.locate(0,14);
K4zuki 5:f1907e4d1147 113 // lcd.printf("Pot 2 = %.2f", (float)pot2);
K4zuki 5:f1907e4d1147 114 // wait(0.1);
K4zuki 5:f1907e4d1147 115 // }
K4zuki 5:f1907e4d1147 116 // }