# Project: Temperature and Humidity sensor with Sensirion SHT11 as HID-USB
# Autor: Henrik Haftmann
# Creation: 130714
# Tabsize: 8, Encoding: UTF-8, LineEnds: LF
DEVICE = attiny85
PROJECT = sht11
AVRDUDE = avrdude -c pony-stk200 -P lpt1 -p $(DEVICE) -y
USBDRV = ../usbdrv
COMPILE = avr-gcc -Wall -Wno-parentheses -Os -fno-move-loop-invariants -I. -I$(USBDRV) -mmcu=$(DEVICE) -DF_CPU=16500000
OBJECTS = usbdrvasm.o $(PROJECT).o
# symbolic targets:
all: $(PROJECT).hex disasm
disasm: $(PROJECT).lst
# recompile project for “make flash” but not for “make program”
flash: $(PROJECT).hex
$(AVRDUDE) -e -U flash:w:$<:i
# Fuse high byte:
HFUSE = 0xD5
# 1 1 0 1 0 1 0 0
# │ │ │ │ │ └─┴─┴──── BODLEVEL 2..0 (brownout trigger level → 4.3V)
# │ │ │ │ └────────── EESAVE (preserve EEPROM on Chip Erase → preserve)
# │ │ │ └───────────── WDTON (watchdog timer always on → disable)
# │ │ └─────────────── SPIEN (enable serial programming → enabled)
# │ └───────────────── DWEN (debug wire enable → disabled)
# └─────────────────── RSTDISBL (disable external reset → enabled)
#
# Fuse low byte:
LFUSE = 0xE1
# 1 1 1 0 0 0 0 1
# │ │ └┬┘ └─┴─┴─┴──── CKSEL 3..0 (clock selection → HF PLL)
# │ │ └────────────── SUT 1..0 (BOD enabled, fast rising power)
# │ └───────────────── CKOUT (clock output on CKOUT pin → disabled)
# └─────────────────── CKDIV8 (divide clock by 8 → don't divide)
fuse:
$(AVRDUDE) -U hfuse:w:$(HFUSE):m -U lfuse:w:$(LFUSE):m -E noreset
program:
$(AVRDUDE) -e -U hfuse:w:$(HFUSE):m -U lfuse:w:$(LFUSE):m -U flash:w:$(PROJECT).hex:i -E noreset
clean:
rm -f $(PROJECT).elf $(PROJECT).lst $(OBJECTS)
# file targets:
$(PROJECT).elf: $(OBJECTS)
$(COMPILE) -o $@ $(OBJECTS)
avr-size --mcu=$(DEVICE) -C $@
$(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
|