Skip to content

Latest commit

 

History

History
50 lines (43 loc) · 2.61 KB

README.md

File metadata and controls

50 lines (43 loc) · 2.61 KB

machew

Previously the intent of this library was to implement Arduino functions efficiently in C++ templates. That was three years ago and since then I've decided I don't want to quite do that. There may be a Arduino compatibility layer at some point in the future, (don't hold your breath). The intent now is to create a high level AVR library using C++ templates that compile down to assembly that is as fast as one could write using straight C and a lot of bit twiddling.

Supported Devices (or to support soon):

I don't own development boards for each of those platforms, so support will be on a best effort basis mostly using simulavr

If I can successfully impemlent support for those 4 different platforms then chances are pretty good that generalizing support to any other AVR microcontroller shouldn't be to difficult.

The code will be C++17 which means running it in Arduino will only work by updating the compiler to a more recent version. Details on how to do that can be found at Zakk Emble's Website.

Support for the C++ stdlib will be from my fork of StandardCplusplus

Todo:

  1. Add tuple support to StandardCplusplus
  2. Implement assignment for various interfaces that accept a tuple to preform a as few register writes as possible
  3. Implement each of the register types
  4. Expand support to the ATmega640+
  5. Expand support to the ATTiny28
  6. Expand support to the ATTiny26
  7. Use CMake to avoid manually setting up tools

To Use:

Use CMake

git clone --recursive [email protected]:e2thenegpii/machew.git
cmake -DAVR\_MCU=atmega328 -build-toolchain=ON .