http://www.siwawi.arubi.uni-kl.de/avr_projects/

AVR-Projects

by Martin THOMAS

You may like to visit my ARM-Projects page too (projects and information for NXP LPC2000, Atmel AT91SAM7, STmicro STR7, STM32, LMI LM3S and other controllers with an ARM-core). Last update in the ARM-section: 14. Jan. 2010.

Available Projects and Information (Content)

"Last updated" may be just additional information not always a new version of a software-package.


AVR Butterfly Application code port to avr-gcc

Introduction

The AVR Butterfly (ATAVRBFLY) made by ATMEL comes with a preloaded application. The application source-code can be downloaded from the ATMEL Web-Site (AVR Butterfly - Application Rev07). It is written for the IAR EWAAVR 4.20a C-Compiler. This is a port of this code to avr-gcc using the avr-libc. Links to avr-gcc, avr-libc and the Windows-Distribution of the toolset (WINAVR) can be found here.

For german readers: Der Quellcode der auf dem AVR-Butterfly installierten Applikation wird von ATMEL für den IAR C-Compiler zum Download bereitgestellt. Anwender denen dieser Compiler nicht zur Verfügung steht, finden auf dieser Seite eine Portierung des Quellcodes auf den frei erhältlichen Compiler avr-gcc unter Verwendung der ebenfalls freien Bibliothek avr-libc. Falls Sie MS-Windows Anwender sind, finden Sie alle notwendigen Werkzeuge in der Sammlung WINAVR. Den gcc-Quellcode der Butterfly Applikation finden Sie zum Download weiter unten. Bitte nutzen Sie die neuste Version (=Download mit jüngstem Datum).


Even if you do not own an AVR Butterfly you may find usefull information in the BF application code for general ATMEL AVR development tasks.

  • State-machine (Zustandsautomat)
  • Using the ATmega169 build-in LCD-controller
  • Using a AVR ADC converter with LDR and NTC sensors and general voltage-reading
  • AVR Hardware SPI
  • Accessing ATMEL Dataflash via Hardware SPI
  • UART/USART
  • Power-Saving and sleep modes
  • Sound (beep-music) playback via PWM and piezo
  • Integration of a UART-based bootloader
  • wake-up on key (pin-change interrupt) and Key-debouncing
  • Real Time Clock (RTC)

From the gcc-port of the application code some methodes how to convert IAR-code to avr-gcc/avr-libc-code can be learned.

  • Accessing data in the flash-area with the program-space utilities to work around the missing generic-pointers
  • Interrupt-Handling
  • Working around incompatibilities between avr-libc and ATmega169 in eeprom-access and sleep-modes
  • ...

Butterfly gcc-port history

Application gcc-Port - last Changes Date
Release of version 0.7.6 17. Dec. 2009
Release of version 0.7.5 15. Aug. 2009
Release of version 0.7.3 2. July 2009
Link to Joe Pardue's Butterfly Alternate Pin Uses document 28. Aug. 2007
Version 0.7.2, see readme-file for details 17. May 2007
Minor update in Version 0.7.1 (only comments) 8. Feb. 2007
Version 0.7.1 31. Jan. 2007
Marked version 0.6.6.1 as latest version 22. Aug. 2006
Example-application Joystick/LCD/Variables 24. Apr. 2006
Preliminary Release 0.6.6.1 (for avr-libc 1.4.3), modified some examples to avoid compiler-error with avr-libc 1.4.3 (WinAVR 20060125) 28. Jan 2006
uart_echo-Example: Fix in OSCCAL-Calibration 23. Jan 2006
Release of Version 0.6.6 (includes AVRStudio-workspace for AVRStudio >= Version 4.12) 9. Jan 2006
Link to AvrFlasher for OS X and Linux (Java) in the Programmer/Flashing section 6. Dec 2005
Added link to a camera remote control project with a BF 19. Oct 2005
Remark about DIDR0 and LCD operational voltage in the Information-Section 24. Aug 2005
Update of Joystick-Interfacing with GPIO Demo 5. July 2005
Two small Demos: Joystick-Interfacing 30. Jun. 2005
Fixed LCD-test example (case sensitive make in WinAVR 2/05). Fixed UART-echo example (SFR labels as in iom169.h of WinAVR 2/05) 25. May 2005
Added link to the "AVR Butterfly MP3"-project 15. Feb. 2005
Example Application by Chalermphol Thammapalerd using Salvo RTOS on the Butterfly 25. Nov. 2004
Added links (book sample chapter, carrier board) 16. Nov. 2004
New Version 0.6.5 27. Aug. 2004
Interims Version to fix incompatiblity with avr-libc 1.0.4 (as in WinAVR 20040720) 20. Jul. 2004
Fixed avrdude command-line example (Thanks to Tobias Jahn) 15. Jun. 2004
Anmerkungen zum Artikel im Linux-Magazin 07/04 (in german) 12. Jun. 2004
New version of Richard Wynn's application (HVAC) now with SHT11 readout. Fixed power-save issue in old version. 10. Jun. 2004
Information about using the JTAG-Pins for general-I/O and AD-conversion 1. Jun. 2004

Software

  • 2.Oct.2003 - 4. Dec. 2003 Older "diary entries" can be found in the Archive
  • 9. Jan. 2006 - Version 0.6.6/20060107. Includes an AVRStudio-Workspace for the gcc/WinAVR-plugin tested with AVRStudio V4.12SP1, small improvements and code-size-reduction (see the readme-file).[Download the old Version 0.6.6]. This version should be used of older avr-libc-versions (as in WinAVR before 1/06).
  • 28. Jan. 2006 - Version 0.6.6".1". Small fix so the project can be built with avr-gcc 3.4.5 and avr-libc 1.4.3 (as in WinAVR 20060125 and later). Interrupt-service-routines adapted to new style. Tested with the hardware by Frank Henriquez, thanks for the feedback. [Download the old Version 0.6.6.1] (zip-archive, timestamp 20060128, hex-File included, all songs activated).
  • The gcc-port of the application-code is as free as the code that Atmel provides for the IAR-compiler. There is just one exception: all parts of the code that include lines that have been created or modified by me for avr-gcc-compatibility must not be published in the AVRButterfly yahoo-group or in the avr.forumer15-forum.
  • 17. May 2007 - Version 0.7.2. Includes bug-fixes from Atmel's REV_07-source (for IAR). Adapted interrupt-handling, sleep-modes and eeprom-handling to new avr-libc. Fixed possible buffer overrun in vcard. Details in the readme.txt. Tested with avr-gcc 4.1.1/avr-libc 1.4.5 (as in WinAVR 20070122).[Download the old Version 0.7.2] (zip-archive, timestamp 20070517)
  • 2. July 2009 - Version 0.7.3. Only minor modifications and updates to reduce binary-size and to avoid warnings, new song. [Download old Version 0.7.3]
  • 18. August 2009 - Version 0.7.5 (0.7.4 has never been published). Only minor modifications to increase compatibility with case-sensitive filesystems. Contributed by Markus Strobl. [Download Version old 0.7.5] (zip-archive, timestamp 20090815).
  • 17. December 2009 - Version 0.7.6. Small modification in LCD_clear() contributed by Michael Löffler.
    [Download Version 0.7.6]
    (latest version, zip-archive, timestamp 20091217).


Reply via email to