Samuel Mokrani
/
USBAudio_micro
USBAudio example using a microphone
Diff: main.cpp
- Revision:
- 6:be128039be16
- Parent:
- 5:b49b6a8ca111
- Child:
- 7:6b0012b8fd01
--- a/main.cpp Tue Dec 20 10:44:10 2011 +0000 +++ b/main.cpp Tue Dec 20 11:17:33 2011 +0000 @@ -1,6 +1,10 @@ #include "mbed.h" #include "USBAudio.h" +extern "C" void HardFault_Handler() { + error("Hard Fault!\n"); +} + // frequency: 8 kHz #define FREQ 8000 @@ -10,14 +14,15 @@ // length of an audio packet: each ms, we receive 48 * 16bits ->48 * 2 bytes. as there is one channel, the length will be 48 * 2 * 1 #define AUDIO_LENGTH_PACKET (FREQ/500) * NB_CHA -USBAudio audio(FREQ, NB_CHA, 0xaac0, 0xa734); +USBAudio audio(FREQ, NB_CHA, 0x1111, 0x78ab); + AnalogIn mic(p20); DigitalOut p(p19); -// length of buffer = AUDIO_LENGTH_PACKET/2 because we are handling int16 and not bytes. int16_t buf[AUDIO_LENGTH_PACKET/2]; int main() { + double mic_mean = 0.0; double mic_value; @@ -28,16 +33,14 @@ } while (1) { - - // read 8 micro samples + p = 1; for (int i = 0; i < AUDIO_LENGTH_PACKET/2; i++) { buf[i] = (mic.read_u16() >> 3) - mic_mean; if (i != AUDIO_LENGTH_PACKET/2) { - wait_us(110); + wait_us(80); } } - // send + p = 0; audio.write((uint8_t *)buf); - } }