Skip to content

Latest commit

 

History

History
53 lines (38 loc) · 2.89 KB

Readme.md

File metadata and controls

53 lines (38 loc) · 2.89 KB

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

Buy Me A Coffee

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.