# Makefile für das Projekt VR-FlyStick (Variante C: Funksender 433 MHz)
## General Flags
PROJECT = fs-c
DEVICE = attiny44
F_CPU = 1000000
RF12 = ../rf12
COMPILE = avr-gcc.exe -Wall -Wno-parentheses -Os -I. -mmcu=$(DEVICE) -D F_CPU=$(F_CPU)
AVRDUDE = avrdude -c pony-stk200 -P lpt1 -p $(DEVICE) -E noreset
OBJECTS = $(PROJECT).o rf12.o
EFUSE = 0xFF
# x x x x x x x 1 ←─ SELFPRGEN (Self-Programming Enable: NO)
HFUSE = 0xD7
# 1 1 0 1 0 1 1 1
# ↑ ↑ ↑ ↑ ↑ └─┴─┴─── BODLEVEL (Brown-Out Detector trigger level: NONE)
# │ │ │ │ └────────* 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 = 0x52
# 0 1 0 1 0 0 1 0
# ↑ ↑ └┬┘ └─┴─┴─┴─── CKSEL (Oscillator selection: RC oscillator 8 MHz)
# │ │ └────────────* SUT (Start-up time: 4 ms, medium)
# │ └──────────────── CKOUT (Clock Output Enable: NO)
# └────────────────── CKDIV8 (Divide clock by 8: YES)
all: $(PROJECT).hex $(PROJECT).lst
disasm: $(PROJECT).lst
$(PROJECT).o: $(PROJECT).c Makefile $(RF12)/rf12.h $(RF12)/Wireless_ID.h
$(COMPILE) -c $< -o $@
rf12.o: $(RF12)/rf12.c Makefile $(RF12)/rf12.h rf12if.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 -E noreset
#Scheißbug! Zumindest bei dieser AVRDUDE-Version muss -E hinten stehen!
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
|