# Processortyp M fuer Compiler, N fuer avrdude:
M=atmega328p
N=m328p

# Compileraufrufe:
C=avr-gcc -mmcu=$M -Wall -Os -c
A=avr-as
L=avr-gcc -mmcu=$M -Wall -Os

# fuer avrdude-Aufruf unter Linux:
TTY=/dev/ttyUSB0
# fuer avrdude-Aufruf unter MacOSX:
#TTY=/dev/tty.serial-0001

# verwendeter Programmer:
#P=avr910  #fuer mySmartUSB MK2
P=stk500v2 #fuer mySmartUSB light

all: bewaesserung2.hex blinktest.hex

bewaesserung2.hex: bewaesserung2.cc
	$L bewaesserung2.cc -o bewaesserung2.elf
	avr-objcopy -O ihex -R .eeprom bewaesserung2.elf bewaesserung2.hex
	avr-objdump -h -S bewaesserung2.elf > bewaesserung2.lss

blinktest.hex: blinktest.cc
	$L blinktest.cc -o blinktest.elf
	avr-objcopy -O ihex -R .eeprom blinktest.elf blinktest.hex
	avr-objdump -h -S blinktest.elf > blinktest.lss

check:
	avrdude -p $N -c $P -P $(TTY) -v
check2:
	avrdude -p $N -F -c $P -P $(TTY) -v

# Fuses fuer Quarz, fuer ATmega8 oder ATmega32 oder ATmega328P:
fusesetzenQuarz:
	avrdude -p $N -c $P -P $(TTY) -U lfuse:w:0xFF:m
	avrdude -p $N -c $P -P $(TTY) -U hfuse:w:0xD9:m

fusesetzen: #fuer Atmega328P mit Uhrenquarz, interner Oszillator 8MHz
	avrdude -p $N -c $P -P $(TTY) -U lfuse:w:0xE2:m
	avrdude -p $N -c $P -P $(TTY) -U hfuse:w:0xD9:m

fusesetzenCKOPT: #fuer Atmega8A mit Uhrenquarz, interner Oszillator 8MHz
	avrdude -p $N -c $P -P $(TTY) -U lfuse:w:0xE4:m
	avrdude -p $N -c $P -P $(TTY) -U hfuse:w:0xC9:m

fusesetzenM8: #Atmega8A mit Uhrenquarz Variante von Funkthermometer, 1MHz
	avrdude -p $N -c $P -P $(TTY) -U lfuse:w:0xE1:m
	avrdude -p $N -c $P -P $(TTY) -U hfuse:w:0xD1:m

install: bewaesserung2.hex
	avrdude -p $N -c $P -P $(TTY) -U flash:w:bewaesserung2.hex:i

install_blink: blinktest.hex
	avrdude -p $N -c $P -P $(TTY) -U flash:w:blinktest.hex:i

clean:
	rm -f *~ *.o *.elf
clean_all:
	rm -f *~ *.o *.elf *.lss *.hex
