annotate projects/basic_blink/render.cpp @ 75:8bd351ca8b46

Fixed direction in setPinMode functions, updated and fixed basic_blink
author Giulio Moro <giuliomoro@yahoo.it>
date Fri, 17 Jul 2015 20:59:43 +0100
parents 0598731d3bef
children ff0f776415e4
rev   line source
giuliomoro@74 1 #include <BeagleRT.h>
giuliomoro@74 2 #include <Utilities.h>
giuliomoro@74 3 #include <cmath>
giuliomoro@74 4 #include <rtdk.h>
giuliomoro@74 5
giuliomoro@74 6 // setup() is called once before the audio rendering starts.
giuliomoro@74 7 // Use it to perform any initialisation and allocation which is dependent
giuliomoro@74 8 // on the period size or sample rate.
giuliomoro@74 9 //
giuliomoro@74 10 // userData holds an opaque pointer to a data structure that was passed
giuliomoro@74 11 // in from the call to initAudio().
giuliomoro@74 12 //
giuliomoro@74 13 // Return true on success; returning false halts the program.
giuliomoro@74 14
giuliomoro@74 15 bool setup(BeagleRTContext *context, void *userData)
giuliomoro@74 16 {
giuliomoro@74 17 return true;
giuliomoro@74 18 }
giuliomoro@74 19
giuliomoro@74 20 // render() is called regularly at the highest priority by the audio engine.
giuliomoro@74 21 // Input and output are given from the audio hardware and the other
giuliomoro@74 22 // ADCs and DACs (if available). If only audio is available, numAnalogFrames
giuliomoro@74 23 // will be 0.
giuliomoro@74 24
giuliomoro@75 25 /* basic_blink
giuliomoro@75 26 * Connect an LED in series with a 470ohm resistor between P8_07 and ground.
giuliomoro@75 27 * The LED will blink every @interval seconds.
giuliomoro@75 28 */
giuliomoro@75 29
giuliomoro@74 30 void render(BeagleRTContext *context, void *userData)
giuliomoro@74 31 {
giuliomoro@74 32 static int count=0; //counts elapsed samples
giuliomoro@74 33 float interval=0.5; //how often to toggle the LED (in seconds)
giuliomoro@74 34 static int status=GPIO_LOW;
giuliomoro@74 35 for(unsigned int n=0; n<context->digitalFrames; n++){
giuliomoro@74 36 if(count==context->digitalSampleRate*interval){ //if enough samples have elapsed
giuliomoro@74 37 count=0; //reset the counter
giuliomoro@74 38 // status=digitalReadFrame(context, 0, P8_07);
giuliomoro@74 39 if(status==GPIO_LOW) //toggle the status
giuliomoro@74 40 status=GPIO_HIGH;
giuliomoro@74 41 else
giuliomoro@74 42 status=GPIO_LOW;
giuliomoro@75 43 pinModeFrame(context, n, P8_07, OUTPUT);
giuliomoro@75 44 digitalWriteFrameOnce(context, n, P8_07, status); //write the status to the LED
giuliomoro@74 45 }
giuliomoro@74 46 count++;
giuliomoro@74 47 }
giuliomoro@74 48 }
giuliomoro@74 49
giuliomoro@74 50 // cleanup() is called once at the end, after the audio has stopped.
giuliomoro@74 51 // Release any resources that were allocated in setup().
giuliomoro@74 52
giuliomoro@74 53 void cleanup(BeagleRTContext *context, void *userData)
giuliomoro@74 54 {
giuliomoro@74 55 // Nothing to do here
giuliomoro@74 56 }