commit 63277e1ba1c529734fa606cf909035df9bec2aa0
parent 299c89a9829546bfa8009608d4db0746b7d8ef10
Author: Paco Esteban <paco@onna.be>
Date: Wed, 5 Dec 2018 09:32:31 +0100
better name for main program and cleaning makefile
Diffstat:
2 files changed, 36 insertions(+), 113 deletions(-)
diff --git a/firmware/Makefile b/firmware/Makefile
@@ -1,52 +1,33 @@
-##########------------------------------------------------------##########
-########## Project-specific Details ##########
-########## Check these every time you start a new project ##########
-##########------------------------------------------------------##########
-
-MCU = attiny85
-AVR_TYPE = __AVR_ATtiny85__
-F_CPU = 8000000UL
-BAUD = 9600UL
-## Also try BAUD = 19200 or 38400 if you're feeling lucky.
-
-## A directory for common include files and the simple USART library.
-## If you move either the current folder or the Library folder, you'll
-## need to change this path to match.
+MCU = attiny85
+AVR_TYPE = __AVR_ATtiny85__
+F_CPU = 8000000UL
+BAUD = 9600UL
+
#LIBDIR = ${HOME}/src/electronics/avr_libs
LIBDIR =
-##########------------------------------------------------------##########
-########## Programmer Defaults ##########
-########## Set up once, then forget about it ##########
-########## (Can override. See bottom of file.) ##########
-##########------------------------------------------------------##########
-
PROGRAMMER_TYPE = usbasp
-# extra arguments to avrdude: baud rate, chip type, -F flag, etc.
-PROGRAMMER_ARGS =
-
-##########------------------------------------------------------##########
-########## Program Locations ##########
-########## Won't need to change if they're in your PATH ##########
-##########------------------------------------------------------##########
-
-CC = avr-gcc
-OBJCOPY = avr-objcopy
-OBJDUMP = avr-objdump
-AVRSIZE = avr-size
-AVRDUDE = avrdude
-
-##########------------------------------------------------------##########
-########## Makefile Magic! ##########
-########## Summary: ##########
-########## We want a .hex file ##########
-########## Compile source files into .elf ##########
-########## Convert .elf file into .hex ##########
-########## You shouldn't need to edit below. ##########
-##########------------------------------------------------------##########
+PROGRAMMER_ARGS =
+
+### Program Locations
+
+CC = avr-gcc
+OBJCOPY = avr-objcopy
+OBJDUMP = avr-objdump
+AVRSIZE = avr-size
+AVRDUDE = avrdude
+
+###------------------------------------------------------###
+### Makefile Magic! ###
+### Summary: ###
+### We want a .hex file ###
+### Compile source files into .elf ###
+### Convert .elf file into .hex ###
+### You shouldn't need to edit below. ###
+###------------------------------------------------------###
## The name of your project (without the .c)
-TARGET = blink
+TARGET = main
## Or name it automatically after the enclosing directory
# TARGET = $(lastword $(subst /, ,$(CURDIR)))
@@ -68,9 +49,9 @@ LDFLAGS = -Wl,-Map,$(TARGET).map
## Optional, but often ends up with smaller code
LDFLAGS += -Wl,--gc-sections
## Relax shrinks code even more, but makes disassembly messy
-## LDFLAGS += -Wl,--relax
-## LDFLAGS += -Wl,-u,vfprintf -lprintf_flt -lm ## for floating-point printf
-## LDFLAGS += -Wl,-u,vfprintf -lprintf_min ## for smaller printf
+# LDFLAGS += -Wl,--relax
+# LDFLAGS += -Wl,-u,vfprintf -lprintf_flt -lm ## for floating-point printf
+# LDFLAGS += -Wl,-u,vfprintf -lprintf_min ## for smaller printf
TARGET_ARCH = -mmcu=$(MCU)
## Explicit pattern rules:
@@ -91,7 +72,8 @@ $(TARGET).elf: $(OBJECTS)
$(OBJDUMP) -S $< > $@
## These targets don't have files named after them
-.PHONY: all disassemble disasm eeprom size clean squeaky_clean flash fuses
+.PHONY: all debug size clean squeaky_clean flash flash_eeprom \
+ avrdude_terminal fuses show_fuses
all: $(TARGET).hex
@@ -101,14 +83,6 @@ debug:
@echo "MCU, F_CPU, BAUD:" $(MCU), $(F_CPU), $(BAUD)
@echo
-# Optionally create listing file from .elf
-# This creates approximate assembly-language equivalent of your code.
-# Useful for debugging time-sensitive bits,
-# or making sure the compiler does what you want.
-disassemble: $(TARGET).lst
-
-disasm: disassemble
-
# Optionally show how big the resulting program is
size: $(TARGET).elf
$(AVRSIZE) -C --mcu=$(MCU) $(TARGET).elf
@@ -122,56 +96,24 @@ clean:
squeaky_clean:
rm -f *.elf *.hex *.obj *.o *.d *.eep *.lst *.lss *.sym *.map *~ *.eeprom
-##########------------------------------------------------------##########
-########## Programmer-specific details ##########
-########## Flashing code to AVR using avrdude ##########
-##########------------------------------------------------------##########
+### Flashing code to AVR using avrdude
flash: $(TARGET).hex
$(AVRDUDE) -c $(PROGRAMMER_TYPE) -p $(MCU) $(PROGRAMMER_ARGS) -U flash:w:$<
-## An alias
-program: flash
-
flash_eeprom: $(TARGET).eeprom
$(AVRDUDE) -c $(PROGRAMMER_TYPE) -p $(MCU) $(PROGRAMMER_ARGS) -U eeprom:w:$<
avrdude_terminal:
$(AVRDUDE) -c $(PROGRAMMER_TYPE) -p $(MCU) $(PROGRAMMER_ARGS) -nt
-## If you've got multiple programmers that you use,
-## you can define them here so that it's easy to switch.
-## To invoke, use something like `make flash_arduinoISP`
-flash_usbtiny: PROGRAMMER_TYPE = usbtiny
-flash_usbtiny: PROGRAMMER_ARGS = # USBTiny works with no further arguments
-flash_usbtiny: flash
-
-flash_usbasp: PROGRAMMER_TYPE = usbasp
-flash_usbasp: PROGRAMMER_ARGS = # USBasp works with no further arguments
-flash_usbasp: flash
-
-flash_arduinoISP: PROGRAMMER_TYPE = avrisp
-flash_arduinoISP: PROGRAMMER_ARGS = -b 19200 -P /dev/ttyACM0
-## (for windows) flash_arduinoISP: PROGRAMMER_ARGS = -b 19200 -P com5
-flash_arduinoISP: flash
-
-flash_109: PROGRAMMER_TYPE = avr109
-flash_109: PROGRAMMER_ARGS = -b 9600 -P /dev/ttyUSB0
-flash_109: flash
-
-##########------------------------------------------------------##########
-########## Fuse settings and suitable defaults ##########
-##########------------------------------------------------------##########
-
-## Mega 48, 88, 168, 328 default values
-# LFUSE = 0x62
-# HFUSE = 0xdf
-## EFUSE = 0x00 # en realitat perdefecte he llegi 0xff
-# EFUSE = 0xff
-# per defecte per a l-atmega328p amb cristall 16MHz extern
+
+### Fuse settings
+
+# 8Mhz internal / preserve EEPROM / programming enabled
+# see http://www.engbedded.com/fusecalc
LFUSE = 0xe2
-HFUSE = 0xdf
-# EFUSE = 0x00 # en realitat perdefecte he llegi 0xff
+HFUSE = 0xd7
EFUSE = 0xff
## Generic
@@ -182,22 +124,3 @@ fuses:
$(PROGRAMMER_ARGS) $(FUSE_STRING)
show_fuses:
$(AVRDUDE) -c $(PROGRAMMER_TYPE) -p $(MCU) $(PROGRAMMER_ARGS) -nv
-
-## Called with no extra definitions, sets to defaults
-set_default_fuses: FUSE_STRING = -U lfuse:w:$(LFUSE):m -U hfuse:w:$(HFUSE):m -U efuse:w:$(EFUSE):m
-set_default_fuses: fuses
-
-## Set the fuse byte for full-speed mode
-## Note: can also be set in firmware for modern chips
-set_fast_fuse: LFUSE = 0xE2
-set_fast_fuse: FUSE_STRING = -U lfuse:w:$(LFUSE):m
-set_fast_fuse: fuses
-
-## Set the EESAVE fuse byte to preserve EEPROM across flashes
-set_eeprom_save_fuse: HFUSE = 0xD7
-set_eeprom_save_fuse: FUSE_STRING = -U hfuse:w:$(HFUSE):m
-set_eeprom_save_fuse: fuses
-
-## Clear the EESAVE fuse byte
-clear_eeprom_save_fuse: FUSE_STRING = -U hfuse:w:$(HFUSE):m
-clear_eeprom_save_fuse: fuses
diff --git a/firmware/blink.c b/firmware/main.c