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: mbed
main.cpp@0:08d7440bdf68, 2020-10-15 (annotated)
- Committer:
- henriquer
- Date:
- Thu Oct 15 21:13:21 2020 +0000
- Revision:
- 0:08d7440bdf68
ADC-DAC-Sinal Audio
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| henriquer | 0:08d7440bdf68 | 1 | |
| henriquer | 0:08d7440bdf68 | 2 | // #################### DAC F302 #################### |
| henriquer | 0:08d7440bdf68 | 3 | |
| henriquer | 0:08d7440bdf68 | 4 | #include "mbed.h" |
| henriquer | 0:08d7440bdf68 | 5 | |
| henriquer | 0:08d7440bdf68 | 6 | AnalogIn Ain(A0); // Entrada sinal de áudio |
| henriquer | 0:08d7440bdf68 | 7 | |
| henriquer | 0:08d7440bdf68 | 8 | AnalogOut Aout(A2); // Reconstrução -sinal de áudio |
| henriquer | 0:08d7440bdf68 | 9 | |
| henriquer | 0:08d7440bdf68 | 10 | Ticker snyq_tick; |
| henriquer | 0:08d7440bdf68 | 11 | |
| henriquer | 0:08d7440bdf68 | 12 | |
| henriquer | 0:08d7440bdf68 | 13 | void snyq_task(void); |
| henriquer | 0:08d7440bdf68 | 14 | |
| henriquer | 0:08d7440bdf68 | 15 | |
| henriquer | 0:08d7440bdf68 | 16 | float data_in, data_out; |
| henriquer | 0:08d7440bdf68 | 17 | |
| henriquer | 0:08d7440bdf68 | 18 | int main() |
| henriquer | 0:08d7440bdf68 | 19 | { |
| henriquer | 0:08d7440bdf68 | 20 | snyq_tick.attach_us(&snyq_task,25); // tempo de amostragem do sinal 1/25us |
| henriquer | 0:08d7440bdf68 | 21 | } |
| henriquer | 0:08d7440bdf68 | 22 | // Funcção Amostragem do Sinal - DAC |
| henriquer | 0:08d7440bdf68 | 23 | void snyq_task(void) |
| henriquer | 0:08d7440bdf68 | 24 | { |
| henriquer | 0:08d7440bdf68 | 25 | data_in=Ain; |
| henriquer | 0:08d7440bdf68 | 26 | data_out=data_in; |
| henriquer | 0:08d7440bdf68 | 27 | Aout=data_out; |
| henriquer | 0:08d7440bdf68 | 28 | |
| henriquer | 0:08d7440bdf68 | 29 | } |
| henriquer | 0:08d7440bdf68 | 30 | |
| henriquer | 0:08d7440bdf68 | 31 | //float LPF(float LPF_in) |
| henriquer | 0:08d7440bdf68 | 32 | //{ |
| henriquer | 0:08d7440bdf68 | 33 | //float a[4]= {1,2,1}; |
| henriquer | 0:08d7440bdf68 | 34 | |
| henriquer | 0:08d7440bdf68 | 35 | //float b[4]= {1,2,1}; |
| henriquer | 0:08d7440bdf68 | 36 | //static float LPF_out; |
| henriquer | 0:08d7440bdf68 | 37 | //static float x[4], y[4]; |
| henriquer | 0:08d7440bdf68 | 38 | //x[3] = x[2]; |
| henriquer | 0:08d7440bdf68 | 39 | //x[2] = x[1]; |
| henriquer | 0:08d7440bdf68 | 40 | //x[1] = x[0]; // move x values by one sample |
| henriquer | 0:08d7440bdf68 | 41 | //y[3] = y[2]; |
| henriquer | 0:08d7440bdf68 | 42 | //y[2] = y[1]; |
| henriquer | 0:08d7440bdf68 | 43 | //y[1] = y[0]; // move y values by one sample |
| henriquer | 0:08d7440bdf68 | 44 | // x[0] = LPF_in; // new value for x[0] |
| henriquer | 0:08d7440bdf68 | 45 | // y[0] = (b[0]*x[0]) + (b[1]*x[1]) + (b[2]*x[2]) + (b[3]*x[3]) + (a[1]*y[1]) + (a[2]*y[2]) + (a[3]*y[3]); |
| henriquer | 0:08d7440bdf68 | 46 | |
| henriquer | 0:08d7440bdf68 | 47 | //LPF_out = y[0]; |
| henriquer | 0:08d7440bdf68 | 48 | //return LPF_out; // output filtered value |
| henriquer | 0:08d7440bdf68 | 49 | //} |