Difference between revisions of "Compile a program for attiny13"
From ThorstensHome
(→beep) |
|||
Line 25: | Line 25: | ||
int main(void) | int main(void) | ||
{ | { | ||
− | DDRB = 8; | + | DDRB = 8; # PB4 will be sender, all other ports receiver |
while (1) | while (1) | ||
{ | { |
Revision as of 17:53, 12 January 2013
This is a description how to compile a program for the attiny13 processor. It is based on SUSE 12.2. Other distributions may work similar.
- install cross-avr-binutils
yast -i cross-avr-binutils
- install cross-avr-gcc from http://software.opensuse.org/package/cross-avr-gcc
- install avr-libc from http://software.opensuse.org/package/avr-libc
- create a path /cross
mkdir /cross
- link the files to the respective places
ln -s /usr/bin/avr-as /cross/as ln -s /usr/bin/avr-ld /cross/ld
- tell the system to use these
export PATH=/cross:$PATH
- now you can build this: http://gitorious.org/avr-gcc-examples/avr-gcc-examples/trees/master/attiny13-blink
beep
Here is my program for an ATtiny13 to beep with a frequency of 500Hz:
beep.c
#include <avr/io.h> #define F_CPU 1000000UL #include <util/delay.h> int main(void) { DDRB = 8; # PB4 will be sender, all other ports receiver while (1) { PORTB = 8; _delay_ms(1); PORTB = 0; _delay_ms(1); } return 0; }
Makefile
MCU=attiny13 CC=avr-gcc OBJCOPY=avr-objcopy CFLAGS=-g -mmcu=$(MCU) -Os all: beep.hex beep.hex : beep.o $(OBJCOPY) -R .eeprom -O ihex beep.o beep.hex beep.o : beep.c $(CC) $(CFLAGS) -Os -o beep.o beep.c clean: rm -f *.hex *.o