
Dialog DA7212 evaluating project DEVELOP branch
Dependencies: FXAS21002 TLV320 mbed sinelookup C12832 FXOS8700
main.cpp@13:b9e27895f98a, 2017-04-24 (annotated)
- Committer:
- k4zuki
- Date:
- Mon Apr 24 17:47:00 2017 +0000
- Revision:
- 13:b9e27895f98a
- Parent:
- 11:2fcbac0f72dd
- Child:
- 14:c852e468923e
update libraries; ; - mbed; - da7212dev
Who changed what in which revision?
User | Revision | Line number | New 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 | 9:fe61a56fa5a9 | 9 | #include "I2S.h" |
K4zuki | 5:f1907e4d1147 | 10 | // #include "C12832.h" |
K4zuki | 5:f1907e4d1147 | 11 | |
K4zuki | 5:f1907e4d1147 | 12 | // C12832 lcd(PTD2, PTD1, PTD3, PTC3, PTD0); |
K4zuki | 5:f1907e4d1147 | 13 | // AnalogIn pot1 (PTB2); |
K4zuki | 5:f1907e4d1147 | 14 | // AnalogIn pot2 (PTB3); |
k4zuki | 1:98b55aeebaa5 | 15 | |
k4zuki | 1:98b55aeebaa5 | 16 | #define SAMPLERATE 32000 |
k4zuki | 1:98b55aeebaa5 | 17 | |
K4zuki | 2:3e6fb6a1f3ef | 18 | //DA7212 codec(I2C_SDA, I2C_SCL); |
k4zuki | 9:fe61a56fa5a9 | 19 | //TLV320 codec(I2C_SDA, I2C_SCL); |
k4zuki | 10:31c65ba8b7ea | 20 | I2S i2s(I2S_TRANSMIT, PTC1, PTB19, PTB18); |
k4zuki | 1:98b55aeebaa5 | 21 | |
k4zuki | 9:fe61a56fa5a9 | 22 | //AnalogIn aIn(p19); |
k4zuki | 9:fe61a56fa5a9 | 23 | //AnalogIn vol(p20); |
k4zuki | 9:fe61a56fa5a9 | 24 | // |
k4zuki | 9:fe61a56fa5a9 | 25 | //float phase_l; |
k4zuki | 9:fe61a56fa5a9 | 26 | //float phase_r; |
k4zuki | 9:fe61a56fa5a9 | 27 | //int minibuf[16]; |
k4zuki | 9:fe61a56fa5a9 | 28 | //float skipper; |
k4zuki | 9:fe61a56fa5a9 | 29 | //float volume; |
k4zuki | 9:fe61a56fa5a9 | 30 | //float phase_kill; |
k4zuki | 9:fe61a56fa5a9 | 31 | // |
k4zuki | 9:fe61a56fa5a9 | 32 | // |
k4zuki | 9:fe61a56fa5a9 | 33 | //extern "C" void HardFault_Handler() |
k4zuki | 9:fe61a56fa5a9 | 34 | //{ |
k4zuki | 9:fe61a56fa5a9 | 35 | // error("Hard Fault!\n"); |
k4zuki | 9:fe61a56fa5a9 | 36 | //} |
k4zuki | 9:fe61a56fa5a9 | 37 | // |
k4zuki | 9:fe61a56fa5a9 | 38 | // |
k4zuki | 9:fe61a56fa5a9 | 39 | //void play(void) |
k4zuki | 9:fe61a56fa5a9 | 40 | //{ |
k4zuki | 9:fe61a56fa5a9 | 41 | // int to_write = i2s.max_fifo_points() - (i2s.fifo_points()); |
k4zuki | 9:fe61a56fa5a9 | 42 | // for(int i = 0; i < to_write; i+=2) { |
k4zuki | 9:fe61a56fa5a9 | 43 | // minibuf[i] = int(float(sine16lookup[int(phase_l)])*volume); |
k4zuki | 9:fe61a56fa5a9 | 44 | // //minibuf[i] = int(sine16lookup[int(phase_l)]); |
k4zuki | 9:fe61a56fa5a9 | 45 | // minibuf[i+1] = int(float(sine16lookup[int(phase_r)])*volume); |
k4zuki | 9:fe61a56fa5a9 | 46 | // phase_l+=skipper; |
k4zuki | 9:fe61a56fa5a9 | 47 | // phase_r = phase_l + phase_kill; |
k4zuki | 9:fe61a56fa5a9 | 48 | // while(phase_l >= SINE16LENGTH) { |
k4zuki | 9:fe61a56fa5a9 | 49 | // phase_l -= SINE16LENGTH; |
k4zuki | 9:fe61a56fa5a9 | 50 | // } |
k4zuki | 9:fe61a56fa5a9 | 51 | // |
k4zuki | 9:fe61a56fa5a9 | 52 | // while(phase_r >= SINE16LENGTH) { |
k4zuki | 9:fe61a56fa5a9 | 53 | // phase_r -= SINE16LENGTH; |
k4zuki | 9:fe61a56fa5a9 | 54 | // } |
k4zuki | 9:fe61a56fa5a9 | 55 | // while(phase_r< 0) phase_r += SINE16LENGTH; |
k4zuki | 9:fe61a56fa5a9 | 56 | // } |
k4zuki | 9:fe61a56fa5a9 | 57 | // i2s.write(minibuf, to_write); |
k4zuki | 9:fe61a56fa5a9 | 58 | //} |
k4zuki | 9:fe61a56fa5a9 | 59 | Serial pc(USBTX,USBRX); |
k4zuki | 1:98b55aeebaa5 | 60 | /* main */ |
k4zuki | 1:98b55aeebaa5 | 61 | int main() |
k4zuki | 1:98b55aeebaa5 | 62 | { |
k4zuki | 9:fe61a56fa5a9 | 63 | pc.baud(115200); |
k4zuki | 9:fe61a56fa5a9 | 64 | pc.printf("printf\n\r"); |
k4zuki | 8:42093f0e5d9e | 65 | // skipper = (aIn*49)+1; |
k4zuki | 11:2fcbac0f72dd | 66 | |
k4zuki | 8:42093f0e5d9e | 67 | // codec.power(true); |
k4zuki | 8:42093f0e5d9e | 68 | // codec.frequency(SAMPLERATE); |
k4zuki | 8:42093f0e5d9e | 69 | // codec.wordsize(16); |
k4zuki | 8:42093f0e5d9e | 70 | // codec.master(false); |
k4zuki | 8:42093f0e5d9e | 71 | // codec.headphone_volume(0.5); |
k4zuki | 8:42093f0e5d9e | 72 | // codec.start(); |
k4zuki | 11:2fcbac0f72dd | 73 | |
k4zuki | 11:2fcbac0f72dd | 74 | // i2s.frequency(SAMPLERATE); |
k4zuki | 11:2fcbac0f72dd | 75 | // i2s.wordsize(16); |
k4zuki | 11:2fcbac0f72dd | 76 | // i2s.stereomono(I2S_STEREO); |
k4zuki | 11:2fcbac0f72dd | 77 | // i2s.masterslave(I2S_MASTER); |
k4zuki | 11:2fcbac0f72dd | 78 | // i2s.attach(&play); |
k4zuki | 11:2fcbac0f72dd | 79 | // i2s.start(); |
k4zuki | 1:98b55aeebaa5 | 80 | while(1) |
k4zuki | 9:fe61a56fa5a9 | 81 | { |
k4zuki | 9:fe61a56fa5a9 | 82 | pc.printf("."); |
k4zuki | 9:fe61a56fa5a9 | 83 | wait_ms(500); |
k4zuki | 8:42093f0e5d9e | 84 | // skipper = (aIn*30)+1; |
k4zuki | 11:2fcbac0f72dd | 85 | |
k4zuki | 8:42093f0e5d9e | 86 | // volume = 1; |
k4zuki | 11:2fcbac0f72dd | 87 | // phase_kill = (vol - 0.5) * 400; |
k4zuki | 11:2fcbac0f72dd | 88 | |
k4zuki | 11:2fcbac0f72dd | 89 | // printf("Skipper:%f, %i, %i\n\r",skipper, to_write,i2s.fifo_level()); |
k4zuki | 1:98b55aeebaa5 | 90 | /*if(flag) |
k4zuki | 1:98b55aeebaa5 | 91 | { |
k4zuki | 1:98b55aeebaa5 | 92 | printf("."); |
k4zuki | 1:98b55aeebaa5 | 93 | flag = false; |
k4zuki | 1:98b55aeebaa5 | 94 | }*/ |
k4zuki | 1:98b55aeebaa5 | 95 | } |
k4zuki | 1:98b55aeebaa5 | 96 | |
k4zuki | 1:98b55aeebaa5 | 97 | } |
K4zuki | 5:f1907e4d1147 | 98 | // #include "C12832.h" |
K4zuki | 5:f1907e4d1147 | 99 | // |
K4zuki | 5:f1907e4d1147 | 100 | // C12832 lcd(D11, D13, D12, D7, D10); |
K4zuki | 5:f1907e4d1147 | 101 | // |
K4zuki | 5:f1907e4d1147 | 102 | // AnalogIn pot1 (A0); |
K4zuki | 5:f1907e4d1147 | 103 | // AnalogIn pot2 (A1); |
K4zuki | 5:f1907e4d1147 | 104 | // |
K4zuki | 5:f1907e4d1147 | 105 | // int main() |
K4zuki | 5:f1907e4d1147 | 106 | // { |
K4zuki | 5:f1907e4d1147 | 107 | // while(1) { |
K4zuki | 5:f1907e4d1147 | 108 | // lcd.cls(); |
K4zuki | 5:f1907e4d1147 | 109 | // lcd.locate(0,3); |
K4zuki | 5:f1907e4d1147 | 110 | // lcd.printf("Pot 1 = %.2f", (float)pot1); |
K4zuki | 5:f1907e4d1147 | 111 | // lcd.locate(0,14); |
K4zuki | 5:f1907e4d1147 | 112 | // lcd.printf("Pot 2 = %.2f", (float)pot2); |
K4zuki | 5:f1907e4d1147 | 113 | // wait(0.1); |
K4zuki | 5:f1907e4d1147 | 114 | // } |
K4zuki | 5:f1907e4d1147 | 115 | // } |