Stap 7: Uitleggen operatie (ADC & PWM DAC)
Voor het genereren van spraak, moeten clientapparaat ADC functioneren.
ADC acquisite stem analoge gegevens. En ze zal in buffer opslaan.
En in dit project ik beslissen de overname interval als 100usec als hieronder
// Start acquisition (interval 100usec) trigger_o.period_us(100); trigger_o.write(0.50f);
Dan adcTickfunc() functie zal excute elke 100usec.
Nu moeten we weten wat er zal gebeuren in deze functie.
void adcTickfunc() {# if defined (UDPServer) if (buf_sel) aout.write((float)ad_data_buf1[i]/256*1.32); else aout.write((float)ad_data_buf0[i]/256*1.32); i++; if (i == MAX_BUF_SIZE) i = MAX_BUF_SIZE - 1;# else if (buf_sel == 0) ad_data_buf0[i] = mic.read_u16() >> 4; else ad_data_buf1[i] = mic.read_u16() >> 4; i++; if (i == MAX_BUF_SIZE) { i = 0; toggle = !toggle; if (buf_sel) buf_sel = 0; else buf_sel = 1; send_udp = 1; sent = 1; }#endif}
In Client-modus
Voor het genereren van spraak, gegevens zullen opslaan op de buffer elke 100usec.
ad_data_buf0[i] = mic.read_u16() >> 4;
En in servermodus,
Om te spelen stem gegevens, stuurt gegevens naar PWM verrichting.
aout.write((float)ad_data_buf1[i]/256*1.32);