AVR Libraries
Over the past couple of years I have been writing and assembling a common set of libraries, for use with my AVR projects. Most have been written by myself with modifications by Warren Janssens; others have been modified from Atmel application notes and third party libraries.
As of the time of this writing, I have the following libraries included:
- analog - simplifies ADC use, with both synchronous and asynchronous (ISR based) implementations
- eeprom - my first library, reads and writes from / to EEPROM
- i2c - driver for hardware based i2c Master implementation
- psx - PSX Controller driver, see the dedicated page for details
- pwm - timer / ISR based PWM generation; can be used on any pins
- ring - ring buffer implementation used in serial library
- sd-card - read / write to SD cards
- serial - serial RX and TX; can use synchronous (polling) and asynchronous (ISR) implementations for either RX and TX.
- serial1 - copy of serial, for use on the second serial port for chips which support it
- shift - interface with 74595 shift registers
- timer - timer which can provide time-since-startup in both ms and µs, depending on available hardware. Multiple implementations for timer0 and timer1, for various AVR chipsets.
The SD card library is released under the GPL, as per the license declaration in the comments. The i2c library is released for personal use only (the original code is © Atmel Corporation; my changes are © Wyatt Olson). All other libraries are released under the Creative Commons Attribution-NonCommercial-ShareAlike license (the PSX driver has been approved for CC release by Bill Porter).
You can download the current version of all the libraries with the command:
git clone http://git.digitalcave.ca/avr/lib.git lib
To update your local git copy, use the command:
git pull origin master