giuliomoro@77: /* giuliomoro@77: * giuliomoro@77: * Andrew McPherson and Victor Zappi giuliomoro@77: * Queen Mary, University of London giuliomoro@77: */ giuliomoro@77: giuliomoro@77: #include giuliomoro@77: #include giuliomoro@77: #include giuliomoro@77: #include giuliomoro@77: giuliomoro@77: // setup() is called once before the audio rendering starts. giuliomoro@77: // Use it to perform any initialisation and allocation which is dependent giuliomoro@77: // on the period size or sample rate. giuliomoro@77: // giuliomoro@77: // userData holds an opaque pointer to a data structure that was passed giuliomoro@77: // in from the call to initAudio(). giuliomoro@77: // giuliomoro@77: // Return true on success; returning false halts the program. giuliomoro@77: giuliomoro@77: bool setup(BeagleRTContext *context, void *userData) giuliomoro@77: { giuliomoro@223: for(unsigned int n=0; ndigitalFrames; n++){ giuliomoro@223: pinModeFrame(context, 0, P8_08, INPUT); giuliomoro@223: pinModeFrame(context, 0, P8_07, OUTPUT); giuliomoro@223: } giuliomoro@77: return true; giuliomoro@77: } giuliomoro@77: giuliomoro@77: // render() is called regularly at the highest priority by the audio engine. giuliomoro@77: // Input and output are given from the audio hardware and the other giuliomoro@77: // ADCs and DACs (if available). If only audio is available, numAnalogFrames giuliomoro@77: // will be 0. giuliomoro@77: giuliomoro@77: /* basic_button giuliomoro@77: * - connect an LED in series with a 470ohm resistor between P8_07 and ground. giuliomoro@77: * - connect a 1k resistor to P9_03 (+3.3V), giuliomoro@77: * - connect the other end of the resistor to both a button and P8_08 giuliomoro@77: * - connect the other end of the button to ground. giuliomoro@77: * The program will read the button and make the LED blink when the button is pressed. giuliomoro@77: */ giuliomoro@77: giuliomoro@77: void render(BeagleRTContext *context, void *userData) giuliomoro@77: { giuliomoro@242: float sum=0; giuliomoro@77: for(unsigned int n=0; ndigitalFrames; n++){ giuliomoro@223: int status=digitalReadFrame(context, 0, P8_08); //read the value of the button giuliomoro@242: sum += status; giuliomoro@223: digitalWriteFrame(context, n, P8_07, status); //write the status to the LED giuliomoro@223: } giuliomoro@242: rt_printf("status: %f\n", sum); giuliomoro@77: } giuliomoro@77: giuliomoro@77: // cleanup() is called once at the end, after the audio has stopped. giuliomoro@77: // Release any resources that were allocated in setup(). giuliomoro@77: giuliomoro@77: void cleanup(BeagleRTContext *context, void *userData) giuliomoro@77: { giuliomoro@77: // Nothing to do here giuliomoro@77: }