Quelltext /~heha/mb-iwp/Kleinkram/7key.zip/Firmware/7key/Makefile

# Name: Makefile
# Project: 7-Tasten-Tastatur (Schaltkontakt), bis zu 8 Tasten
# Author: Henrik Haftmann
# Creation Date: 210120
# Tabsize: 8, Encoding: UTF-8, LineEnds: LF

P = 7key
D = attiny24
F = 12000000
#USBDRV  = ../micronucleus/firmware/usbdrv
USBDRV  = ../usbdrv
PATH := c:/Programme/WinAVR/gcc530/bin;$(PATH)
COMPILE = avr-gcc -Wall -Os -I$(USBDRV) -I. -mmcu=$D -DF_CPU=$F

# Symbolische Ziele:
all: $P.lst

clean:
	rm -f $P.hex $P.lst

# Datei-Ziele:
$P.elf: *.cpp $(USBDRV)/usbdrvasm.S *.h Makefile
	$(COMPILE) -o $@ $(filter %.cpp %.S,$^)
	avr-size $@

$P.lst:	$P.elf
	avr-objdump -d $< > $@
	avr-strip $<

# Mit avrpp ist's so einfach!
flash: $P.elf
	avrpp $<

program:
	avrpp -ff $P.elf

#Das folgende Geraffel ist nur für avrdude erforderlich. Danke an Jörg!
$P.hex: $P.elf
	avr-objcopy -j .text -j .data -O ihex $< $@

AVRDUDE = avrdude -c pony-stk200 -P lpt1 -p $D -E noreset

EFUSE = 0xFF

# Fuse High-Byte:
HFUSE = 0x55
# 0 1 0 1  0 1 0 1
# ↑ ↑ ↑ ↑  ↑ └─┬─┘
# │ │ │ │  │   └────── BODLEVEL 2..0 (brownout trigger level → 2,7 V)
# │ │ │ │  └────────── EESAVE (behalte EEPROM bei Chip Erase → ja)
# │ │ │ └───────────── WDTON (stets Watchdog-Timer → nein)
# │ │ └─────────────── SPIEN (Serielle Programmierbarkeit → ja)
# │ └───────────────── DWEN (DebugWire → nein)
# └─────────────────── RSTDISBL (Reset als I/O → ja)
#
# Fuse Low-Byte:
LFUSE = 0xDF
# 1 1 0 1  1 1 1 1
# ↑ ↑ └┬┘  └──┬──┘
# │ │  │      └─────── CKSEL 3..0 (Taktauswahl → Quarzoszillator)
# │ │  └────────────── SUT 1..0 (Hochlaufzeit → schnell mit BOD)
# │ └───────────────── CKOUT (Taktausgang → nein)
# └─────────────────── CKDIV8 (Taktteiler durch 8 → nein)
fuse-avrdude:
	$(AVRDUDE) -U hfuse:w:$(HFUSE):m -U lfuse:w:$(LFUSE):m

program-avrdude:
	$(AVRDUDE) -U hfuse:w:$(HFUSE):m -U lfuse:w:$(LFUSE):m -U flash:w:$P.hex:i

# Neu übersetzen bei „make fuse“, aber nicht bei „make program“
flash-avrdude: $P.hex
	$(AVRDUDE) -U flash:w:$<:i
Vorgefundene Kodierung: UTF-80