Clean, modular and optimized avr libraries compatible with DMBS
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib
projects/Adalight
submodules
.gitignore
.gitmodules
DMBS
LICENSE
Readme.md

Readme.md

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

Modules Overview

The following modules are currently included:

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.