Mercurial > hg > beaglert
changeset 72:d837fb676977
Documentation updates and include Arduino-type constants in Utilities.h
author | andrewm |
---|---|
date | Fri, 17 Jul 2015 20:09:50 +0100 |
parents | 53e57276ac1a |
children | 6bfd95cb5744 |
files | Doxyfile core/Utilities.cpp include/Utilities.h |
diffstat | 3 files changed, 93 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/Doxyfile Fri Jul 17 17:53:40 2015 +0100 +++ b/Doxyfile Fri Jul 17 20:09:50 2015 +0100 @@ -648,7 +648,7 @@ # directories like "/usr/src/myproject". Separate the files or directories # with spaces. -INPUT = include/BeagleRT.h include/Utilities.h +INPUT = include/BeagleRT.h include/Utilities.h include/digital_gpio_mapping.h # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
--- a/core/Utilities.cpp Fri Jul 17 17:53:40 2015 +0100 +++ b/core/Utilities.cpp Fri Jul 17 20:09:50 2015 +0100 @@ -68,7 +68,7 @@ // Sets the direction of a digital pin for the current frame and all subsequent frames void pinModeFrame(BeagleRTContext *context, int frame, int channel, int mode) { for(unsigned int f = frame; f < context->digitalFrames; f++) { - if(mode) + if(mode == OUTPUT) context->digital[f] |= (1 << channel); else context->digital[f] &= ~(1 << channel); @@ -79,7 +79,7 @@ // // Sets the direction of a digital pin for the current frame only void pinModeFrameOnce(BeagleRTContext *context, int frame, int channel, int mode) { - if(mode) + if(mode == OUTPUT) context->digital[frame] |= (1 << channel); else context->digital[frame] &= ~(1 << channel);
--- a/include/Utilities.h Fri Jul 17 17:53:40 2015 +0100 +++ b/include/Utilities.h Fri Jul 17 20:09:50 2015 +0100 @@ -15,6 +15,12 @@ #include "BeagleRT.h" +#define HIGH 0x1 +#define LOW 0x0 + +#define INPUT 0x0 +#define OUTPUT 0x1 + /// Set the given bit in \c word to 1. #define setBit(word,bit) ((word) | (1 << (bit))) @@ -72,7 +78,7 @@ * values are between 0 and 1, corresponding to the range 0 to 5V. * * Unlike analogWriteFrame(), the value written will affect \b only the frame specified, with - * future values unchanged. This is more efficient than analogWriteFrame() so is better suited + * future values unchanged. This is faster than analogWriteFrame() so is better suited * to applications where every frame will be written to a different value. If * BEAGLERT_FLAG_ANALOG_OUTPUTS_PERSIST is not set within context->flags, then * analogWriteFrameOnce() and analogWriteFrame() are equivalent. @@ -86,11 +92,94 @@ */ void analogWriteFrameOnce(BeagleRTContext *context, int frame, int channel, float value); +/** + * \brief Read a digital input, specifying the frame number (when to read) and the pin. + * + * This function returns the value of a digital input, at the time indicated by \c frame. + * The value is 0 if the pin is low, and nonzero if the pin is high (3.3V). + * + * \param context The I/O data structure which is passed by BeagleRT to render(). + * \param frame Which frame (i.e. what time) to read the digital input. Valid values range + * from 0 to (context->digitalFrames - 1). + * \param channel Which digital pin to read. 16 pins across the P8 and P9 headers of the + * BeagleBone Black are available. See the constants P8_xx and P9_xx defined in + * digital_gpio_mapping.h. + * \return Value of the digital input. + */ int digitalReadFrame(BeagleRTContext *context, int frame, int channel); + +/** + * \brief Write a digital output, specifying the frame number (when to write) and the pin. + * + * This function sets the value of a digital output, at the time indicated by \c frame. + * A value of 0 sets the pin low; any other value sets the pin high (3.3V). + * + * The value written will persist for all future frames. + * + * \param context The I/O data structure which is passed by BeagleRT to render(). + * \param frame Which frame (i.e. what time) to write the digital output. Valid values range + * from 0 to (context->digitalFrames - 1). + * \param channel Which digital output to write. 16 pins across the P8 and P9 headers of the + * BeagleBone Black are available. See the constants P8_xx and P9_xx defined in + * digital_gpio_mapping.h. + * \param value Value to write to the output. + */ void digitalWriteFrame(BeagleRTContext *context, int frame, int channel, int value); + +/** + * \brief Write a digital output, specifying the frame number (when to write) and the pin. + * + * This function sets the value of a digital output, at the time indicated by \c frame. + * A value of 0 sets the pin low; any other value sets the pin high (3.3V). + * + * Unlike digitalWriteFrame(), the value written will affect \b only the frame specified, with + * future values unchanged. This is faster than digitalWriteFrame() so is better suited + * to applications where every frame will be written to a different value. + * + * \param context The I/O data structure which is passed by BeagleRT to render(). + * \param frame Which frame (i.e. what time) to write the digital output. Valid values range + * from 0 to (context->digitalFrames - 1). + * \param channel Which digital output to write. 16 pins across the P8 and P9 headers of the + * BeagleBone Black are available. See the constants P8_xx and P9_xx defined in + * digital_gpio_mapping.h. + * \param value Value to write to the output. + */ void digitalWriteFrameOnce(BeagleRTContext *context, int frame, int channel, int value); +/** + * \brief Set the direction of a digital pin to input or output. + * + * This function sets the direction of a digital pin, at the time indicated by \c frame. + * Valid values are \c INPUT and \c OUTPUT. All pins begin as inputs by default. + * + * The value written will persist for all future frames. + * + * \param context The I/O data structure which is passed by BeagleRT to render(). + * \param frame Which frame (i.e. what time) to set the pin direction. Valid values range + * from 0 to (context->digitalFrames - 1). + * \param channel Which digital output to write. 16 pins across the P8 and P9 headers of the + * BeagleBone Black are available. See the constants P8_xx and P9_xx defined in + * digital_gpio_mapping.h. + * \param value Direction of the pin (\c INPUT or \c OUTPUT). + */ void pinModeFrame(BeagleRTContext *context, int frame, int channel, int mode); + +/** + * \brief Set the direction of a digital pin to input or output. + * + * This function sets the direction of a digital pin, at the time indicated by \c frame. + * Valid values are \c INPUT and \c OUTPUT. All pins begin as inputs by default. + * + * The value written will affect only the specified frame. + * + * \param context The I/O data structure which is passed by BeagleRT to render(). + * \param frame Which frame (i.e. what time) to set the pin direction. Valid values range + * from 0 to (context->digitalFrames - 1). + * \param channel Which digital output to write. 16 pins across the P8 and P9 headers of the + * BeagleBone Black are available. See the constants P8_xx and P9_xx defined in + * digital_gpio_mapping.h. + * \param value Direction of the pin (\c INPUT or \c OUTPUT). + */ void pinModeFrameOnce(BeagleRTContext *context, int frame, int channel, int mode); #else