Awesome
DMBS AVR Library Collection
This repository is a collection of libraries for AVR microcontrollers. DMBS is used as primary build system for all libraries. This repository contains new, standalone libraries as well as makefiles for popular external projects like FastLED.
The purpose of this library is to use a clean and modular build system with libraries optimized in size and speed while still being able to use popular Arduino libraries like FastLED, but without any Arduino core.
Benefits
- Clean, modular, extensible, professional makefile build system used (DMBS)
- Standardized folder structures and naming across all libraries
- Smaller code due to build time optimizations and better makefile handling
- Usage of stdio with serial port: putc, puts, printf, etc.
- Small and fast timer0 code from teensy core: micros(), millis(), delay(), delayMicroseconds()
- FastLED library fully compatible
- FastPin from FastLED usable without Led code (for faster pin access)
- Extremely optimized PinChangeInterrupt library with compile-time optimization
<a href="https://www.buymeacoffee.com/Mnwg9NrCK" target="_blank"><img src="https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png" alt="Buy Me A Coffee" style="height: auto !important;width: auto !important;" ></a>
Modules Overview
The following modules are currently included:
- BOARD - Boards specific definitions like led pins
- TIMER0 - Basic time functions
- USART - Serial i/o operations with stdio functionality (printf etc.)
- FASTLED - FastLED library
- FASTPIN - FastPin class of FastLED library
- PCINT - PinChangeInterrupt library
Usage
In order to build all libraries you need to initialize the submodules for DMBS and other external libraries. The following command can also be used to update all library dependencies.
git submodule update --init --recursive
You then can include the libraries in your DMBS makefile. All sources are already properly added to SRC
. All required compiler switches also automatically get applied by including the library makefile.
# Include DMBS build script makefiles
DMBS_PATH = ../DMBS
LIB_PATH = ../lib
include $(LIB_PATH)/TIMER0/TIMER0.mk
It is recommended to read each libraries makefile first. It it show you how to setup and use the library and give you additional hints and examples.
Writing Your Own Modules
You can use my libraries as an example or use the guide and template from DMBS directly.