# Makefile für das Projekt VR-FlyStick (Variante B: USB-HID-Joystick)
## General Flags
PROJECT = fs-b
DEVICE = attiny44
F_CPU = 12800000
USBDRV = ../../Durchflussmesser/usbdrv
COMPILE = avr-gcc.exe -Wall -Os -I$(USBDRV) -I. -mmcu=$(DEVICE) -D F_CPU=$(F_CPU)
AVRDUDE = avrdude -c pony-stk200 -P lpt1 -p $(DEVICE) -E noreset
OBJECTS = usbdrv.o usbdrvasm.o $(PROJECT).o
EFUSE = 0xFF
# x x x x x x x 1 ←─ SELFPRGEN (Self-Programming Enable: NO)
HFUSE = 0xD5
# 1 1 0 1 0 1 0 1
# ↑ ↑ ↑ ↑ ↑ └─┴─┴──* BODLEVEL (Brown-Out Detector trigger level: 2.7 V)
# │ │ │ │ └────────* EESAVE (Preserve EEPROM over chip erase: YES)
# │ │ │ └──────────── WDTON (Watchdog Timer always on: NO)
# │ │ └────────────── SPIEN (Serial Programming Enable: YES)
# │ └──────────────── DWEN (DebugWire Enable: NO)
# └────────────────── RSTDISBL (External Reset Disable: NO)
LFUSE = 0xC2
# 1 1 0 0 0 0 1 0
# ↑ ↑ └┬┘ └─┴─┴─┴─── CKSEL (Oscillator selection: RC oscillator 8 MHz)
# │ │ └────────────* SUT (Start-up time: 0.5 µs, minimum)
# │ └──────────────── CKOUT (Clock Output Enable: NO)
# └─────────────────* CKDIV8 (Divide clock by 8: NO)
all: $(PROJECT).hex $(PROJECT).lst
disasm: $(PROJECT).lst
$(PROJECT).o: $(PROJECT).c Makefile usbconfig.h
$(COMPILE) -c $< -o $@
usbdrv.o: $(USBDRV)/usbdrv.c Makefile usbconfig.h
$(COMPILE) -c $< -o $@
usbdrvasm.o: $(USBDRV)/usbdrvasm.S Makefile usbconfig.h
$(COMPILE) -c $< -o $@
$(PROJECT).elf: $(OBJECTS)
$(COMPILE) -o $@ $(OBJECTS)
%.hex: $(PROJECT).elf
avr-objcopy -j .text -j .data -O ihex $< $@
@avr-size $<
%.lst: $(PROJECT).elf
avr-objdump -d $< > $@
.PHONY: clean program fuse flash
clean:
-rm -rf $(OBJECTS) $(PROJECT).elf $(PROJECT).map $(PROJECT).lst
program:
$(AVRDUDE) -U flash:w:$(PROJECT).hex:i
fuse:
$(AVRDUDE) -U efuse:w:$(EFUSE):m -U hfuse:w:$(HFUSE):m -U lfuse:w:$(LFUSE):m
flash: $(PROJECT).hex program
verify:
$(AVRDUDE) -U flash:v:$(PROJECT).hex
Detected encoding: UTF-8 | 0
|