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.
main.cpp
- Committer:
- samux
- Date:
- 2011-12-20
- Revision:
- 6:be128039be16
- Parent:
- 5:b49b6a8ca111
- Child:
- 7:6b0012b8fd01
File content as of revision 6:be128039be16:
#include "mbed.h"
#include "USBAudio.h"
extern "C" void HardFault_Handler() {
error("Hard Fault!\n");
}
// frequency: 8 kHz
#define FREQ 8000
// 1 channel: mono
#define NB_CHA 1
// 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, 0x1111, 0x78ab);
AnalogIn mic(p20);
DigitalOut p(p19);
int16_t buf[AUDIO_LENGTH_PACKET/2];
int main() {
double mic_mean = 0.0;
double mic_value;
// compute average value of the microphone. We can then center the audio signal sent to the computer
for (int j = 0; j < 1000; j++) {
mic_value = (mic.read_u16() >> 3);
mic_mean = (mic_mean*j + mic_value)/(j+1);
}
while (1) {
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(80);
}
}
p = 0;
audio.write((uint8_t *)buf);
}
}