# Name: Makefile
# Project: Ein-Tasten-Tastatur (Schaltkontakt), bis zu 4 Tasten
# Author: Henrik Haftmann
# Creation Date: 110703
# Tabsize: 8, Encoding: UTF-8, LineEnds: LF
DEVICE = attiny45
PROJECT = OneKey
AVRDUDE = avrdude -c pony-stk200 -P lpt1 -p $(DEVICE) -E noreset
USBDRV = ../usbdrv
COMPILE = avr-gcc -Wall -Os -I$(USBDRV) -I. -mmcu=$(DEVICE) -DF_CPU=16500000
OBJECTS = usbdrvasm.o $(PROJECT).o
# Symbolische Ziele:
all: $(PROJECT).hex
disasm: $(PROJECT).lst
# Neu übersetzen bei „make fuse“, aber nicht bei „make program“
flash: $(PROJECT).hex
$(AVRDUDE) -U flash:w:$<:i
# Fuse High-Byte:
HFUSE = 0xD5
# 1 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 → nein)
#
# Fuse Low-Byte:
LFUSE = 0xE1
# 1 1 1 0 0 0 0 1
# ↑ ↑ └┬┘ └──┬──┘
# │ │ │ └─────── CKSEL 3..0 (Taktauswahl → HF-PLL)
# │ │ └────────────── SUT 1..0 (Hochlaufzeit → schnell mit BOD)
# │ └───────────────── CKOUT (Taktausgang → nein)
# └─────────────────── CKDIV8 (Taktteiler durch 8 → nein)
fuse:
$(AVRDUDE) -U hfuse:w:$(HFUSE):m -U lfuse:w:$(LFUSE):m
program:
$(AVRDUDE) -U hfuse:w:$(HFUSE):m -U lfuse:w:$(LFUSE):m -U flash:w:$(PROJECT).hex:i
clean:
rm -f $(PROJECT).elf $(PROJECT).lst $(OBJECTS)
# Datei-Ziele:
$(PROJECT).elf: $(OBJECTS)
$(COMPILE) -o $@ $(OBJECTS)
$(PROJECT).hex: $(PROJECT).elf
rm -f $@
avr-objcopy -j .text -j .data -O ihex $< $@
$(PROJECT).lst: $(PROJECT).elf
avr-objdump -d $< > $@
$(PROJECT).o: $(PROJECT).c Makefile usbconfig.h
$(COMPILE) -c $< -o $@
usbdrvasm.o: $(USBDRV)/usbdrvasm.S Makefile usbconfig.h
$(COMPILE) -c $< -o $@
Detected encoding: UTF-8 | 0
|