MHVLib - a C++ runtime library for AVRs

Hi Folks,

I've been working for a while now on my own runtime library for AVR microcontrollers (developed mostly on Arduino & clones).

It is written in C++, and is suitable for those wishing to code directly, rather than through the Arduino. I use Eclipse myself, and found it quite suitable (although there is a slight learning curve, and a lot of plugins to play with). The library is shipped as an Eclipse project, but also include Makefiles that will build with a small amount of massaging.

The design philosophy was efficiency rather than hand-holding, so things are a little verbose in places. Where possible, this has been hidden in macros. The benefit of this is far more control is handed to the user via the runtime, without having to fiddle with the hardware directly.

Theres still lots of work to do, so if you want to contribute, please ping me with what you would like to work on, and I'll do my best to help you get settled in.

Full information, git repository & tarballs are available at:
http://www.makehackvoid.com/mhvlib

Cheers

Just updated with an interrupt-driven debouncing class.

Goodies now included are:

  • Digital I/O
  • Timers
  • Serial
  • External Interrupts
  • Servo control
  • Analogue to digital
  • Hardware PWM
  • Software PWM Matrix (for passive LED matrices)
  • Gamma correction - calculate on the fly, or lookup tables (recommended)
  • Fast synchronous serial shifter
  • Software H Bridge for driving naked transistors (with PWM support)
  • Realtime Clock
  • Debouncing

There is a pile of tutorials included, demonstrating use of most of the classes.

I'm currently working on abstracting a monochrome display from the PWMMatrix class, and adding support for Holtek HT1632 LED matrix drivers.

Library updated with:

  • support for HT1632 based LED matrix displays (search Ebay for 0832 led matrix - you should find them from Sure Electronics)
  • Font rendering
  • Tutorial showing how to use the display to display bitmaps as well as scrolling text

Library updated with:

  • HD44780 & KS0660U displays