Diff
checker
Texte
Texte
Images
Documents
Excel
Dossiers
Legal
Enterprise
Application de bureau
Prix
Se connecter
Télécharger Diffchecker Desktop
Comparer le texte
Trouver la différence entre deux fichiers texte
Outils
Historique
Éditeur live
Cacher identiques
Sans retour à la ligne
Vue
Divisé
Unifié
Niveau de précision
Intelligent
Mot
Caractère
Coloration syntaxique
Choisir la syntaxe
Ignorer
Transformer le texte
Aller au premier écart
Modifier l'entrée
Diffchecker Desktop
La façon la plus sécurisée d'utiliser Diffchecker. Obtenez l'application Diffchecker Desktop : vos diffs ne quittent jamais votre ordinateur !
Obtenir Desktop
Makefile
Créé
il y a 5 ans
Le diff n'expire jamais
Effacer
Exporter
Partager
Expliquer
2 suppressions
Lignes
Total
Supprimé
Caractères
Total
Supprimé
Pour continuer à utiliser cette fonctionnalité, passez à
Diff
checker
Pro
Voir les prix
388 lignes
Copier tout
0 ajouts
Lignes
Total
Ajouté
Caractères
Total
Ajouté
Pour continuer à utiliser cette fonctionnalité, passez à
Diff
checker
Pro
Voir les prix
388 lignes
Copier tout
#
#
# Makefile
# Makefile
#
#
# (c) 2012-2020 by Markus Reschke
# (c) 2012-2020 by Markus Reschke
# based on code from Markus Frejek and Karl-Heinz Kübbeler
# based on code from Markus Frejek and Karl-Heinz Kübbeler
#
#
PROJECT = ComponentTester
PROJECT = ComponentTester
#
#
# MCU settings
# MCU settings
# - Edit to match your setup!
# - Edit to match your setup!
#
#
# avr-gcc: MCU model
# avr-gcc: MCU model
# - ATmega 328/328P : atmega328
# - ATmega 328/328P : atmega328
# - ATmega 328PB : atmega328pb
# - ATmega 328PB : atmega328pb
# - ATmega 324P/324PA : atmega324p
# - ATmega 324P/324PA : atmega324p
# - ATmega 640 : atmega640
# - ATmega 640 : atmega640
# - ATmega 644/644P/644PA : atmega644
# - ATmega 644/644P/644PA : atmega644
# - ATmega 1280 : atmega1280
# - ATmega 1280 : atmega1280
# - ATmega 1284/1284P : atmega1284
# - ATmega 1284/1284P : atmega1284
# - ATmega 2560 : atmega2560
# - ATmega 2560 : atmega2560
MCU = atmega644
MCU = atmega644
# MCU freqency:
# MCU freqency:
# - 1MHz : 1
# - 1MHz : 1
# - 8MHz : 8
# - 8MHz : 8
# - 16MHz : 16
# - 16MHz : 16
# - 20MHz : 20
# - 20MHz : 20
FREQ = 8
FREQ = 8
# oscillator type
# oscillator type
# - internal RC oscillator : RC
# - internal RC oscillator : RC
# - external full swing crystal : Crystal
# - external full swing crystal : Crystal
# - external low power crystal : LowPower
# - external low power crystal : LowPower
OSCILLATOR = Crystal
OSCILLATOR = Crystal
# oscillator start-up cycles
# oscillator start-up cycles
# - Crystal and LowPower could also be 1024 or 256 based on fuse settings
# - Crystal and LowPower could also be 1024 or 256 based on fuse settings
ifeq (${OSCILLATOR},RC)
ifeq (${OSCILLATOR},RC)
OSC_STARTUP = 6
OSC_STARTUP = 6
endif
endif
ifeq (${OSCILLATOR},Crystal)
ifeq (${OSCILLATOR},Crystal)
OSC_STARTUP = 16384
OSC_STARTUP = 16384
endif
endif
ifeq (${OSCILLATOR},LowPower)
ifeq (${OSCILLATOR},LowPower)
OSC_STARTUP = 16384
OSC_STARTUP = 16384
endif
endif
#
#
# avrdude settings
# avrdude settings
# - Edit to match your setup!
# - Edit to match your setup!
#
#
# avrdude: part number of MCU
# avrdude: part number of MCU
# - ATmega 328 : m328
# - ATmega 328 : m328
# - ATmega 328P : m328p
# - ATmega 328P : m328p
# - ATmega 328PB : m328pb
# - ATmega 328PB : m328pb
# - ATmega 324P : m324p
# - ATmega 324P : m324p
# - ATmega 324PA : m324pa
# - ATmega 324PA : m324pa
# - ATmega 640 : m640
# - ATmega 640 : m640
# - ATmega 644 : m644
# - ATmega 644 : m644
# - ATmega 644P : m644p
# - ATmega 644P : m644p
# - ATmega 644PA : m644p
# - ATmega 644PA : m644p
# - ATmega 1280 : m1280
# - ATmega 1280 : m1280
# - ATmega 1284 : m1284
# - ATmega 1284 : m1284
# - ATmega 1284P : m1284p
# - ATmega 1284P : m1284p
# - ATmega 2560 : m2560
# - ATmega 2560 : m2560
PARTNO = m644p
PARTNO = m644p
# avrdude: ISP programmer, port and options
# avrdude: ISP programmer, port and options
# Arduino as ISP
# Arduino as ISP
#PROGRAMMER = stk500v1
#PROGRAMMER = stk500v1
#PORT = /dev/ttyACM0
#PORT = /dev/ttyACM0
#OPTIONS = -b 19200
#OPTIONS = -b 19200
# Bus Pirate
# Bus Pirate
#PROGRAMMER = buspirate
#PROGRAMMER = buspirate
#PORT = /dev/bus_pirate
#PORT = /dev/bus_pirate
#OPTIONS = -B 10.0
#OPTIONS = -B 10.0
# Diamex ALL-AVR/AVR-Prog
# Diamex ALL-AVR/AVR-Prog
#PROGRAMMER = avrispmkII
#PROGRAMMER = avrispmkII
#PORT = usb
#PORT = usb
Copier
Copié
Copier
Copié
#
OPTIONS = -B 1.0
OPTIONS = -B 1.0
# Pololu USB AVR Programmer
# Pololu USB AVR Programmer
#PROGRAMMER = stk500v2
#PROGRAMMER = stk500v2
#PORT = /dev/ttyACM0
#PORT = /dev/ttyACM0
#OPTIONS = -B 1.0
#OPTIONS = -B 1.0
# USBasp
# USBasp
PROGRAMMER = usbasp
PROGRAMMER = usbasp
PORT = usb
PORT = usb
OPTIONS = -B 20
OPTIONS = -B 20
# USBtinyISP
# USBtinyISP
#PROGRAMMER = usbtiny
#PROGRAMMER = usbtiny
#PORT = usb
#PORT = usb
#OPTIONS = -B 5.0
#OPTIONS = -B 5.0
# Arduino Uno bootloader via serial/USB
# Arduino Uno bootloader via serial/USB
#PROGRAMMER = arduino
#PROGRAMMER = arduino
#PORT = /dev/ttyACM0
#PORT = /dev/ttyACM0
#OPTIONS = -D -b 115200
#OPTIONS = -D -b 115200
# Arduino Mega2560 bootloader via serial/USB
# Arduino Mega2560 bootloader via serial/USB
#PROGRAMMER = wiring
#PROGRAMMER = wiring
#PORT = /dev/ttyACM0
#PORT = /dev/ttyACM0
#OPTIONS = -D -b 115200
#OPTIONS = -D -b 115200
#
#
# global settings
# global settings
#
#
# project name
# project name
Copier
Copié
Copier
Copié
NAME = ComponentTester
Anis
NAME = ComponentTester
# name and version based on directory name
# name and version based on directory name
DIST = $(notdir ${CURDIR})
DIST = $(notdir ${CURDIR})
# compiler flags
# compiler flags
CC = avr-gcc
CC = avr-gcc
CPP = avr-g++
CPP = avr-g++
CFLAGS = -mmcu=${MCU} -Wall -I. -Ibitmaps
CFLAGS = -mmcu=${MCU} -Wall -I. -Ibitmaps
CFLAGS += -DF_CPU=${FREQ}000000UL
CFLAGS += -DF_CPU=${FREQ}000000UL
CFLAGS += -DOSC_STARTUP=${OSC_STARTUP}
CFLAGS += -DOSC_STARTUP=${OSC_STARTUP}
CFLAGS += -gdwarf-2 -std=gnu99 -Os -mcall-prologues
CFLAGS += -gdwarf-2 -std=gnu99 -Os -mcall-prologues
CFLAGS += -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums
CFLAGS += -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums
#CFLAGS += -flto
#CFLAGS += -flto
CFLAGS += -MD -MP -MT $(*F).o -MF dep/$(@F).d
CFLAGS += -MD -MP -MT $(*F).o -MF dep/$(@F).d
# linker flags
# linker flags
LDFLAGS = -mmcu=${MCU} -Wl,-Map=${NAME}.map
LDFLAGS = -mmcu=${MCU} -Wl,-Map=${NAME}.map
# hex file flags
# hex file flags
HEX_FLASH_FLAGS = -R .eeprom -R .fuse -R .lock -R .signature
HEX_FLASH_FLAGS = -R .eeprom -R .fuse -R .lock -R .signature
HEX_EEPROM_FLAGS = -j .eeprom
HEX_EEPROM_FLAGS = -j .eeprom
HEX_EEPROM_FLAGS += --set-section-flags=.eeprom="alloc,load"
HEX_EEPROM_FLAGS += --set-section-flags=.eeprom="alloc,load"
HEX_EEPROM_FLAGS += --change-section-lma .eeprom=0 --no-change-warnings
HEX_EEPROM_FLAGS += --change-section-lma .eeprom=0 --no-change-warnings
# header files
# header files
HEADERS = config.h config_328.h config_644.h config_1280.h
HEADERS = config.h config_328.h config_644.h config_1280.h
HEADERS += colors.h common.h functions.h variables.h $(wildcard var_*.h)
HEADERS += colors.h common.h functions.h variables.h $(wildcard var_*.h)
HEADERS += OneWire.h ADS7843.h
HEADERS += OneWire.h ADS7843.h
HEADERS += HD44780.h ILI9163.h ILI9341.h ILI9481.h ILI9486.h ILI9488.h
HEADERS += HD44780.h ILI9163.h ILI9341.h ILI9481.h ILI9486.h ILI9488.h
HEADERS += PCD8544.h PCF8814.h SH1106.h SSD1306.h
HEADERS += PCD8544.h PCF8814.h SH1106.h SSD1306.h
HEADERS += ST7036.h ST7565R.h ST7735.h ST7920.h STE2007.h
HEADERS += ST7036.h ST7565R.h ST7735.h ST7920.h STE2007.h
# objects
# objects
OBJECTS_C = main.o user.o pause.o adjust.o ADC.o probes.o display.o
OBJECTS_C = main.o user.o pause.o adjust.o ADC.o probes.o display.o
OBJECTS_C += resistor.o cap.o semi.o inductor.o
OBJECTS_C += resistor.o cap.o semi.o inductor.o
OBJECTS_C += tools_misc.o tools_signal.o tools_LC_Meter.o
OBJECTS_C += tools_misc.o tools_signal.o tools_LC_Meter.o
OBJECTS_C += SPI.o I2C.o serial.o commands.o OneWire.o
OBJECTS_C += SPI.o I2C.o serial.o commands.o OneWire.o
OBJECTS_C += IR_RX.o IR_TX.o DHTxx.o ADS7843.o
OBJECTS_C += IR_RX.o IR_TX.o DHTxx.o ADS7843.o
OBJECTS_C += HD44780.o ILI9163.o ILI9341.o ILI9481.o ILI9486.o ILI9488.o
OBJECTS_C += HD44780.o ILI9163.o ILI9341.o ILI9481.o ILI9486.o ILI9488.o
OBJECTS_C += PCD8544.o PCF8814.o SH1106.o SSD1306.o
OBJECTS_C += PCD8544.o PCF8814.o SH1106.o SSD1306.o
OBJECTS_C += ST7036.o ST7565R.o ST7735.o ST7920.o
OBJECTS_C += ST7036.o ST7565R.o ST7735.o ST7920.o
OBJECTS_C += STE2007.o VT100.o TestDisplay.o
OBJECTS_C += STE2007.o VT100.o TestDisplay.o
OBJECTS_S = wait.o
OBJECTS_S = wait.o
OBJECTS = ${OBJECTS_C} ${OBJECTS_S}
OBJECTS = ${OBJECTS_C} ${OBJECTS_S}
#
#
# build
# build
#
#
all: ${NAME} ${NAME}.hex ${NAME}.eep ${NAME}.lss size
all: ${NAME} ${NAME}.hex ${NAME}.eep ${NAME}.lss size
#
#
# link
# link
#
#
# link firmware
# link firmware
$(NAME): ${OBJECTS}
$(NAME): ${OBJECTS}
${CC} ${LDFLAGS} ${OBJECTS} ${LIBDIRS} ${LIBS} -o ${NAME}
${CC} ${LDFLAGS} ${OBJECTS} ${LIBDIRS} ${LIBS} -o ${NAME}
# create hex file of firmware
# create hex file of firmware
%.hex: ${NAME}
%.hex: ${NAME}
avr-objcopy -O ihex ${HEX_FLASH_FLAGS} $< $@
avr-objcopy -O ihex ${HEX_FLASH_FLAGS} $< $@
# create hex file of EEPROM data
# create hex file of EEPROM data
%.eep: ${NAME}
%.eep: ${NAME}
-avr-objcopy ${HEX_EEPROM_FLAGS} -O ihex $< $@ || exit 0
-avr-objcopy ${HEX_EEPROM_FLAGS} -O ihex $< $@ || exit 0
# create dump of firmware
# create dump of firmware
%.lss: ${NAME}
%.lss: ${NAME}
avr-objdump -h -S $< > $@
avr-objdump -h -S $< > $@
# output size of firmware and stuff
# output size of firmware and stuff
size: ${NAME}
size: ${NAME}
@echo
@echo
@avr-size -C --mcu=${MCU} $<
@avr-size -C --mcu=${MCU} $<
#
#
# compile source files
# compile source files
#
#
# rule for all c-files
# rule for all c-files
${OBJECTS_C}: %.o: %.c ${HEADERS} ${MAKEFILE_LIST}
${OBJECTS_C}: %.o: %.c ${HEADERS} ${MAKEFILE_LIST}
${CC} ${CFLAGS} -c ${@:.o=.c}
${CC} ${CFLAGS} -c ${@:.o=.c}
# rule for all S-files
# rule for all S-files
${OBJECTS_S}: %.o: %.S ${HEADERS} ${MAKEFILE_LIST}
${OBJECTS_S}: %.o: %.S ${HEADERS} ${MAKEFILE_LIST}
${CC} ${CFLAGS} -c ${@:.o=.S}
${CC} ${CFLAGS} -c ${@:.o=.S}
# external dependencies
# external dependencies
-include $(shell mkdir dep 2>/dev/null) $(wildcard dep/*)
-include $(shell mkdir dep 2>/dev/null) $(wildcard dep/*)
#
#
# extras
# extras
#
#
# program firmware and EEPROM data
# program firmware and EEPROM data
upload: ${NAME} ${NAME}.hex ${NAME}.eep ${NAME}.lss size
upload: ${NAME} ${NAME}.hex ${NAME}.eep ${NAME}.lss size
avrdude -c ${PROGRAMMER} -P ${PORT} -p ${PARTNO} ${OPTIONS} \
avrdude -c ${PROGRAMMER} -P ${PORT} -p ${PARTNO} ${OPTIONS} \
-U flash:w:./${NAME}.hex:a -U eeprom:w:./${NAME}.eep:a
-U flash:w:./${NAME}.hex:a -U eeprom:w:./${NAME}.eep:a
# program firmware only
# program firmware only
prog_fw: ${NAME} ${NAME}.hex ${NAME}.lss size
prog_fw: ${NAME} ${NAME}.hex ${NAME}.lss size
avrdude -c ${PROGRAMMER} -P ${PORT} -p ${PARTNO} ${OPTIONS} \
avrdude -c ${PROGRAMMER} -P ${PORT} -p ${PARTNO} ${OPTIONS} \
-U flash:w:./${NAME}.hex:a
-U flash:w:./${NAME}.hex:a
# program EEPROM data only
# program EEPROM data only
prog_ee: ${NAME} ${NAME}.eep ${NAME}.lss size
prog_ee: ${NAME} ${NAME}.eep ${NAME}.lss size
avrdude -c ${PROGRAMMER} -P ${PORT} -p ${PARTNO} ${OPTIONS} \
avrdude -c ${PROGRAMMER} -P ${PORT} -p ${PARTNO} ${OPTIONS} \
-U eeprom:w:./${NAME}.eep:a
-U eeprom:w:./${NAME}.eep:a
# create distribution package
# create distribution package
dist:
dist:
rm -f *.tgz
rm -f *.tgz
cd ..; tar -czf ${DIST}/${DIST}.tgz \
cd ..; tar -czf ${DIST}/${DIST}.tgz \
${DIST}/*.h ${DIST}/*.c ${DIST}/*.S ${DIST}/bitmaps/*.h \
${DIST}/*.h ${DIST}/*.c ${DIST}/*.S ${DIST}/bitmaps/*.h \
${DIST}/Makefile ${DIST}/README ${DIST}/CHANGES \
${DIST}/Makefile ${DIST}/README ${DIST}/CHANGES \
${DIST}/README.de ${DIST}/CHANGES.de ${DIST}/Clones \
${DIST}/README.de ${DIST}/CHANGES.de ${DIST}/Clones \
${DIST}/*.pdf
${DIST}/*.pdf
# clean up
# clean up
clean:
clean:
-rm -rf ${OBJECTS} ${NAME} dep/* *.tgz
-rm -rf ${OBJECTS} ${NAME} dep/* *.tgz
-rm -rf ${NAME}.hex ${NAME}.eep ${NAME}.lss ${NAME}.map
-rm -rf ${NAME}.hex ${NAME}.eep ${NAME}.lss ${NAME}.map
#
#
# MCU fuses
# MCU fuses
#
#
# ATmega 328/328P
# ATmega 328/328P
ifeq (${MCU},atmega328)
ifeq (${MCU},atmega328)
FAMILY = atmega328_324_640
FAMILY = atmega328_324_640
endif
endif
# ATmega 328PB
# ATmega 328PB
ifeq (${MCU},atmega328pb)
ifeq (${MCU},atmega328pb)
FAMILY = atmega328pb
FAMILY = atmega328pb
endif
endif
# ATmega 324P/324PA
# ATmega 324P/324PA
ifeq (${MCU},atmega324p)
ifeq (${MCU},atmega324p)
FAMILY = atmega328_324_640
FAMILY = atmega328_324_640
endif
endif
# ATmega 640
# ATmega 640
ifeq (${MCU},atmega640)
ifeq (${MCU},atmega640)
FAMILY = atmega328_324_640
FAMILY = atmega328_324_640
endif
endif
# ATmega 644/644P/644PA
# ATmega 644/644P/644PA
ifeq (${MCU},atmega644)
ifeq (${MCU},atmega644)
FAMILY = atmega328_324_640
FAMILY = atmega328_324_640
endif
endif
# ATmega 1280
# ATmega 1280
ifeq (${MCU},atmega1280)
ifeq (${MCU},atmega1280)
FAMILY = atmega328_324_640
FAMILY = atmega328_324_640
endif
endif
# ATmega 1284/1284P
# ATmega 1284/1284P
ifeq (${MCU},atmega1284)
ifeq (${MCU},atmega1284)
FAMILY = atmega328_324_640
FAMILY = atmega328_324_640
endif
endif
# ATmega 2560
# ATmega 2560
ifeq (${MCU},atmega2560)
ifeq (${MCU},atmega2560)
FAMILY = atmega328_324_640
FAMILY = atmega328_324_640
endif
endif
# ATmega 328/324/640/644/1280/1284/2560
# ATmega 328/324/640/644/1280/1284/2560
ifeq (${FAMILY},atmega328_324_640)
ifeq (${FAMILY},atmega328_324_640)
# high byte: use default settings, disable JTAG
# high byte: use default settings, disable JTAG
HFUSE = -U hfuse:w:0xd9:m
HFUSE = -U hfuse:w:0xd9:m
# extended byte: BOD level 4.3V
# extended byte: BOD level 4.3V
EFUSE = -U efuse:w:0xfc:m
EFUSE = -U efuse:w:0xfc:m
# low byte: clock settings
# low byte: clock settings
ifeq (${FREQ},1)
ifeq (${FREQ},1)
# internal RC oscillator (8MHz) and /1 clock divider
# internal RC oscillator (8MHz) and /1 clock divider
LFUSE_RC = -U lfuse:w:0x62:m
LFUSE_RC = -U lfuse:w:0x62:m
# external 8MHz full swing crystal and /8 clock divider
# external 8MHz full swing crystal and /8 clock divider
LFUSE_CRYSTAL = -U lfuse:w:0x77:m
LFUSE_CRYSTAL = -U lfuse:w:0x77:m
# external 8MHz low power crystal and /8 clock divider
# external 8MHz low power crystal and /8 clock divider
LFUSE_LOWPOWER = -U lfuse:w:0x7f:m
LFUSE_LOWPOWER = -U lfuse:w:0x7f:m
endif
endif
ifeq (${FREQ},8)
ifeq (${FREQ},8)
# internal RC oscillator (8MHz) and /1 clock divider
# internal RC oscillator (8MHz) and /1 clock divider
LFUSE_RC = -U lfuse:w:0xe2:m
LFUSE_RC = -U lfuse:w:0xe2:m
# external 8MHz full swing crystal and /1 clock divider
# external 8MHz full swing crystal and /1 clock divider
LFUSE_CRYSTAL = -U lfuse:w:0xf7:m
LFUSE_CRYSTAL = -U lfuse:w:0xf7:m
# external 8MHz low power crystal and /1 clock divider
# external 8MHz low power crystal and /1 clock divider
LFUSE_LOWPOWER = -U lfuse:w:0xff:m
LFUSE_LOWPOWER = -U lfuse:w:0xff:m
endif
endif
ifeq (${FREQ},16)
ifeq (${FREQ},16)
# internal RC oscillator (8MHz) not possible
# internal RC oscillator (8MHz) not possible
LFUSE_RC =
LFUSE_RC =
# external 16MHz full swing crystal and /1 clock divider
# external 16MHz full swing crystal and /1 clock divider
LFUSE_CRYSTAL = -U lfuse:w:0xf7:m
LFUSE_CRYSTAL = -U lfuse:w:0xf7:m
# external 16MHz low power crystal and /1 clock divider
# external 16MHz low power crystal and /1 clock divider
LFUSE_LOWPOWER = -U lfuse:w:0xff:m
LFUSE_LOWPOWER = -U lfuse:w:0xff:m
endif
endif
ifeq (${FREQ},20)
ifeq (${FREQ},20)
# internal RC oscillator (8MHz) not possible
# internal RC oscillator (8MHz) not possible
LFUSE_RC =
LFUSE_RC =
# external 20MHz full swing crystal and /1 clock divider
# external 20MHz full swing crystal and /1 clock divider
LFUSE_CRYSTAL = -U lfuse:w:0xf7:m
LFUSE_CRYSTAL = -U lfuse:w:0xf7:m
# external 20MHz low power crystal and /1 clock divider
# external 20MHz low power crystal and /1 clock divider
LFUSE_LOWPOWER = -U lfuse:w:0xff:m
LFUSE_LOWPOWER = -U lfuse:w:0xff:m
endif
endif
endif
endif
# ATmega 328PB
# ATmega 328PB
ifeq (${FAMILY},atmega328pb)
ifeq (${FAMILY},atmega328pb)
# high byte: use default settings
# high byte: use default settings
HFUSE = -U hfuse:w:0xd9:m
HFUSE = -U hfuse:w:0xd9:m
# extended byte: BOD level 4.3V, CFD disabled
# extended byte: BOD level 4.3V, CFD disabled
EFUSE = -U efuse:w:0xf4:m
EFUSE = -U efuse:w:0xf4:m
# low byte: clock settings
# low byte: clock settings
ifeq (${FREQ},8)
ifeq (${FREQ},8)
# internal RC oscillator (8MHz) and /1 clock divider
# internal RC oscillator (8MHz) and /1 clock divider
LFUSE_RC = -U lfuse:w:0xe2:m
LFUSE_RC = -U lfuse:w:0xe2:m
# full swing crystal not supported, use low power crystal
# full swing crystal not supported, use low power crystal
LFUSE_CRYSTAL = -U lfuse:w:0xff:m
LFUSE_CRYSTAL = -U lfuse:w:0xff:m
# external 8MHz low power crystal and /1 clock divider
# external 8MHz low power crystal and /1 clock divider
LFUSE_LOWPOWER = -U lfuse:w:0xff:m
LFUSE_LOWPOWER = -U lfuse:w:0xff:m
endif
endif
ifeq (${FREQ},16)
ifeq (${FREQ},16)
# internal RC oscillator (8MHz) not possible
# internal RC oscillator (8MHz) not possible
LFUSE_RC =
LFUSE_RC =
# full swing crystal not supported, use low power crystal
# full swing crystal not supported, use low power crystal
LFUSE_CRYSTAL = -U lfuse:w:0xff:m
LFUSE_CRYSTAL = -U lfuse:w:0xff:m
# external 16MHz low power crystal and /1 clock divider
# external 16MHz low power crystal and /1 clock divider
LFUSE_LOWPOWER = -U lfuse:w:0xff:m
LFUSE_LOWPOWER = -U lfuse:w:0xff:m
endif
endif
endif
endif
# select low fuse byte
# select low fuse byte
ifeq (${OSCILLATOR},RC)
ifeq (${OSCILLATOR},RC)
LFUSE = ${LFUSE_RC}
LFUSE = ${LFUSE_RC}
endif
endif
ifeq (${OSCILLATOR},Crystal)
ifeq (${OSCILLATOR},Crystal)
LFUSE = ${LFUSE_CRYSTAL}
LFUSE = ${LFUSE_CRYSTAL}
endif
endif
ifeq (${OSCILLATOR},LowPower)
ifeq (${OSCILLATOR},LowPower)
LFUSE = ${LFUSE_LOWPOWER}
LFUSE = ${LFUSE_LOWPOWER}
endif
endif
# check fuses
# check fuses
FUSES =
FUSES =
ifneq ($(strip ${LFUSE}),)
ifneq ($(strip ${LFUSE}),)
ifneq ($(strip ${HFUSE}),)
ifneq ($(strip ${HFUSE}),)
FUSES = ${LFUSE} ${HFUSE} ${EFUSE}
FUSES = ${LFUSE} ${HFUSE} ${EFUSE}
endif
endif
endif
endif
# set fuses
# set fuses
fuses:
fuses:
ifeq ($(strip ${FUSES}),)
ifeq ($(strip ${FUSES}),)
@echo Invalid fuse settings!
@echo Invalid fuse settings!
else
else
avrdude -c ${PROGRAMMER} -P ${PORT} -p ${PARTNO} ${OPTIONS} ${FUSES}
avrdude -c ${PROGRAMMER} -P ${PORT} -p ${PARTNO} ${OPTIONS} ${FUSES}
endif
endif
Différences enregistrées
Texte d'origine
Ouvrir un fichier
# # Makefile # # (c) 2012-2020 by Markus Reschke # based on code from Markus Frejek and Karl-Heinz Kübbeler # PROJECT = ComponentTester # # MCU settings # - Edit to match your setup! # # avr-gcc: MCU model # - ATmega 328/328P : atmega328 # - ATmega 328PB : atmega328pb # - ATmega 324P/324PA : atmega324p # - ATmega 640 : atmega640 # - ATmega 644/644P/644PA : atmega644 # - ATmega 1280 : atmega1280 # - ATmega 1284/1284P : atmega1284 # - ATmega 2560 : atmega2560 MCU = atmega644 # MCU freqency: # - 1MHz : 1 # - 8MHz : 8 # - 16MHz : 16 # - 20MHz : 20 FREQ = 8 # oscillator type # - internal RC oscillator : RC # - external full swing crystal : Crystal # - external low power crystal : LowPower OSCILLATOR = Crystal # oscillator start-up cycles # - Crystal and LowPower could also be 1024 or 256 based on fuse settings ifeq (${OSCILLATOR},RC) OSC_STARTUP = 6 endif ifeq (${OSCILLATOR},Crystal) OSC_STARTUP = 16384 endif ifeq (${OSCILLATOR},LowPower) OSC_STARTUP = 16384 endif # # avrdude settings # - Edit to match your setup! # # avrdude: part number of MCU # - ATmega 328 : m328 # - ATmega 328P : m328p # - ATmega 328PB : m328pb # - ATmega 324P : m324p # - ATmega 324PA : m324pa # - ATmega 640 : m640 # - ATmega 644 : m644 # - ATmega 644P : m644p # - ATmega 644PA : m644p # - ATmega 1280 : m1280 # - ATmega 1284 : m1284 # - ATmega 1284P : m1284p # - ATmega 2560 : m2560 PARTNO = m644p # avrdude: ISP programmer, port and options # Arduino as ISP #PROGRAMMER = stk500v1 #PORT = /dev/ttyACM0 #OPTIONS = -b 19200 # Bus Pirate #PROGRAMMER = buspirate #PORT = /dev/bus_pirate #OPTIONS = -B 10.0 # Diamex ALL-AVR/AVR-Prog #PROGRAMMER = avrispmkII #PORT = usb #OPTIONS = -B 1.0 # Pololu USB AVR Programmer #PROGRAMMER = stk500v2 #PORT = /dev/ttyACM0 #OPTIONS = -B 1.0 # USBasp PROGRAMMER = usbasp PORT = usb OPTIONS = -B 20 # USBtinyISP #PROGRAMMER = usbtiny #PORT = usb #OPTIONS = -B 5.0 # Arduino Uno bootloader via serial/USB #PROGRAMMER = arduino #PORT = /dev/ttyACM0 #OPTIONS = -D -b 115200 # Arduino Mega2560 bootloader via serial/USB #PROGRAMMER = wiring #PORT = /dev/ttyACM0 #OPTIONS = -D -b 115200 # # global settings # # project name NAME = ComponentTesterAnis # name and version based on directory name DIST = $(notdir ${CURDIR}) # compiler flags CC = avr-gcc CPP = avr-g++ CFLAGS = -mmcu=${MCU} -Wall -I. -Ibitmaps CFLAGS += -DF_CPU=${FREQ}000000UL CFLAGS += -DOSC_STARTUP=${OSC_STARTUP} CFLAGS += -gdwarf-2 -std=gnu99 -Os -mcall-prologues CFLAGS += -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums #CFLAGS += -flto CFLAGS += -MD -MP -MT $(*F).o -MF dep/$(@F).d # linker flags LDFLAGS = -mmcu=${MCU} -Wl,-Map=${NAME}.map # hex file flags HEX_FLASH_FLAGS = -R .eeprom -R .fuse -R .lock -R .signature HEX_EEPROM_FLAGS = -j .eeprom HEX_EEPROM_FLAGS += --set-section-flags=.eeprom="alloc,load" HEX_EEPROM_FLAGS += --change-section-lma .eeprom=0 --no-change-warnings # header files HEADERS = config.h config_328.h config_644.h config_1280.h HEADERS += colors.h common.h functions.h variables.h $(wildcard var_*.h) HEADERS += OneWire.h ADS7843.h HEADERS += HD44780.h ILI9163.h ILI9341.h ILI9481.h ILI9486.h ILI9488.h HEADERS += PCD8544.h PCF8814.h SH1106.h SSD1306.h HEADERS += ST7036.h ST7565R.h ST7735.h ST7920.h STE2007.h # objects OBJECTS_C = main.o user.o pause.o adjust.o ADC.o probes.o display.o OBJECTS_C += resistor.o cap.o semi.o inductor.o OBJECTS_C += tools_misc.o tools_signal.o tools_LC_Meter.o OBJECTS_C += SPI.o I2C.o serial.o commands.o OneWire.o OBJECTS_C += IR_RX.o IR_TX.o DHTxx.o ADS7843.o OBJECTS_C += HD44780.o ILI9163.o ILI9341.o ILI9481.o ILI9486.o ILI9488.o OBJECTS_C += PCD8544.o PCF8814.o SH1106.o SSD1306.o OBJECTS_C += ST7036.o ST7565R.o ST7735.o ST7920.o OBJECTS_C += STE2007.o VT100.o TestDisplay.o OBJECTS_S = wait.o OBJECTS = ${OBJECTS_C} ${OBJECTS_S} # # build # all: ${NAME} ${NAME}.hex ${NAME}.eep ${NAME}.lss size # # link # # link firmware $(NAME): ${OBJECTS} ${CC} ${LDFLAGS} ${OBJECTS} ${LIBDIRS} ${LIBS} -o ${NAME} # create hex file of firmware %.hex: ${NAME} avr-objcopy -O ihex ${HEX_FLASH_FLAGS} $< $@ # create hex file of EEPROM data %.eep: ${NAME} -avr-objcopy ${HEX_EEPROM_FLAGS} -O ihex $< $@ || exit 0 # create dump of firmware %.lss: ${NAME} avr-objdump -h -S $< > $@ # output size of firmware and stuff size: ${NAME} @echo @avr-size -C --mcu=${MCU} $< # # compile source files # # rule for all c-files ${OBJECTS_C}: %.o: %.c ${HEADERS} ${MAKEFILE_LIST} ${CC} ${CFLAGS} -c ${@:.o=.c} # rule for all S-files ${OBJECTS_S}: %.o: %.S ${HEADERS} ${MAKEFILE_LIST} ${CC} ${CFLAGS} -c ${@:.o=.S} # external dependencies -include $(shell mkdir dep 2>/dev/null) $(wildcard dep/*) # # extras # # program firmware and EEPROM data upload: ${NAME} ${NAME}.hex ${NAME}.eep ${NAME}.lss size avrdude -c ${PROGRAMMER} -P ${PORT} -p ${PARTNO} ${OPTIONS} \ -U flash:w:./${NAME}.hex:a -U eeprom:w:./${NAME}.eep:a # program firmware only prog_fw: ${NAME} ${NAME}.hex ${NAME}.lss size avrdude -c ${PROGRAMMER} -P ${PORT} -p ${PARTNO} ${OPTIONS} \ -U flash:w:./${NAME}.hex:a # program EEPROM data only prog_ee: ${NAME} ${NAME}.eep ${NAME}.lss size avrdude -c ${PROGRAMMER} -P ${PORT} -p ${PARTNO} ${OPTIONS} \ -U eeprom:w:./${NAME}.eep:a # create distribution package dist: rm -f *.tgz cd ..; tar -czf ${DIST}/${DIST}.tgz \ ${DIST}/*.h ${DIST}/*.c ${DIST}/*.S ${DIST}/bitmaps/*.h \ ${DIST}/Makefile ${DIST}/README ${DIST}/CHANGES \ ${DIST}/README.de ${DIST}/CHANGES.de ${DIST}/Clones \ ${DIST}/*.pdf # clean up clean: -rm -rf ${OBJECTS} ${NAME} dep/* *.tgz -rm -rf ${NAME}.hex ${NAME}.eep ${NAME}.lss ${NAME}.map # # MCU fuses # # ATmega 328/328P ifeq (${MCU},atmega328) FAMILY = atmega328_324_640 endif # ATmega 328PB ifeq (${MCU},atmega328pb) FAMILY = atmega328pb endif # ATmega 324P/324PA ifeq (${MCU},atmega324p) FAMILY = atmega328_324_640 endif # ATmega 640 ifeq (${MCU},atmega640) FAMILY = atmega328_324_640 endif # ATmega 644/644P/644PA ifeq (${MCU},atmega644) FAMILY = atmega328_324_640 endif # ATmega 1280 ifeq (${MCU},atmega1280) FAMILY = atmega328_324_640 endif # ATmega 1284/1284P ifeq (${MCU},atmega1284) FAMILY = atmega328_324_640 endif # ATmega 2560 ifeq (${MCU},atmega2560) FAMILY = atmega328_324_640 endif # ATmega 328/324/640/644/1280/1284/2560 ifeq (${FAMILY},atmega328_324_640) # high byte: use default settings, disable JTAG HFUSE = -U hfuse:w:0xd9:m # extended byte: BOD level 4.3V EFUSE = -U efuse:w:0xfc:m # low byte: clock settings ifeq (${FREQ},1) # internal RC oscillator (8MHz) and /1 clock divider LFUSE_RC = -U lfuse:w:0x62:m # external 8MHz full swing crystal and /8 clock divider LFUSE_CRYSTAL = -U lfuse:w:0x77:m # external 8MHz low power crystal and /8 clock divider LFUSE_LOWPOWER = -U lfuse:w:0x7f:m endif ifeq (${FREQ},8) # internal RC oscillator (8MHz) and /1 clock divider LFUSE_RC = -U lfuse:w:0xe2:m # external 8MHz full swing crystal and /1 clock divider LFUSE_CRYSTAL = -U lfuse:w:0xf7:m # external 8MHz low power crystal and /1 clock divider LFUSE_LOWPOWER = -U lfuse:w:0xff:m endif ifeq (${FREQ},16) # internal RC oscillator (8MHz) not possible LFUSE_RC = # external 16MHz full swing crystal and /1 clock divider LFUSE_CRYSTAL = -U lfuse:w:0xf7:m # external 16MHz low power crystal and /1 clock divider LFUSE_LOWPOWER = -U lfuse:w:0xff:m endif ifeq (${FREQ},20) # internal RC oscillator (8MHz) not possible LFUSE_RC = # external 20MHz full swing crystal and /1 clock divider LFUSE_CRYSTAL = -U lfuse:w:0xf7:m # external 20MHz low power crystal and /1 clock divider LFUSE_LOWPOWER = -U lfuse:w:0xff:m endif endif # ATmega 328PB ifeq (${FAMILY},atmega328pb) # high byte: use default settings HFUSE = -U hfuse:w:0xd9:m # extended byte: BOD level 4.3V, CFD disabled EFUSE = -U efuse:w:0xf4:m # low byte: clock settings ifeq (${FREQ},8) # internal RC oscillator (8MHz) and /1 clock divider LFUSE_RC = -U lfuse:w:0xe2:m # full swing crystal not supported, use low power crystal LFUSE_CRYSTAL = -U lfuse:w:0xff:m # external 8MHz low power crystal and /1 clock divider LFUSE_LOWPOWER = -U lfuse:w:0xff:m endif ifeq (${FREQ},16) # internal RC oscillator (8MHz) not possible LFUSE_RC = # full swing crystal not supported, use low power crystal LFUSE_CRYSTAL = -U lfuse:w:0xff:m # external 16MHz low power crystal and /1 clock divider LFUSE_LOWPOWER = -U lfuse:w:0xff:m endif endif # select low fuse byte ifeq (${OSCILLATOR},RC) LFUSE = ${LFUSE_RC} endif ifeq (${OSCILLATOR},Crystal) LFUSE = ${LFUSE_CRYSTAL} endif ifeq (${OSCILLATOR},LowPower) LFUSE = ${LFUSE_LOWPOWER} endif # check fuses FUSES = ifneq ($(strip ${LFUSE}),) ifneq ($(strip ${HFUSE}),) FUSES = ${LFUSE} ${HFUSE} ${EFUSE} endif endif # set fuses fuses: ifeq ($(strip ${FUSES}),) @echo Invalid fuse settings! else avrdude -c ${PROGRAMMER} -P ${PORT} -p ${PARTNO} ${OPTIONS} ${FUSES} endif
Texte modifié
Ouvrir un fichier
# # Makefile # # (c) 2012-2020 by Markus Reschke # based on code from Markus Frejek and Karl-Heinz Kübbeler # PROJECT = ComponentTester # # MCU settings # - Edit to match your setup! # # avr-gcc: MCU model # - ATmega 328/328P : atmega328 # - ATmega 328PB : atmega328pb # - ATmega 324P/324PA : atmega324p # - ATmega 640 : atmega640 # - ATmega 644/644P/644PA : atmega644 # - ATmega 1280 : atmega1280 # - ATmega 1284/1284P : atmega1284 # - ATmega 2560 : atmega2560 MCU = atmega644 # MCU freqency: # - 1MHz : 1 # - 8MHz : 8 # - 16MHz : 16 # - 20MHz : 20 FREQ = 8 # oscillator type # - internal RC oscillator : RC # - external full swing crystal : Crystal # - external low power crystal : LowPower OSCILLATOR = Crystal # oscillator start-up cycles # - Crystal and LowPower could also be 1024 or 256 based on fuse settings ifeq (${OSCILLATOR},RC) OSC_STARTUP = 6 endif ifeq (${OSCILLATOR},Crystal) OSC_STARTUP = 16384 endif ifeq (${OSCILLATOR},LowPower) OSC_STARTUP = 16384 endif # # avrdude settings # - Edit to match your setup! # # avrdude: part number of MCU # - ATmega 328 : m328 # - ATmega 328P : m328p # - ATmega 328PB : m328pb # - ATmega 324P : m324p # - ATmega 324PA : m324pa # - ATmega 640 : m640 # - ATmega 644 : m644 # - ATmega 644P : m644p # - ATmega 644PA : m644p # - ATmega 1280 : m1280 # - ATmega 1284 : m1284 # - ATmega 1284P : m1284p # - ATmega 2560 : m2560 PARTNO = m644p # avrdude: ISP programmer, port and options # Arduino as ISP #PROGRAMMER = stk500v1 #PORT = /dev/ttyACM0 #OPTIONS = -b 19200 # Bus Pirate #PROGRAMMER = buspirate #PORT = /dev/bus_pirate #OPTIONS = -B 10.0 # Diamex ALL-AVR/AVR-Prog #PROGRAMMER = avrispmkII #PORT = usb OPTIONS = -B 1.0 # Pololu USB AVR Programmer #PROGRAMMER = stk500v2 #PORT = /dev/ttyACM0 #OPTIONS = -B 1.0 # USBasp PROGRAMMER = usbasp PORT = usb OPTIONS = -B 20 # USBtinyISP #PROGRAMMER = usbtiny #PORT = usb #OPTIONS = -B 5.0 # Arduino Uno bootloader via serial/USB #PROGRAMMER = arduino #PORT = /dev/ttyACM0 #OPTIONS = -D -b 115200 # Arduino Mega2560 bootloader via serial/USB #PROGRAMMER = wiring #PORT = /dev/ttyACM0 #OPTIONS = -D -b 115200 # # global settings # # project name NAME = ComponentTester # name and version based on directory name DIST = $(notdir ${CURDIR}) # compiler flags CC = avr-gcc CPP = avr-g++ CFLAGS = -mmcu=${MCU} -Wall -I. -Ibitmaps CFLAGS += -DF_CPU=${FREQ}000000UL CFLAGS += -DOSC_STARTUP=${OSC_STARTUP} CFLAGS += -gdwarf-2 -std=gnu99 -Os -mcall-prologues CFLAGS += -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums #CFLAGS += -flto CFLAGS += -MD -MP -MT $(*F).o -MF dep/$(@F).d # linker flags LDFLAGS = -mmcu=${MCU} -Wl,-Map=${NAME}.map # hex file flags HEX_FLASH_FLAGS = -R .eeprom -R .fuse -R .lock -R .signature HEX_EEPROM_FLAGS = -j .eeprom HEX_EEPROM_FLAGS += --set-section-flags=.eeprom="alloc,load" HEX_EEPROM_FLAGS += --change-section-lma .eeprom=0 --no-change-warnings # header files HEADERS = config.h config_328.h config_644.h config_1280.h HEADERS += colors.h common.h functions.h variables.h $(wildcard var_*.h) HEADERS += OneWire.h ADS7843.h HEADERS += HD44780.h ILI9163.h ILI9341.h ILI9481.h ILI9486.h ILI9488.h HEADERS += PCD8544.h PCF8814.h SH1106.h SSD1306.h HEADERS += ST7036.h ST7565R.h ST7735.h ST7920.h STE2007.h # objects OBJECTS_C = main.o user.o pause.o adjust.o ADC.o probes.o display.o OBJECTS_C += resistor.o cap.o semi.o inductor.o OBJECTS_C += tools_misc.o tools_signal.o tools_LC_Meter.o OBJECTS_C += SPI.o I2C.o serial.o commands.o OneWire.o OBJECTS_C += IR_RX.o IR_TX.o DHTxx.o ADS7843.o OBJECTS_C += HD44780.o ILI9163.o ILI9341.o ILI9481.o ILI9486.o ILI9488.o OBJECTS_C += PCD8544.o PCF8814.o SH1106.o SSD1306.o OBJECTS_C += ST7036.o ST7565R.o ST7735.o ST7920.o OBJECTS_C += STE2007.o VT100.o TestDisplay.o OBJECTS_S = wait.o OBJECTS = ${OBJECTS_C} ${OBJECTS_S} # # build # all: ${NAME} ${NAME}.hex ${NAME}.eep ${NAME}.lss size # # link # # link firmware $(NAME): ${OBJECTS} ${CC} ${LDFLAGS} ${OBJECTS} ${LIBDIRS} ${LIBS} -o ${NAME} # create hex file of firmware %.hex: ${NAME} avr-objcopy -O ihex ${HEX_FLASH_FLAGS} $< $@ # create hex file of EEPROM data %.eep: ${NAME} -avr-objcopy ${HEX_EEPROM_FLAGS} -O ihex $< $@ || exit 0 # create dump of firmware %.lss: ${NAME} avr-objdump -h -S $< > $@ # output size of firmware and stuff size: ${NAME} @echo @avr-size -C --mcu=${MCU} $< # # compile source files # # rule for all c-files ${OBJECTS_C}: %.o: %.c ${HEADERS} ${MAKEFILE_LIST} ${CC} ${CFLAGS} -c ${@:.o=.c} # rule for all S-files ${OBJECTS_S}: %.o: %.S ${HEADERS} ${MAKEFILE_LIST} ${CC} ${CFLAGS} -c ${@:.o=.S} # external dependencies -include $(shell mkdir dep 2>/dev/null) $(wildcard dep/*) # # extras # # program firmware and EEPROM data upload: ${NAME} ${NAME}.hex ${NAME}.eep ${NAME}.lss size avrdude -c ${PROGRAMMER} -P ${PORT} -p ${PARTNO} ${OPTIONS} \ -U flash:w:./${NAME}.hex:a -U eeprom:w:./${NAME}.eep:a # program firmware only prog_fw: ${NAME} ${NAME}.hex ${NAME}.lss size avrdude -c ${PROGRAMMER} -P ${PORT} -p ${PARTNO} ${OPTIONS} \ -U flash:w:./${NAME}.hex:a # program EEPROM data only prog_ee: ${NAME} ${NAME}.eep ${NAME}.lss size avrdude -c ${PROGRAMMER} -P ${PORT} -p ${PARTNO} ${OPTIONS} \ -U eeprom:w:./${NAME}.eep:a # create distribution package dist: rm -f *.tgz cd ..; tar -czf ${DIST}/${DIST}.tgz \ ${DIST}/*.h ${DIST}/*.c ${DIST}/*.S ${DIST}/bitmaps/*.h \ ${DIST}/Makefile ${DIST}/README ${DIST}/CHANGES \ ${DIST}/README.de ${DIST}/CHANGES.de ${DIST}/Clones \ ${DIST}/*.pdf # clean up clean: -rm -rf ${OBJECTS} ${NAME} dep/* *.tgz -rm -rf ${NAME}.hex ${NAME}.eep ${NAME}.lss ${NAME}.map # # MCU fuses # # ATmega 328/328P ifeq (${MCU},atmega328) FAMILY = atmega328_324_640 endif # ATmega 328PB ifeq (${MCU},atmega328pb) FAMILY = atmega328pb endif # ATmega 324P/324PA ifeq (${MCU},atmega324p) FAMILY = atmega328_324_640 endif # ATmega 640 ifeq (${MCU},atmega640) FAMILY = atmega328_324_640 endif # ATmega 644/644P/644PA ifeq (${MCU},atmega644) FAMILY = atmega328_324_640 endif # ATmega 1280 ifeq (${MCU},atmega1280) FAMILY = atmega328_324_640 endif # ATmega 1284/1284P ifeq (${MCU},atmega1284) FAMILY = atmega328_324_640 endif # ATmega 2560 ifeq (${MCU},atmega2560) FAMILY = atmega328_324_640 endif # ATmega 328/324/640/644/1280/1284/2560 ifeq (${FAMILY},atmega328_324_640) # high byte: use default settings, disable JTAG HFUSE = -U hfuse:w:0xd9:m # extended byte: BOD level 4.3V EFUSE = -U efuse:w:0xfc:m # low byte: clock settings ifeq (${FREQ},1) # internal RC oscillator (8MHz) and /1 clock divider LFUSE_RC = -U lfuse:w:0x62:m # external 8MHz full swing crystal and /8 clock divider LFUSE_CRYSTAL = -U lfuse:w:0x77:m # external 8MHz low power crystal and /8 clock divider LFUSE_LOWPOWER = -U lfuse:w:0x7f:m endif ifeq (${FREQ},8) # internal RC oscillator (8MHz) and /1 clock divider LFUSE_RC = -U lfuse:w:0xe2:m # external 8MHz full swing crystal and /1 clock divider LFUSE_CRYSTAL = -U lfuse:w:0xf7:m # external 8MHz low power crystal and /1 clock divider LFUSE_LOWPOWER = -U lfuse:w:0xff:m endif ifeq (${FREQ},16) # internal RC oscillator (8MHz) not possible LFUSE_RC = # external 16MHz full swing crystal and /1 clock divider LFUSE_CRYSTAL = -U lfuse:w:0xf7:m # external 16MHz low power crystal and /1 clock divider LFUSE_LOWPOWER = -U lfuse:w:0xff:m endif ifeq (${FREQ},20) # internal RC oscillator (8MHz) not possible LFUSE_RC = # external 20MHz full swing crystal and /1 clock divider LFUSE_CRYSTAL = -U lfuse:w:0xf7:m # external 20MHz low power crystal and /1 clock divider LFUSE_LOWPOWER = -U lfuse:w:0xff:m endif endif # ATmega 328PB ifeq (${FAMILY},atmega328pb) # high byte: use default settings HFUSE = -U hfuse:w:0xd9:m # extended byte: BOD level 4.3V, CFD disabled EFUSE = -U efuse:w:0xf4:m # low byte: clock settings ifeq (${FREQ},8) # internal RC oscillator (8MHz) and /1 clock divider LFUSE_RC = -U lfuse:w:0xe2:m # full swing crystal not supported, use low power crystal LFUSE_CRYSTAL = -U lfuse:w:0xff:m # external 8MHz low power crystal and /1 clock divider LFUSE_LOWPOWER = -U lfuse:w:0xff:m endif ifeq (${FREQ},16) # internal RC oscillator (8MHz) not possible LFUSE_RC = # full swing crystal not supported, use low power crystal LFUSE_CRYSTAL = -U lfuse:w:0xff:m # external 16MHz low power crystal and /1 clock divider LFUSE_LOWPOWER = -U lfuse:w:0xff:m endif endif # select low fuse byte ifeq (${OSCILLATOR},RC) LFUSE = ${LFUSE_RC} endif ifeq (${OSCILLATOR},Crystal) LFUSE = ${LFUSE_CRYSTAL} endif ifeq (${OSCILLATOR},LowPower) LFUSE = ${LFUSE_LOWPOWER} endif # check fuses FUSES = ifneq ($(strip ${LFUSE}),) ifneq ($(strip ${HFUSE}),) FUSES = ${LFUSE} ${HFUSE} ${EFUSE} endif endif # set fuses fuses: ifeq ($(strip ${FUSES}),) @echo Invalid fuse settings! else avrdude -c ${PROGRAMMER} -P ${PORT} -p ${PARTNO} ${OPTIONS} ${FUSES} endif
Trouver la différence