Main Page | Modules | Data Structures | Directories | File List | Data Fields | Globals | Related Pages

# Procyon AVRlib

### Version 20061029

C-Language Function Library for Atmel AVR Processors - Written by Pascal Stang
(Content supplied by other authors where noted)

Procyon AVRlib [1] is a library of easy-to-use C functions for a variety of common and uncommon tasks using AVR processors. The goal of AVRlib is to allow programmers to work quickly towards their end goal by reducing the time needed to write basic support functions and code. Most AVRlib header (*.h) files have lengthy descriptions of how to use the supplied library functions. All code (*.c) files are heavily commented with additional information.

Documentation is still being improved and refined on many libraries. When getting familiar with a library, look first in this help document and at any example code that is available in the avrlib/examples directory. Then look inside the [libname].h and [libname]conf.h files, and then the [libname].c file for more details and documentation.

Significant example code is included with AVRlib and can be found in the avrlib/examples directory. The example code is organized as a set of demo applications each of which strives to illustrate how to use a certain AVRlib function library. Effort is made to keep the example code heavily (and thoughtfully) commented.

The latest version of Procyon AVRlib (including this documentation) is available from http://hubbard.engr.scu.edu/embedded/avr/avrlib

Additional Pages:

- Release Notes (a.k.a. What's New)
- Installing AVRlib Manually

## AVRlib Sub-Libraries

The following is a list of sub-libraries in AVRlib.

General Use:

- Byte Buffering (circular)
- Bit Buffering (linear)
- Printf and other formatted print functions
- VT100 Terminal Output
- Command Line Interface
- FAT16/32 File System (support is read-only for now)
- STX/ETX Packet Protocol
- Fixed-Point Math Library (basic operations only)

AVR Built-In Peripheral Support

- Timer(s)
- Uart(s)
- A/D Converter
- I2C Master/Slave
- SPI Interface

Device Drivers for External Hardware:

- Character LCD Modules (HD44780-based)
- I2c EEPROM Memories
- SPI EEPROM Memories
- MMC/SD Memory Cards (SPI-mode)
- Quadrature Encoders
- RC-Servos (up to 8 channels)
- STA013 MP3 Decoder Chip
- GPS Receivers (via serial port)
  - NMEA-0813 Protocol
  - Trimble TSIP Protocol
- Graphic LCD Modules
  - KS0108/HD61202 Controller
  - T6963 Controller
  - LCD Fonts and Symbols

AVR Software-Emulated Devices and Interfaces

- I2c Master (Bit-Bang)
- UART (software-based, timer interrupt driven)
- Pulse Output (arbitrary-frequency continuous/counted square wave)
- Intel-type Memory Bus (Address & Data Buses + nRD,nWR)

Network Support

- Device Drivers
  - Realtek RTL8019AS Ethernet Driver (10mb)
  - ASIX AX88796L Ethernet Driver (10/100mb)
  - Crystal CS8900 Ethernet Driver (10mb)
  - PrismII 802.11b WLAN Driver
- Network Protocols
  - ARP
  - IP
  - ICMP
  - UDP
  - DHCP
- Network Stack

[1] The name "AVRlib" bears an unfortunate resemblance to "AVR libc" even though the two libraries are different and should not be confused. AVR libc is the Standard C Library for AVR-Series Processors and provides functions we typically think of as being standard C like printf, stdio calls, math functions, plus some AVR-specific functions. Procyon AVRlib provides additional higher-level functions designed to help designers accomplish typical embedded systems tasks.