SUBLIBinal FAQ - PalouseRobosub/SUBLIBinal_AVR GitHub Wiki

SUBLIBinal FAQ


What is SUBLIBinal?

SUBLIBinal is an interrupt driven microcontroller library designed for the PIC32MX250F128B. It has since been ported for Arduino to the ATMega328P. The library was developed by Palouse Robosub Club for microcontroller board bring up. The library provides easy to use structures based in the C programming language to quickly and simply implement peripheral features of the microcontroller, while also providing the end user the full functionality of an interrupt driven design.
One of the primary problems with external libraries is that they abstract too far away from the hardware and it can be difficult to understand what the library is actually doing. Because of this, SUBLIBinal is complete open-sourced. The code is licensed under the GPLv3 license.

top


What does SUBLIBinal offer?

SUBLIBinal provides an unique architecture to simplify implementing peripheral features at a low level within the microcontroller. Because the library is written in the C programming language, there is very little memory overhead required to use the library, which complements the limited memory space available on microcontrollers. By utilizing SUBLIBinal's functions, microcontroller bring-up and validation can be accelerated, as the chance of bit-wise configuration errors are minimized.
SUBLIBinal also helps to make microcontroller code more understandable. Enumerations have been created for the configuration settings, so that individual lines of code are extremely self-descriptive and can help with code portability and reusability.
SUBLIBinal is also extremely easy to use as it is only a C-based library. Use of SUBLIBinal does not restrict the user in any way in how they may program their microcontrollers. Internal registers on the microcontroller are still readily accessible for querying by the end-user and can be modified and manipulated within your own code. Please note, that configuration of registers after SUBLIBinal function calls can potentially disrupt functionality of the library functions. However, SUBLIBinal has been programmed in a way that it is easy to understand how the library is modifying internal registers.

top


How can I utilize SUBLIBinal?

To use SUBLIBinal, you should clone the repository onto your local computer. SUBLIBinal relies on Microchips MPLABX development environment for configuration of microcontroller settings and project files. As such, it is simplest to implement the library functionality with MPLABX. However, because SUBLIBinal is programmed in C, you can easily utilize the source code files in command-line compilation. To use the SUBLIBinal library, simply include the header files and the project within your own MPLABX project!

Please see our Getting Started Guide.

top


How do I use SUBLIBinal to program?

The SUBLIBinal library repository contains well-commented code examples for each of the features implemented within SUBLIBinal. There is also extensive documentation on how to use each of the functions within this wiki. Simply refer to the peripheral feature that you are interested in implementing to discover how to utilize SUBLIBinal to implement it!

top


Will additional functionality be implemented in the future?

SUBLIBinal is currently under very active development. We try to keep it up to date as we develop it. Currently, two of the developers are students at Washington State University, and as such updates tend to be sporadic. Current plans for the future of the library will include implementation of most peripherals on the microcontroller. We also plan to implement many of the lower level peripherals into higher level abstractions for simple implementation of features such as touch sensitivity.

top


I'm interested in how SUBLIBinal functions on a lower level.

If you're interested in the internal functionality of how SUBLIBinal operates, please refer to the Technical Documentation file located within the original SUBLIBinal repository. The technical documentation describes all enumerations used within the code and also describes design decisions.

Note: In the future, Technical Documentation will be ported over to the wiki.

top