61 lines
1.2 KiB
C
61 lines
1.2 KiB
C
/*
|
|
* record.c:
|
|
* Record some audio via the Gertboard
|
|
*
|
|
* Copyright (c) 2013 Gordon Henderson
|
|
***********************************************************************
|
|
*/
|
|
|
|
#include <stdio.h>
|
|
#include <sys/time.h>
|
|
|
|
#include <wiringPi.h>
|
|
#include <gertboard.h>
|
|
|
|
#define B_SIZE 40000
|
|
|
|
int main ()
|
|
{
|
|
int i ;
|
|
struct timeval tStart, tEnd, tTaken ;
|
|
unsigned char buffer [B_SIZE] ;
|
|
|
|
printf ("\n") ;
|
|
printf ("Gertboard demo: Recorder\n") ;
|
|
printf ("========================\n") ;
|
|
|
|
// Always initialise wiringPi. Use wiringPiSys() if you don't need
|
|
// (or want) to run as root
|
|
|
|
wiringPiSetupSys () ;
|
|
|
|
// Initialise the Gertboard analog hardware at pin 100
|
|
|
|
gertboardAnalogSetup (100) ;
|
|
|
|
gettimeofday (&tStart, NULL) ;
|
|
|
|
for (i = 0 ; i < B_SIZE ; ++i)
|
|
buffer [i] = analogRead (100) >> 2 ;
|
|
|
|
gettimeofday (&tEnd, NULL) ;
|
|
|
|
timersub (&tEnd, &tStart, &tTaken) ;
|
|
|
|
printf ("Time taken for %d reads: %ld.%ld\n", B_SIZE, tTaken.tv_sec, tTaken.tv_usec) ;
|
|
|
|
gettimeofday (&tStart, NULL) ;
|
|
|
|
for (i = 0 ; i < B_SIZE ; ++i)
|
|
analogWrite (100, buffer [i]) ;
|
|
|
|
gettimeofday (&tEnd, NULL) ;
|
|
|
|
timersub (&tEnd, &tStart, &tTaken) ;
|
|
|
|
printf ("Time taken for %d writes: %ld.%ld\n", B_SIZE, tTaken.tv_sec, tTaken.tv_usec) ;
|
|
|
|
return 0 ;
|
|
}
|
|
|