# Polyathlon bot makefile may 19 2009
# for ATMEGA644 chip
#
CC = avr-gcc
OC = avr-objcopy
CPU = atmega644
CPUP = atmega644P
#
name = Polyathlon
#
$(name).hex : $(name).out
	$(OC) -O ihex $(name).out $(name).hex
	
$(name).out : $(name).o
	$(CC) -mmcu=$(CPU) -o $(name).out $(name).o 
	
$(name).o : $(name).c
	$(CC) -c -O2 -Wall -mmcu=$(CPU) $(name).c -o $(name).o
	
	 
clean:
	rm -f $(name).o $(name).out $(name).hex

# avrdude driver for AVRISP MkII USB programmer
# fuses set for brownout protection and protect eeprom from erase
# hfuse: 11010001: OCD disable, JTAG disable, SPI prog enable, WDT not on, EEPROM preserved
# lfuse: 11110110
# efuse: 11111101:  Brownout protecton level = 2.7 volts
# See page 296 in AVR ATMEGA644 manual

pgm:
	avrdude -c avrispmkii -p $(CPUP) -P usb -e -U flash:w:$(name).hex -U hfuse:w:0xd1:m -U lfuse:w:0xf6:m -U efuse:w:0xfd:m

lst:
	avr-objdump -d $(name).o | less

size:
	avr-size $(name).o
	avr-objdump -h $(name).o
	
	

