Dialog DA7212 evaluating project DEVELOP branch

Dependencies:   FXAS21002 TLV320 mbed sinelookup C12832 FXOS8700

Committer:
K4zuki
Date:
Thu Mar 24 02:41:44 2016 +0900
Revision:
5:f1907e4d1147
Parent:
2:3e6fb6a1f3ef
Child:
8:42093f0e5d9e
add LCD sample code(commented out)

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 1:98b55aeebaa5 68 /*
k4zuki 1:98b55aeebaa5 69 skipper = (aIn*49)+1;
k4zuki 1:98b55aeebaa5 70
k4zuki 1:98b55aeebaa5 71 codec.power(true);
k4zuki 1:98b55aeebaa5 72 codec.frequency(SAMPLERATE);
k4zuki 1:98b55aeebaa5 73 codec.wordsize(16);
k4zuki 1:98b55aeebaa5 74 codec.master(false);
k4zuki 1:98b55aeebaa5 75 codec.headphone_volume(0.5);
k4zuki 1:98b55aeebaa5 76 codec.start();
k4zuki 1:98b55aeebaa5 77
k4zuki 1:98b55aeebaa5 78 i2s.frequency(SAMPLERATE);
k4zuki 1:98b55aeebaa5 79 i2s.wordsize(16);
k4zuki 1:98b55aeebaa5 80 i2s.stereomono(I2S_STEREO);
k4zuki 1:98b55aeebaa5 81 i2s.masterslave(I2S_MASTER);
k4zuki 1:98b55aeebaa5 82 i2s.attach(&play);
k4zuki 1:98b55aeebaa5 83 i2s.start();
k4zuki 1:98b55aeebaa5 84 */
k4zuki 1:98b55aeebaa5 85 while(1)
k4zuki 1:98b55aeebaa5 86 {;
k4zuki 1:98b55aeebaa5 87 /*
k4zuki 1:98b55aeebaa5 88 skipper = (aIn*30)+1;
k4zuki 1:98b55aeebaa5 89
k4zuki 1:98b55aeebaa5 90 volume = 1;
k4zuki 1:98b55aeebaa5 91 phase_kill = (vol-0.5)*400;
k4zuki 1:98b55aeebaa5 92
k4zuki 1:98b55aeebaa5 93 //printf("Skipper:%f, %i, %i\n\r",skipper, to_write,i2s.fifo_level());
k4zuki 1:98b55aeebaa5 94 */
k4zuki 1:98b55aeebaa5 95 /*if(flag)
k4zuki 1:98b55aeebaa5 96 {
k4zuki 1:98b55aeebaa5 97 printf(".");
k4zuki 1:98b55aeebaa5 98 flag = false;
k4zuki 1:98b55aeebaa5 99 }*/
k4zuki 1:98b55aeebaa5 100 }
k4zuki 1:98b55aeebaa5 101
k4zuki 1:98b55aeebaa5 102 }
K4zuki 5:f1907e4d1147 103 // #include "C12832.h"
K4zuki 5:f1907e4d1147 104 //
K4zuki 5:f1907e4d1147 105 // C12832 lcd(D11, D13, D12, D7, D10);
K4zuki 5:f1907e4d1147 106 //
K4zuki 5:f1907e4d1147 107 // AnalogIn pot1 (A0);
K4zuki 5:f1907e4d1147 108 // AnalogIn pot2 (A1);
K4zuki 5:f1907e4d1147 109 //
K4zuki 5:f1907e4d1147 110 // int main()
K4zuki 5:f1907e4d1147 111 // {
K4zuki 5:f1907e4d1147 112 // while(1) {
K4zuki 5:f1907e4d1147 113 // lcd.cls();
K4zuki 5:f1907e4d1147 114 // lcd.locate(0,3);
K4zuki 5:f1907e4d1147 115 // lcd.printf("Pot 1 = %.2f", (float)pot1);
K4zuki 5:f1907e4d1147 116 // lcd.locate(0,14);
K4zuki 5:f1907e4d1147 117 // lcd.printf("Pot 2 = %.2f", (float)pot2);
K4zuki 5:f1907e4d1147 118 // wait(0.1);
K4zuki 5:f1907e4d1147 119 // }
K4zuki 5:f1907e4d1147 120 // }