Added pendulum
This commit is contained in:
parent
4c816c87bf
commit
0f2b6c2e30
3
sketches/pendulum/.dep/color_hsv.o.d
Normal file
3
sketches/pendulum/.dep/color_hsv.o.d
Normal file
@ -0,0 +1,3 @@
|
||||
color_hsv.o: color_hsv.c color_hsv.h
|
||||
|
||||
color_hsv.h:
|
3
sketches/pendulum/.dep/pendulum.o.d
Normal file
3
sketches/pendulum/.dep/pendulum.o.d
Normal file
@ -0,0 +1,3 @@
|
||||
pendulum.o: pendulum.c color_hsv.h
|
||||
|
||||
color_hsv.h:
|
621
sketches/pendulum/Makefile
Normal file
621
sketches/pendulum/Makefile
Normal file
@ -0,0 +1,621 @@
|
||||
# $ cat ~/windows/Makefile.glove
|
||||
# Hey Emacs, this is a -*- makefile -*-
|
||||
#----------------------------------------------------------------------------
|
||||
# WinAVR Makefile Template written by Eric B. Weddington, J<>rg Wunsch, et al.
|
||||
#
|
||||
# Released to the Public Domain
|
||||
#
|
||||
# Additional material for this makefile was written by:
|
||||
# Peter Fleury
|
||||
# Tim Henigan
|
||||
# Colin O'Flynn
|
||||
# Reiner Patommel
|
||||
# Markus Pfaff
|
||||
# Sander Pool
|
||||
# Frederik Rouleau
|
||||
# Carlos Lamas
|
||||
#
|
||||
#----------------------------------------------------------------------------
|
||||
# On command line:
|
||||
#
|
||||
# make all = Make software.
|
||||
#
|
||||
# make clean = Clean out built project files.
|
||||
#
|
||||
# make coff = Convert ELF to AVR COFF.
|
||||
#
|
||||
# make extcoff = Convert ELF to AVR Extended COFF.
|
||||
#
|
||||
# make program = Download the hex file to the device, using avrdude.
|
||||
# Please customize the avrdude settings below first!
|
||||
#
|
||||
# make debug = Start either simulavr or avarice as specified for debugging,
|
||||
# with avr-gdb or avr-insight as the front end for debugging.
|
||||
#
|
||||
# make filename.s = Just compile filename.c into the assembler code only.
|
||||
#
|
||||
# make filename.i = Create a preprocessed source file for use in submitting
|
||||
# bug reports to the GCC project.
|
||||
#
|
||||
# To rebuild project do "make clean" then "make all".
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
|
||||
# MCU name
|
||||
MCU = atmega328p
|
||||
|
||||
|
||||
# Processor frequency.
|
||||
# This will define a symbol, F_CPU, in all source code files equal to the
|
||||
# processor frequency. You can then use this symbol in your source code to
|
||||
# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
|
||||
# automatically to create a 32-bit value in your source code.
|
||||
# Typical values are:
|
||||
# F_CPU = 1000000
|
||||
# F_CPU = 1843200
|
||||
# F_CPU = 2000000
|
||||
# F_CPU = 3686400
|
||||
# F_CPU = 4000000
|
||||
# F_CPU = 7372800
|
||||
# F_CPU = 8000000
|
||||
# F_CPU = 11059200
|
||||
# F_CPU = 14745600
|
||||
# F_CPU = 16000000
|
||||
# F_CPU = 18432000
|
||||
# F_CPU = 20000000
|
||||
F_CPU = 20000000
|
||||
|
||||
|
||||
# Output format. (can be srec, ihex, binary)
|
||||
FORMAT = ihex
|
||||
|
||||
|
||||
# Target file name (without extension).
|
||||
TARGET = pendulum
|
||||
|
||||
|
||||
# Object files directory
|
||||
# To put object files in current directory, use a dot (.), do NOT make
|
||||
# this an empty or blank macro!
|
||||
OBJDIR = .
|
||||
|
||||
|
||||
# List C source files here. (C dependencies are automatically generated.)
|
||||
SRC = ${wildcard *.c}
|
||||
|
||||
|
||||
# List C++ source files here. (C dependencies are automatically generated.)
|
||||
CPPSRC =
|
||||
|
||||
|
||||
# List Assembler source files here.
|
||||
# Make them always end in a capital .S. Files ending in a lowercase .s
|
||||
# will not be considered source files but generated files (assembler
|
||||
# output from the compiler), and will be deleted upon "make clean"!
|
||||
# Even though the DOS/Win* filesystem matches both .s and .S the same,
|
||||
# it will preserve the spelling of the filenames, and gcc itself does
|
||||
# care about how the name is spelled on its command-line.
|
||||
ASRC =
|
||||
|
||||
|
||||
# Optimization level, can be [0, 1, 2, 3, s].
|
||||
# 0 = turn off optimization. s = optimize for size.
|
||||
# (Note: 3 is not always the best optimization level. See avr-libc FAQ.)
|
||||
OPT = s
|
||||
|
||||
|
||||
# Debugging format.
|
||||
# Native formats for AVR-GCC's -g are dwarf-2 [default] or stabs.
|
||||
# AVR Studio 4.10 requires dwarf-2.
|
||||
# AVR [Extended] COFF format requires stabs, plus an avr-objcopy run.
|
||||
DEBUG =
|
||||
|
||||
|
||||
# List any extra directories to look for include files here.
|
||||
# Each directory must be seperated by a space.
|
||||
# Use forward slashes for directory separators.
|
||||
# For a directory that has spaces, enclose it in quotes.
|
||||
EXTRAINCDIRS =
|
||||
|
||||
|
||||
# Compiler flag to set the C Standard level.
|
||||
# c89 = "ANSI" C
|
||||
# gnu89 = c89 plus GCC extensions
|
||||
# c99 = ISO C99 standard (not yet fully implemented)
|
||||
# gnu99 = c99 plus GCC extensions
|
||||
CSTANDARD = -std=c11
|
||||
|
||||
|
||||
# Place -D or -U options here for C sources
|
||||
CDEFS = -DF_CPU=$(F_CPU)UL
|
||||
|
||||
|
||||
# Place -D or -U options here for ASM sources
|
||||
ADEFS = -DF_CPU=$(F_CPU)
|
||||
|
||||
|
||||
# Place -D or -U options here for C++ sources
|
||||
CPPDEFS = -DF_CPU=$(F_CPU)UL
|
||||
#CPPDEFS += -D__STDC_LIMIT_MACROS
|
||||
#CPPDEFS += -D__STDC_CONSTANT_MACROS
|
||||
|
||||
|
||||
|
||||
#---------------- Compiler Options C ----------------
|
||||
# -g*: generate debugging information
|
||||
# -O*: optimization level
|
||||
# -f...: tuning, see GCC manual and avr-libc documentation
|
||||
# -Wall...: warning level
|
||||
# -Wa,...: tell GCC to pass this to the assembler.
|
||||
# -adhlns...: create assembler listing
|
||||
CFLAGS = -g$(DEBUG)
|
||||
CFLAGS += $(CDEFS)
|
||||
CFLAGS += -O$(OPT)
|
||||
CFLAGS += -funsigned-char
|
||||
CFLAGS += -funsigned-bitfields
|
||||
CFLAGS += -fpack-struct
|
||||
CFLAGS += -fshort-enums
|
||||
CFLAGS += -Wall
|
||||
CFLAGS += -Wstrict-prototypes
|
||||
#CFLAGS += -mshort-calls
|
||||
#CFLAGS += -fno-unit-at-a-time
|
||||
#CFLAGS += -Wundef
|
||||
#CFLAGS += -Wunreachable-code
|
||||
#CFLAGS += -Wsign-compare
|
||||
CFLAGS += -Wa,-adhlns=$(<:%.c=$(OBJDIR)/%.lst)
|
||||
CFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS))
|
||||
CFLAGS += $(CSTANDARD)
|
||||
|
||||
|
||||
#---------------- Compiler Options C++ ----------------
|
||||
# -g*: generate debugging information
|
||||
# -O*: optimization level
|
||||
# -f...: tuning, see GCC manual and avr-libc documentation
|
||||
# -Wall...: warning level
|
||||
# -Wa,...: tell GCC to pass this to the assembler.
|
||||
# -adhlns...: create assembler listing
|
||||
CPPFLAGS = -g$(DEBUG)
|
||||
CPPFLAGS += $(CPPDEFS)
|
||||
CPPFLAGS += -O$(OPT)
|
||||
CPPFLAGS += -funsigned-char
|
||||
CPPFLAGS += -funsigned-bitfields
|
||||
CPPFLAGS += -fpack-struct
|
||||
CPPFLAGS += -fshort-enums
|
||||
CPPFLAGS += -fno-exceptions
|
||||
CPPFLAGS += -Wall
|
||||
CPPFLAGS += -Wundef
|
||||
#CPPFLAGS += -mshort-calls
|
||||
#CPPFLAGS += -fno-unit-at-a-time
|
||||
#CPPFLAGS += -Wstrict-prototypes
|
||||
#CPPFLAGS += -Wunreachable-code
|
||||
#CPPFLAGS += -Wsign-compare
|
||||
CPPFLAGS += -Wa,-adhlns=$(<:%.cpp=$(OBJDIR)/%.lst)
|
||||
CPPFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS))
|
||||
#CPPFLAGS += $(CSTANDARD)
|
||||
|
||||
|
||||
#---------------- Assembler Options ----------------
|
||||
# -Wa,...: tell GCC to pass this to the assembler.
|
||||
# -adhlns: create listing
|
||||
# -gstabs: have the assembler create line number information; note that
|
||||
# for use in COFF files, additional information about filenames
|
||||
# and function names needs to be present in the assembler source
|
||||
# files -- see avr-libc docs [FIXME: not yet described there]
|
||||
# -listing-cont-lines: Sets the maximum number of continuation lines of hex
|
||||
# dump that will be displayed for a given single line of source input.
|
||||
ASFLAGS = $(ADEFS) -Wa,-adhlns=$(<:%.S=$(OBJDIR)/%.lst),-gstabs,--listing-cont-lines=100
|
||||
|
||||
|
||||
#---------------- Library Options ----------------
|
||||
# Minimalistic printf version
|
||||
PRINTF_LIB_MIN = -Wl,-u,vfprintf -lprintf_min
|
||||
|
||||
# Floating point printf version (requires MATH_LIB = -lm below)
|
||||
PRINTF_LIB_FLOAT = -Wl,-u,vfprintf -lprintf_flt
|
||||
|
||||
# If this is left blank, then it will use the Standard printf version.
|
||||
PRINTF_LIB =
|
||||
#PRINTF_LIB = $(PRINTF_LIB_MIN)
|
||||
#PRINTF_LIB = $(PRINTF_LIB_FLOAT)
|
||||
|
||||
|
||||
# Minimalistic scanf version
|
||||
SCANF_LIB_MIN = -Wl,-u,vfscanf -lscanf_min
|
||||
|
||||
# Floating point + %[ scanf version (requires MATH_LIB = -lm below)
|
||||
SCANF_LIB_FLOAT = -Wl,-u,vfscanf -lscanf_flt
|
||||
|
||||
# If this is left blank, then it will use the Standard scanf version.
|
||||
SCANF_LIB =
|
||||
#SCANF_LIB = $(SCANF_LIB_MIN)
|
||||
#SCANF_LIB = $(SCANF_LIB_FLOAT)
|
||||
|
||||
|
||||
MATH_LIB = -lm
|
||||
|
||||
|
||||
# List any extra directories to look for libraries here.
|
||||
# Each directory must be seperated by a space.
|
||||
# Use forward slashes for directory separators.
|
||||
# For a directory that has spaces, enclose it in quotes.
|
||||
EXTRALIBDIRS =
|
||||
|
||||
|
||||
|
||||
#---------------- External Memory Options ----------------
|
||||
|
||||
# 64 KB of external RAM, starting after internal RAM (ATmega128!),
|
||||
# used for variables (.data/.bss) and heap (malloc()).
|
||||
#EXTMEMOPTS = -Wl,-Tdata=0x801100,--defsym=__heap_end=0x80ffff
|
||||
|
||||
# 64 KB of external RAM, starting after internal RAM (ATmega128!),
|
||||
# only used for heap (malloc()).
|
||||
#EXTMEMOPTS = -Wl,--section-start,.data=0x801100,--defsym=__heap_end=0x80ffff
|
||||
|
||||
EXTMEMOPTS =
|
||||
|
||||
|
||||
|
||||
#---------------- Linker Options ----------------
|
||||
# -Wl,...: tell GCC to pass this to linker.
|
||||
# -Map: create map file
|
||||
# --cref: add cross reference to map file
|
||||
LDFLAGS = -Wl,-Map=$(TARGET).map,--cref
|
||||
LDFLAGS += $(EXTMEMOPTS)
|
||||
LDFLAGS += $(patsubst %,-L%,$(EXTRALIBDIRS))
|
||||
LDFLAGS += $(PRINTF_LIB) $(SCANF_LIB) $(MATH_LIB)
|
||||
#LDFLAGS += -T linker_script.x
|
||||
|
||||
|
||||
|
||||
#---------------- Programming Options (avrdude) ----------------
|
||||
|
||||
# Programming hardware
|
||||
# Type: avrdude -c ?
|
||||
# to get a full listing.
|
||||
#
|
||||
AVRDUDE_PROGRAMMER = stk500v2
|
||||
|
||||
# com1 = serial port. Use lpt1 to connect to parallel port.
|
||||
AVRDUDE_PORT = com1 # programmer connected to serial device
|
||||
|
||||
AVRDUDE_WRITE_FLASH = -U flash:w:$(TARGET).hex
|
||||
#AVRDUDE_WRITE_EEPROM = -U eeprom:w:$(TARGET).eep
|
||||
|
||||
|
||||
# Uncomment the following if you want avrdude's erase cycle counter.
|
||||
# Note that this counter needs to be initialized first using -Yn,
|
||||
# see avrdude manual.
|
||||
#AVRDUDE_ERASE_COUNTER = -y
|
||||
|
||||
# Uncomment the following if you do /not/ wish a verification to be
|
||||
# performed after programming the device.
|
||||
#AVRDUDE_NO_VERIFY = -V
|
||||
|
||||
# Increase verbosity level. Please use this when submitting bug
|
||||
# reports about avrdude. See <http://savannah.nongnu.org/projects/avrdude>
|
||||
# to submit bug reports.
|
||||
#AVRDUDE_VERBOSE = -v -v
|
||||
|
||||
AVRDUDE_FLAGS = -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER)
|
||||
AVRDUDE_FLAGS += $(AVRDUDE_NO_VERIFY)
|
||||
AVRDUDE_FLAGS += $(AVRDUDE_VERBOSE)
|
||||
AVRDUDE_FLAGS += $(AVRDUDE_ERASE_COUNTER)
|
||||
|
||||
|
||||
|
||||
#---------------- Debugging Options ----------------
|
||||
|
||||
# For simulavr only - target MCU frequency.
|
||||
DEBUG_MFREQ = $(F_CPU)
|
||||
|
||||
# Set the DEBUG_UI to either gdb or insight.
|
||||
# DEBUG_UI = gdb
|
||||
DEBUG_UI = insight
|
||||
|
||||
# Set the debugging back-end to either avarice, simulavr.
|
||||
DEBUG_BACKEND = avarice
|
||||
#DEBUG_BACKEND = simulavr
|
||||
|
||||
# GDB Init Filename.
|
||||
GDBINIT_FILE = __avr_gdbinit
|
||||
|
||||
# When using avarice settings for the JTAG
|
||||
JTAG_DEV = /dev/com1
|
||||
|
||||
# Debugging port used to communicate between GDB / avarice / simulavr.
|
||||
DEBUG_PORT = 4242
|
||||
|
||||
# Debugging host used to communicate between GDB / avarice / simulavr, normally
|
||||
# just set to localhost unless doing some sort of crazy debugging when
|
||||
# avarice is running on a different computer.
|
||||
DEBUG_HOST = localhost
|
||||
|
||||
|
||||
|
||||
#============================================================================
|
||||
|
||||
|
||||
# Define programs and commands.
|
||||
SHELL = sh
|
||||
CC = avr-gcc
|
||||
OBJCOPY = avr-objcopy
|
||||
OBJDUMP = avr-objdump
|
||||
SIZE = avr-size
|
||||
AR = avr-ar rcs
|
||||
NM = avr-nm
|
||||
AVRDUDE = avrdude
|
||||
REMOVE = rm -f
|
||||
REMOVEDIR = rm -rf
|
||||
COPY = cp
|
||||
WINSHELL = cmd
|
||||
|
||||
|
||||
# Define Messages
|
||||
# English
|
||||
MSG_ERRORS_NONE = Errors: none
|
||||
MSG_BEGIN = -------- begin --------
|
||||
MSG_END = -------- end --------
|
||||
MSG_SIZE_BEFORE = Size before:
|
||||
MSG_SIZE_AFTER = Size after:
|
||||
MSG_COFF = Converting to AVR COFF:
|
||||
MSG_EXTENDED_COFF = Converting to AVR Extended COFF:
|
||||
MSG_FLASH = Creating load file for Flash:
|
||||
MSG_EEPROM = Creating load file for EEPROM:
|
||||
MSG_EXTENDED_LISTING = Creating Extended Listing:
|
||||
MSG_SYMBOL_TABLE = Creating Symbol Table:
|
||||
MSG_LINKING = Linking:
|
||||
MSG_COMPILING = Compiling C:
|
||||
MSG_COMPILING_CPP = Compiling C++:
|
||||
MSG_ASSEMBLING = Assembling:
|
||||
MSG_CLEANING = Cleaning project:
|
||||
MSG_CREATING_LIBRARY = Creating library:
|
||||
|
||||
|
||||
|
||||
|
||||
# Define all object files.
|
||||
OBJ = $(SRC:%.c=$(OBJDIR)/%.o) $(CPPSRC:%.cpp=$(OBJDIR)/%.o) $(ASRC:%.S=$(OBJDIR)/%.o)
|
||||
|
||||
# Define all listing files.
|
||||
LST = $(SRC:%.c=$(OBJDIR)/%.lst) $(CPPSRC:%.cpp=$(OBJDIR)/%.lst) $(ASRC:%.S=$(OBJDIR)/%.lst)
|
||||
|
||||
|
||||
# Compiler flags to generate dependency files.
|
||||
GENDEPFLAGS = -MMD -MP -MF .dep/$(@F).d
|
||||
|
||||
|
||||
# Combine all necessary flags and optional flags.
|
||||
# Add target processor to flags.
|
||||
ALL_CFLAGS = -mmcu=$(MCU) -I. $(CFLAGS) $(GENDEPFLAGS)
|
||||
ALL_CPPFLAGS = -mmcu=$(MCU) -I. -x c++ $(CPPFLAGS) $(GENDEPFLAGS)
|
||||
ALL_ASFLAGS = -mmcu=$(MCU) -I. -x assembler-with-cpp $(ASFLAGS)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# Default target.
|
||||
all: begin gccversion sizebefore build sizeafter end
|
||||
|
||||
# Change the build target to build a HEX file or a library.
|
||||
build: elf hex eep lss sym
|
||||
#build: lib
|
||||
|
||||
|
||||
elf: $(TARGET).elf
|
||||
hex: $(TARGET).hex
|
||||
eep: $(TARGET).eep
|
||||
lss: $(TARGET).lss
|
||||
sym: $(TARGET).sym
|
||||
LIBNAME=lib$(TARGET).a
|
||||
lib: $(LIBNAME)
|
||||
|
||||
|
||||
|
||||
# Eye candy.
|
||||
# AVR Studio 3.x does not check make's exit code but relies on
|
||||
# the following magic strings to be generated by the compile job.
|
||||
begin:
|
||||
@echo
|
||||
@echo $(MSG_BEGIN)
|
||||
|
||||
end:
|
||||
@echo $(MSG_END)
|
||||
@echo
|
||||
|
||||
|
||||
# Display size of file.
|
||||
HEXSIZE = $(SIZE) --target=$(FORMAT) $(TARGET).hex
|
||||
ELFSIZE = $(SIZE) --mcu=$(MCU) --format=avr $(TARGET).elf
|
||||
|
||||
sizebefore:
|
||||
@if test -f $(TARGET).elf; then echo; echo $(MSG_SIZE_BEFORE); $(ELFSIZE); \
|
||||
2>/dev/null; echo; fi
|
||||
|
||||
sizeafter:
|
||||
@if test -f $(TARGET).elf; then echo; echo $(MSG_SIZE_AFTER); $(ELFSIZE); \
|
||||
2>/dev/null; echo; fi
|
||||
|
||||
|
||||
|
||||
# Display compiler version information.
|
||||
gccversion :
|
||||
@$(CC) --version
|
||||
|
||||
|
||||
|
||||
# Program the device.
|
||||
program: $(TARGET).hex $(TARGET).eep
|
||||
$(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_FLASH) $(AVRDUDE_WRITE_EEPROM)
|
||||
|
||||
|
||||
# Generate avr-gdb config/init file which does the following:
|
||||
# define the reset signal, load the target file, connect to target, and set
|
||||
# a breakpoint at main().
|
||||
gdb-config:
|
||||
@$(REMOVE) $(GDBINIT_FILE)
|
||||
@echo define reset >> $(GDBINIT_FILE)
|
||||
@echo SIGNAL SIGHUP >> $(GDBINIT_FILE)
|
||||
@echo end >> $(GDBINIT_FILE)
|
||||
@echo file $(TARGET).elf >> $(GDBINIT_FILE)
|
||||
@echo target remote $(DEBUG_HOST):$(DEBUG_PORT) >> $(GDBINIT_FILE)
|
||||
ifeq ($(DEBUG_BACKEND),simulavr)
|
||||
@echo load >> $(GDBINIT_FILE)
|
||||
endif
|
||||
@echo break main >> $(GDBINIT_FILE)
|
||||
|
||||
debug: gdb-config $(TARGET).elf
|
||||
ifeq ($(DEBUG_BACKEND), avarice)
|
||||
@echo Starting AVaRICE - Press enter when "waiting to connect" message displays.
|
||||
@$(WINSHELL) /c start avarice --jtag $(JTAG_DEV) --erase --program --file \
|
||||
$(TARGET).elf $(DEBUG_HOST):$(DEBUG_PORT)
|
||||
@$(WINSHELL) /c pause
|
||||
|
||||
else
|
||||
@$(WINSHELL) /c start simulavr --gdbserver --device $(MCU) --clock-freq \
|
||||
$(DEBUG_MFREQ) --port $(DEBUG_PORT)
|
||||
endif
|
||||
@$(WINSHELL) /c start avr-$(DEBUG_UI) --command=$(GDBINIT_FILE)
|
||||
|
||||
|
||||
|
||||
|
||||
# Convert ELF to COFF for use in debugging / simulating in AVR Studio or VMLAB.
|
||||
COFFCONVERT = $(OBJCOPY) --debugging
|
||||
COFFCONVERT += --change-section-address .data-0x800000
|
||||
COFFCONVERT += --change-section-address .bss-0x800000
|
||||
COFFCONVERT += --change-section-address .noinit-0x800000
|
||||
COFFCONVERT += --change-section-address .eeprom-0x810000
|
||||
|
||||
|
||||
|
||||
coff: $(TARGET).elf
|
||||
@echo
|
||||
@echo $(MSG_COFF) $(TARGET).cof
|
||||
$(COFFCONVERT) -O coff-avr $< $(TARGET).cof
|
||||
|
||||
|
||||
extcoff: $(TARGET).elf
|
||||
@echo
|
||||
@echo $(MSG_EXTENDED_COFF) $(TARGET).cof
|
||||
$(COFFCONVERT) -O coff-ext-avr $< $(TARGET).cof
|
||||
|
||||
|
||||
|
||||
# Create final output files (.hex, .eep) from ELF output file.
|
||||
%.hex: %.elf
|
||||
@echo
|
||||
@echo $(MSG_FLASH) $@
|
||||
$(OBJCOPY) -O $(FORMAT) -R .eeprom -R .fuse -R .lock $< $@
|
||||
|
||||
%.eep: %.elf
|
||||
@echo
|
||||
@echo $(MSG_EEPROM) $@
|
||||
-$(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" \
|
||||
--change-section-lma .eeprom=0 --no-change-warnings -O $(FORMAT) $< $@ || exit 0
|
||||
|
||||
# Create extended listing file from ELF output file.
|
||||
%.lss: %.elf
|
||||
@echo
|
||||
@echo $(MSG_EXTENDED_LISTING) $@
|
||||
$(OBJDUMP) -h -S -z $< > $@
|
||||
|
||||
# Create a symbol table from ELF output file.
|
||||
%.sym: %.elf
|
||||
@echo
|
||||
@echo $(MSG_SYMBOL_TABLE) $@
|
||||
$(NM) -n $< > $@
|
||||
|
||||
|
||||
|
||||
# Create library from object files.
|
||||
.SECONDARY : $(TARGET).a
|
||||
.PRECIOUS : $(OBJ)
|
||||
%.a: $(OBJ)
|
||||
@echo
|
||||
@echo $(MSG_CREATING_LIBRARY) $@
|
||||
$(AR) $@ $(OBJ)
|
||||
|
||||
|
||||
# Link: create ELF output file from object files.
|
||||
.SECONDARY : $(TARGET).elf
|
||||
.PRECIOUS : $(OBJ)
|
||||
%.elf: $(OBJ)
|
||||
@echo
|
||||
@echo $(MSG_LINKING) $@
|
||||
$(CC) $(ALL_CFLAGS) $^ --output $@ $(LDFLAGS)
|
||||
|
||||
|
||||
# Compile: create object files from C source files.
|
||||
$(OBJDIR)/%.o : %.c
|
||||
@echo
|
||||
@echo $(MSG_COMPILING) $<
|
||||
$(CC) -c $(ALL_CFLAGS) $< -o $@
|
||||
|
||||
|
||||
# Compile: create object files from C++ source files.
|
||||
$(OBJDIR)/%.o : %.cpp
|
||||
@echo
|
||||
@echo $(MSG_COMPILING_CPP) $<
|
||||
$(CC) -c $(ALL_CPPFLAGS) $< -o $@
|
||||
|
||||
|
||||
# Compile: create assembler files from C source files.
|
||||
%.s : %.c
|
||||
$(CC) -S $(ALL_CFLAGS) $< -o $@
|
||||
|
||||
|
||||
# Compile: create assembler files from C++ source files.
|
||||
%.s : %.cpp
|
||||
$(CC) -S $(ALL_CPPFLAGS) $< -o $@
|
||||
|
||||
|
||||
# Assemble: create object files from assembler source files.
|
||||
$(OBJDIR)/%.o : %.S
|
||||
@echo
|
||||
@echo $(MSG_ASSEMBLING) $<
|
||||
$(CC) -c $(ALL_ASFLAGS) $< -o $@
|
||||
|
||||
|
||||
# Create preprocessed source for use in sending a bug report.
|
||||
%.i : %.c
|
||||
$(CC) -E -mmcu=$(MCU) -I. $(CFLAGS) $< -o $@
|
||||
|
||||
|
||||
# Target: clean project.
|
||||
clean: begin clean_list end
|
||||
|
||||
clean_list :
|
||||
@echo
|
||||
@echo $(MSG_CLEANING)
|
||||
$(REMOVE) $(TARGET).hex
|
||||
$(REMOVE) $(TARGET).eep
|
||||
$(REMOVE) $(TARGET).cof
|
||||
$(REMOVE) $(TARGET).elf
|
||||
$(REMOVE) $(TARGET).map
|
||||
$(REMOVE) $(TARGET).sym
|
||||
$(REMOVE) $(TARGET).lss
|
||||
$(REMOVE) $(SRC:%.c=$(OBJDIR)/%.o)
|
||||
$(REMOVE) $(SRC:%.c=$(OBJDIR)/%.lst)
|
||||
$(REMOVE) $(SRC:.c=.s)
|
||||
$(REMOVE) $(SRC:.c=.d)
|
||||
$(REMOVE) $(SRC:.c=.i)
|
||||
$(REMOVEDIR) .dep
|
||||
|
||||
|
||||
flash: pendulum.hex
|
||||
avrdude -p $(MCU) -c arduino -B 115200 -P /dev/ttyACM0 -v -v -e -Uflash:w:pendulum.hex:a
|
||||
|
||||
# Create object files directory
|
||||
$(shell mkdir $(OBJDIR) 2>/dev/null)
|
||||
|
||||
|
||||
# Include the dependency files.
|
||||
-include $(shell mkdir .dep 2>/dev/null) $(wildcard .dep/*)
|
||||
|
||||
|
||||
# Listing of phony targets.
|
||||
.PHONY : all begin finish end sizebefore sizeafter gccversion \
|
||||
build elf hex eep lss sym coff extcoff \
|
||||
clean clean_list program debug gdb-config
|
31
sketches/pendulum/Makefile_old
Normal file
31
sketches/pendulum/Makefile_old
Normal file
@ -0,0 +1,31 @@
|
||||
CFLAGS = -Os -Wall --std=c11 -g
|
||||
CHIP = atmega328p
|
||||
SOURCE_FILES = ${wildcard *.c}
|
||||
OBJ_FILES = $(SOURCE_FILES:%.c=%.o)
|
||||
BIN = pendulum.bin
|
||||
HEX = pendulum.hex
|
||||
ASM = pendulum.asm
|
||||
|
||||
default: $(HEX)
|
||||
|
||||
%.o: %.c
|
||||
avr-gcc $(CFLAGS) -mmcu=$(CHIP) -o $@ $<
|
||||
|
||||
$(BIN): $(OBJ_FILES)
|
||||
avr-gcc $(CFLAGS) -o $@ $^
|
||||
|
||||
$(ASM): $(BIN)
|
||||
avr-objdump -d -g -l -S $^ > $@
|
||||
|
||||
$(HEX): $(BIN)
|
||||
avr-objcopy -O ihex -j .text -j .data $^ $@
|
||||
|
||||
asm: $(ASM)
|
||||
|
||||
flash: $(HEX)
|
||||
avrdude -p $(CHIP) -c arduino -B 115200 -P /dev/ttyACM0 -v -v -e -Uflash:w:$(HEX):a
|
||||
|
||||
clean:
|
||||
$(RM) $(OBJ_FILES) $(BIN) $(HEX) $(ASM)
|
||||
|
||||
|
62
sketches/pendulum/color_hsv.c
Normal file
62
sketches/pendulum/color_hsv.c
Normal file
@ -0,0 +1,62 @@
|
||||
#include "color_hsv.h"
|
||||
|
||||
void interpolate(hsv_t start, hsv_t end, size_t steps, hsv_t *colors) {
|
||||
if( steps == 1 ) {
|
||||
colors[0] = start;
|
||||
return;
|
||||
}
|
||||
|
||||
for( size_t i = 0; i < steps; i++ ) {
|
||||
hsv_t tmp;
|
||||
tmp.hue = (uint16_t)((int16_t)start.hue + ((int16_t)end.hue - (int16_t)start.hue) * (int16_t)i / ((int16_t)steps-1));
|
||||
tmp.sat = (uint8_t)((int16_t)start.sat + ((int16_t)end.sat - (int16_t)start.sat) * (int16_t)i / ((int16_t)steps-1));
|
||||
tmp.val = (uint8_t)((int16_t)start.val + ((int16_t)end.val - (int16_t)start.val) * (int16_t)i / ((int16_t)steps-1));
|
||||
colors[i] = tmp;
|
||||
}
|
||||
}
|
||||
|
||||
void hsv2rgbList(hsv_t* hsvList, rgb_t* rgbList, size_t count) {
|
||||
for(size_t i = 0; i < count; ++i) {
|
||||
rgbList[i] = hsv2rgb(&hsvList[i]);
|
||||
}
|
||||
}
|
||||
|
||||
rgb_t hsv2rgb(hsv_t* hsv) {
|
||||
rgb_t res;
|
||||
|
||||
if(hsv->sat == 0) {
|
||||
res.r = res.g = res.b = hsv->val;
|
||||
} else {
|
||||
float hue = (float) (hsv->hue<360?hsv->hue:hsv->hue-360);
|
||||
float val = ((float) hsv->val ) / 100.0;
|
||||
float sat = ((float) hsv->sat ) / 100.0;
|
||||
|
||||
uint8_t h = hue / 60;
|
||||
float f = ( hue / 60 ) - h;
|
||||
|
||||
uint8_t p = RGB_MAX * ( val * ( 1 - sat ));
|
||||
uint8_t q = RGB_MAX * ( val * ( 1 - sat * f ));
|
||||
uint8_t t = RGB_MAX * ( val * ( 1 - sat * ( 1 - f )));
|
||||
|
||||
switch(h) {
|
||||
case 0:
|
||||
case 6: res.r = hsv->val; res.g = t; res.b = p; break;
|
||||
case 1: res.r = q; res.g = hsv->val; res.b = p; break;
|
||||
case 2: res.r = p; res.g = hsv->val; res.b = t; break;
|
||||
case 3: res.r = p; res.g = q; res.b = hsv->val; break;
|
||||
case 4: res.r = t; res.g = p; res.b = hsv->val; break;
|
||||
case 5: res.r = hsv->hue; res.g = p; res.b = q; break;
|
||||
|
||||
}
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
hsv_t init_hsv_t(uint16_t hue, uint8_t sat, uint8_t val) {
|
||||
hsv_t tmp;
|
||||
tmp.hue = hue;
|
||||
tmp.sat = sat;
|
||||
tmp.val = val;
|
||||
|
||||
return tmp;
|
||||
}
|
26
sketches/pendulum/color_hsv.h
Normal file
26
sketches/pendulum/color_hsv.h
Normal file
@ -0,0 +1,26 @@
|
||||
#ifndef _COLOR_HSV_H_
|
||||
#define _COLOR_HSV_H_
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#define RGB_MAX 128
|
||||
|
||||
typedef struct {
|
||||
uint8_t r;
|
||||
uint8_t g;
|
||||
uint8_t b;
|
||||
} rgb_t;
|
||||
|
||||
typedef struct {
|
||||
uint16_t hue;
|
||||
uint8_t sat;
|
||||
uint8_t val;
|
||||
} hsv_t;
|
||||
|
||||
hsv_t init_hsv_t(uint16_t hue, uint8_t sat, uint8_t val);
|
||||
rgb_t hsv2rgb(hsv_t* hsv);
|
||||
void hsv2rgbList(hsv_t* hsvList, rgb_t* rgbList, size_t count);
|
||||
void interpolate(hsv_t start, hsv_t end, size_t steps, hsv_t *colors);
|
||||
|
||||
#endif
|
662
sketches/pendulum/color_hsv.lst
Normal file
662
sketches/pendulum/color_hsv.lst
Normal file
@ -0,0 +1,662 @@
|
||||
1 .file "color_hsv.c"
|
||||
2 __SP_H__ = 0x3e
|
||||
3 __SP_L__ = 0x3d
|
||||
4 __SREG__ = 0x3f
|
||||
5 __tmp_reg__ = 0
|
||||
6 __zero_reg__ = 1
|
||||
9 .text
|
||||
10 .Ltext0:
|
||||
103 .global interpolate
|
||||
105 interpolate:
|
||||
106 .stabd 46,0,0
|
||||
1:color_hsv.c **** #include "color_hsv.h"
|
||||
2:color_hsv.c ****
|
||||
3:color_hsv.c **** void interpolate(hsv_t start, hsv_t end, size_t steps, hsv_t *colors) {
|
||||
108 .LM0:
|
||||
109 .LFBB1:
|
||||
110 0000 2F92 push r2
|
||||
111 0002 3F92 push r3
|
||||
112 0004 4F92 push r4
|
||||
113 0006 5F92 push r5
|
||||
114 0008 6F92 push r6
|
||||
115 000a 7F92 push r7
|
||||
116 000c 8F92 push r8
|
||||
117 000e 9F92 push r9
|
||||
118 0010 AF92 push r10
|
||||
119 0012 BF92 push r11
|
||||
120 0014 CF92 push r12
|
||||
121 0016 DF92 push r13
|
||||
122 0018 EF92 push r14
|
||||
123 001a FF92 push r15
|
||||
124 001c 0F93 push r16
|
||||
125 001e 1F93 push r17
|
||||
126 0020 CF93 push r28
|
||||
127 0022 DF93 push r29
|
||||
128 0024 CDB7 in r28,__SP_L__
|
||||
129 0026 DEB7 in r29,__SP_H__
|
||||
130 0028 2A97 sbiw r28,10
|
||||
131 002a 0FB6 in __tmp_reg__,__SREG__
|
||||
132 002c F894 cli
|
||||
133 002e DEBF out __SP_H__,r29
|
||||
134 0030 0FBE out __SREG__,__tmp_reg__
|
||||
135 0032 CDBF out __SP_L__,r28
|
||||
136 /* prologue: function */
|
||||
137 /* frame size = 10 */
|
||||
138 /* stack size = 28 */
|
||||
139 .L__stack_usage = 28
|
||||
140 0034 D82E mov r13,r24
|
||||
141 0036 C92E mov r12,r25
|
||||
142 0038 F701 movw r30,r14
|
||||
4:color_hsv.c **** if( steps == 1 ) {
|
||||
144 .LM1:
|
||||
145 003a 0130 cpi r16,1
|
||||
146 003c 1105 cpc r17,__zero_reg__
|
||||
147 003e 01F0 breq .L2
|
||||
148 .LBB2:
|
||||
149 .LBB3:
|
||||
5:color_hsv.c **** colors[0] = start;
|
||||
6:color_hsv.c **** return;
|
||||
7:color_hsv.c **** }
|
||||
8:color_hsv.c ****
|
||||
9:color_hsv.c **** for( size_t i = 0; i < steps; i++ ) {
|
||||
10:color_hsv.c **** hsv_t tmp;
|
||||
11:color_hsv.c **** tmp.hue = (uint16_t)((int16_t)start.hue + ((int16_t)end.hue - (int16_t)start.hue) * (int16_t)i /
|
||||
151 .LM2:
|
||||
152 0040 3B01 movw r6,r22
|
||||
153 0042 2901 movw r4,r18
|
||||
154 0044 461A sub r4,r22
|
||||
155 0046 570A sbc r5,r23
|
||||
156 0048 842F mov r24,r20
|
||||
157 004a 90E0 ldi r25,0
|
||||
12:color_hsv.c **** tmp.sat = (uint8_t)((int16_t)start.sat + ((int16_t)end.sat - (int16_t)start.sat) * (int16_t)i / (
|
||||
159 .LM3:
|
||||
160 004c BC01 movw r22,r24
|
||||
161 004e 6D19 sub r22,r13
|
||||
162 0050 7109 sbc r23,__zero_reg__
|
||||
163 0052 7E83 std Y+6,r23
|
||||
164 0054 6D83 std Y+5,r22
|
||||
165 0056 852F mov r24,r21
|
||||
166 0058 90E0 ldi r25,0
|
||||
13:color_hsv.c **** tmp.val = (uint8_t)((int16_t)start.val + ((int16_t)end.val - (int16_t)start.val) * (int16_t)i / (
|
||||
168 .LM4:
|
||||
169 005a 9C01 movw r18,r24
|
||||
170 005c 2C19 sub r18,r12
|
||||
171 005e 3109 sbc r19,__zero_reg__
|
||||
172 0060 3887 std Y+8,r19
|
||||
173 0062 2F83 std Y+7,r18
|
||||
174 0064 3396 adiw r30,3
|
||||
175 0066 1A86 std Y+10,__zero_reg__
|
||||
176 0068 1986 std Y+9,__zero_reg__
|
||||
177 006a E12C mov r14,__zero_reg__
|
||||
178 006c F12C mov r15,__zero_reg__
|
||||
179 006e 80E0 ldi r24,0
|
||||
180 0070 90E0 ldi r25,0
|
||||
181 0072 20E0 ldi r18,0
|
||||
182 0074 30E0 ldi r19,0
|
||||
11:color_hsv.c **** tmp.sat = (uint8_t)((int16_t)start.sat + ((int16_t)end.sat - (int16_t)start.sat) * (int16_t)i / (
|
||||
184 .LM5:
|
||||
185 0076 5801 movw r10,r16
|
||||
186 0078 41E0 ldi r20,1
|
||||
187 007a A41A sub r10,r20
|
||||
188 007c B108 sbc r11,__zero_reg__
|
||||
189 007e 00C0 rjmp .L3
|
||||
190 .L2:
|
||||
191 .LBE3:
|
||||
192 .LBE2:
|
||||
5:color_hsv.c **** return;
|
||||
194 .LM6:
|
||||
195 0080 6083 st Z,r22
|
||||
196 0082 7183 std Z+1,r23
|
||||
197 0084 8283 std Z+2,r24
|
||||
198 0086 9383 std Z+3,r25
|
||||
6:color_hsv.c **** }
|
||||
200 .LM7:
|
||||
201 0088 00C0 rjmp .L1
|
||||
202 .L3:
|
||||
203 008a 1C01 movw r2,r24
|
||||
204 008c 240C add r2,r4
|
||||
205 008e 351C adc r3,r5
|
||||
206 0090 4D81 ldd r20,Y+5
|
||||
207 0092 5E81 ldd r21,Y+6
|
||||
208 0094 4E0D add r20,r14
|
||||
209 0096 5F1D adc r21,r15
|
||||
210 0098 5A83 std Y+2,r21
|
||||
211 009a 4983 std Y+1,r20
|
||||
212 009c 4F81 ldd r20,Y+7
|
||||
213 009e 5885 ldd r21,Y+8
|
||||
214 00a0 6985 ldd r22,Y+9
|
||||
215 00a2 7A85 ldd r23,Y+10
|
||||
216 00a4 460F add r20,r22
|
||||
217 00a6 571F adc r21,r23
|
||||
218 00a8 5C83 std Y+4,r21
|
||||
219 00aa 4B83 std Y+3,r20
|
||||
220 .LBB5:
|
||||
9:color_hsv.c **** hsv_t tmp;
|
||||
222 .LM8:
|
||||
223 00ac 2017 cp r18,r16
|
||||
224 00ae 3107 cpc r19,r17
|
||||
225 00b0 01F0 breq .L1
|
||||
226 00b2 4F01 movw r8,r30
|
||||
227 00b4 53E0 ldi r21,3
|
||||
228 00b6 851A sub r8,r21
|
||||
229 00b8 9108 sbc r9,__zero_reg__
|
||||
230 .LBB4:
|
||||
11:color_hsv.c **** tmp.sat = (uint8_t)((int16_t)start.sat + ((int16_t)end.sat - (int16_t)start.sat) * (int16_t)i / (
|
||||
232 .LM9:
|
||||
233 00ba B501 movw r22,r10
|
||||
234 00bc 0E94 0000 call __divmodhi4
|
||||
235 00c0 660D add r22,r6
|
||||
236 00c2 771D adc r23,r7
|
||||
14:color_hsv.c **** colors[i] = tmp;
|
||||
238 .LM10:
|
||||
239 00c4 D401 movw r26,r8
|
||||
240 00c6 6D93 st X+,r22
|
||||
241 00c8 7C93 st X,r23
|
||||
242 00ca 4F01 movw r8,r30
|
||||
243 00cc B1E0 ldi r27,1
|
||||
244 00ce 8B1A sub r8,r27
|
||||
245 00d0 9108 sbc r9,__zero_reg__
|
||||
12:color_hsv.c **** tmp.val = (uint8_t)((int16_t)start.val + ((int16_t)end.val - (int16_t)start.val) * (int16_t)i / (
|
||||
247 .LM11:
|
||||
248 00d2 C701 movw r24,r14
|
||||
249 00d4 B501 movw r22,r10
|
||||
250 00d6 0E94 0000 call __divmodhi4
|
||||
251 00da 6D0D add r22,r13
|
||||
253 .LM12:
|
||||
254 00dc D401 movw r26,r8
|
||||
255 00de 6C93 st X,r22
|
||||
13:color_hsv.c **** colors[i] = tmp;
|
||||
257 .LM13:
|
||||
258 00e0 8985 ldd r24,Y+9
|
||||
259 00e2 9A85 ldd r25,Y+10
|
||||
260 00e4 B501 movw r22,r10
|
||||
261 00e6 0E94 0000 call __divmodhi4
|
||||
262 00ea 6C0D add r22,r12
|
||||
264 .LM14:
|
||||
265 00ec 6083 st Z,r22
|
||||
266 .LBE4:
|
||||
9:color_hsv.c **** hsv_t tmp;
|
||||
268 .LM15:
|
||||
269 00ee 2F5F subi r18,-1
|
||||
270 00f0 3F4F sbci r19,-1
|
||||
271 00f2 3496 adiw r30,4
|
||||
272 00f4 4B81 ldd r20,Y+3
|
||||
273 00f6 5C81 ldd r21,Y+4
|
||||
274 00f8 5A87 std Y+10,r21
|
||||
275 00fa 4987 std Y+9,r20
|
||||
276 00fc E980 ldd r14,Y+1
|
||||
277 00fe FA80 ldd r15,Y+2
|
||||
278 0100 C101 movw r24,r2
|
||||
279 0102 00C0 rjmp .L3
|
||||
280 .L1:
|
||||
281 /* epilogue start */
|
||||
282 .LBE5:
|
||||
15:color_hsv.c **** }
|
||||
16:color_hsv.c **** }
|
||||
284 .LM16:
|
||||
285 0104 2A96 adiw r28,10
|
||||
286 0106 0FB6 in __tmp_reg__,__SREG__
|
||||
287 0108 F894 cli
|
||||
288 010a DEBF out __SP_H__,r29
|
||||
289 010c 0FBE out __SREG__,__tmp_reg__
|
||||
290 010e CDBF out __SP_L__,r28
|
||||
291 0110 DF91 pop r29
|
||||
292 0112 CF91 pop r28
|
||||
293 0114 1F91 pop r17
|
||||
294 0116 0F91 pop r16
|
||||
295 0118 FF90 pop r15
|
||||
296 011a EF90 pop r14
|
||||
297 011c DF90 pop r13
|
||||
298 011e CF90 pop r12
|
||||
299 0120 BF90 pop r11
|
||||
300 0122 AF90 pop r10
|
||||
301 0124 9F90 pop r9
|
||||
302 0126 8F90 pop r8
|
||||
303 0128 7F90 pop r7
|
||||
304 012a 6F90 pop r6
|
||||
305 012c 5F90 pop r5
|
||||
306 012e 4F90 pop r4
|
||||
307 0130 3F90 pop r3
|
||||
308 0132 2F90 pop r2
|
||||
309 0134 0895 ret
|
||||
317 .Lscope1:
|
||||
319 .stabd 78,0,0
|
||||
320 .global __floatunsisf
|
||||
321 .global __divsf3
|
||||
322 .global __fixunssfsi
|
||||
323 .global __floatsisf
|
||||
324 .global __subsf3
|
||||
325 .global __mulsf3
|
||||
328 .global hsv2rgb
|
||||
330 hsv2rgb:
|
||||
331 .stabd 46,0,0
|
||||
17:color_hsv.c ****
|
||||
18:color_hsv.c **** void hsv2rgbList(hsv_t* hsvList, rgb_t* rgbList, size_t count) {
|
||||
19:color_hsv.c **** for(size_t i = 0; i < count; ++i) {
|
||||
20:color_hsv.c **** rgbList[i] = hsv2rgb(&hsvList[i]);
|
||||
21:color_hsv.c **** }
|
||||
22:color_hsv.c **** }
|
||||
23:color_hsv.c ****
|
||||
24:color_hsv.c **** rgb_t hsv2rgb(hsv_t* hsv) {
|
||||
333 .LM17:
|
||||
334 .LFBB2:
|
||||
335 0136 2F92 push r2
|
||||
336 0138 3F92 push r3
|
||||
337 013a 4F92 push r4
|
||||
338 013c 5F92 push r5
|
||||
339 013e 6F92 push r6
|
||||
340 0140 7F92 push r7
|
||||
341 0142 8F92 push r8
|
||||
342 0144 9F92 push r9
|
||||
343 0146 AF92 push r10
|
||||
344 0148 BF92 push r11
|
||||
345 014a CF92 push r12
|
||||
346 014c DF92 push r13
|
||||
347 014e EF92 push r14
|
||||
348 0150 FF92 push r15
|
||||
349 0152 0F93 push r16
|
||||
350 0154 1F93 push r17
|
||||
351 0156 CF93 push r28
|
||||
352 0158 DF93 push r29
|
||||
353 015a 00D0 rcall .
|
||||
354 015c 00D0 rcall .
|
||||
355 015e CDB7 in r28,__SP_L__
|
||||
356 0160 DEB7 in r29,__SP_H__
|
||||
357 /* prologue: function */
|
||||
358 /* frame size = 4 */
|
||||
359 /* stack size = 22 */
|
||||
360 .L__stack_usage = 22
|
||||
25:color_hsv.c **** rgb_t res;
|
||||
26:color_hsv.c ****
|
||||
27:color_hsv.c **** if(hsv->sat == 0) {
|
||||
362 .LM18:
|
||||
363 0162 FC01 movw r30,r24
|
||||
364 0164 B280 ldd r11,Z+2
|
||||
365 0166 3380 ldd r3,Z+3
|
||||
366 0168 B110 cpse r11,__zero_reg__
|
||||
367 016a 00C0 rjmp .L8
|
||||
28:color_hsv.c **** res.r = res.g = res.b = hsv->val;
|
||||
369 .LM19:
|
||||
370 016c 232C mov r2,r3
|
||||
371 016e 3B82 std Y+3,r3
|
||||
372 0170 3C82 std Y+4,r3
|
||||
373 0172 00C0 rjmp .L9
|
||||
374 .L8:
|
||||
375 0174 FC01 movw r30,r24
|
||||
376 .LBB6:
|
||||
29:color_hsv.c **** } else {
|
||||
30:color_hsv.c **** float hue = (float) (hsv->hue<360?hsv->hue:hsv->hue-360);
|
||||
378 .LM20:
|
||||
379 0176 0081 ld r16,Z
|
||||
380 0178 1181 ldd r17,Z+1
|
||||
381 017a B801 movw r22,r16
|
||||
382 017c 0836 cpi r16,104
|
||||
383 017e F1E0 ldi r31,1
|
||||
384 0180 1F07 cpc r17,r31
|
||||
385 0182 00F0 brlo .L20
|
||||
387 .LM21:
|
||||
388 0184 6856 subi r22,104
|
||||
389 0186 7140 sbci r23,1
|
||||
390 .L20:
|
||||
391 0188 80E0 ldi r24,0
|
||||
392 018a 90E0 ldi r25,0
|
||||
393 018c 0E94 0000 call __floatunsisf
|
||||
394 0190 2B01 movw r4,r22
|
||||
395 0192 3C01 movw r6,r24
|
||||
31:color_hsv.c **** float val = ((float) hsv->val ) / 100.0;
|
||||
397 .LM22:
|
||||
398 0194 632D mov r22,r3
|
||||
399 0196 70E0 ldi r23,0
|
||||
400 0198 80E0 ldi r24,0
|
||||
401 019a 90E0 ldi r25,0
|
||||
402 019c 0E94 0000 call __floatunsisf
|
||||
403 01a0 20E0 ldi r18,0
|
||||
404 01a2 30E0 ldi r19,0
|
||||
405 01a4 48EC ldi r20,lo8(-56)
|
||||
406 01a6 52E4 ldi r21,lo8(66)
|
||||
407 01a8 0E94 0000 call __divsf3
|
||||
408 01ac 6B01 movw r12,r22
|
||||
409 01ae 7C01 movw r14,r24
|
||||
32:color_hsv.c **** float sat = ((float) hsv->sat ) / 100.0;
|
||||
411 .LM23:
|
||||
412 01b0 6B2D mov r22,r11
|
||||
413 01b2 70E0 ldi r23,0
|
||||
414 01b4 80E0 ldi r24,0
|
||||
415 01b6 90E0 ldi r25,0
|
||||
416 01b8 0E94 0000 call __floatunsisf
|
||||
417 01bc 20E0 ldi r18,0
|
||||
418 01be 30E0 ldi r19,0
|
||||
419 01c0 48EC ldi r20,lo8(-56)
|
||||
420 01c2 52E4 ldi r21,lo8(66)
|
||||
421 01c4 0E94 0000 call __divsf3
|
||||
422 01c8 4B01 movw r8,r22
|
||||
423 01ca 5C01 movw r10,r24
|
||||
33:color_hsv.c ****
|
||||
34:color_hsv.c **** uint8_t h = hue / 60;
|
||||
425 .LM24:
|
||||
426 01cc 20E0 ldi r18,0
|
||||
427 01ce 30E0 ldi r19,0
|
||||
428 01d0 40E7 ldi r20,lo8(112)
|
||||
429 01d2 52E4 ldi r21,lo8(66)
|
||||
430 01d4 C301 movw r24,r6
|
||||
431 01d6 B201 movw r22,r4
|
||||
432 01d8 0E94 0000 call __divsf3
|
||||
433 01dc 2B01 movw r4,r22
|
||||
434 01de 3C01 movw r6,r24
|
||||
435 01e0 0E94 0000 call __fixunssfsi
|
||||
436 01e4 6A83 std Y+2,r22
|
||||
35:color_hsv.c **** float f = ( hue / 60 ) - h;
|
||||
438 .LM25:
|
||||
439 01e6 70E0 ldi r23,0
|
||||
440 01e8 80E0 ldi r24,0
|
||||
441 01ea 90E0 ldi r25,0
|
||||
442 01ec 0E94 0000 call __floatsisf
|
||||
443 01f0 9B01 movw r18,r22
|
||||
444 01f2 AC01 movw r20,r24
|
||||
445 01f4 C301 movw r24,r6
|
||||
446 01f6 B201 movw r22,r4
|
||||
447 01f8 0E94 0000 call __subsf3
|
||||
448 01fc 2B01 movw r4,r22
|
||||
449 01fe 3C01 movw r6,r24
|
||||
36:color_hsv.c ****
|
||||
37:color_hsv.c **** uint8_t p = RGB_MAX * ( val * ( 1 - sat ));
|
||||
451 .LM26:
|
||||
452 0200 A501 movw r20,r10
|
||||
453 0202 9401 movw r18,r8
|
||||
454 0204 60E0 ldi r22,0
|
||||
455 0206 70E0 ldi r23,0
|
||||
456 0208 80E8 ldi r24,lo8(-128)
|
||||
457 020a 9FE3 ldi r25,lo8(63)
|
||||
458 020c 0E94 0000 call __subsf3
|
||||
459 0210 9B01 movw r18,r22
|
||||
460 0212 AC01 movw r20,r24
|
||||
461 0214 C701 movw r24,r14
|
||||
462 0216 B601 movw r22,r12
|
||||
463 0218 0E94 0000 call __mulsf3
|
||||
464 021c 20E0 ldi r18,0
|
||||
465 021e 30E0 ldi r19,0
|
||||
466 0220 40E0 ldi r20,0
|
||||
467 0222 53E4 ldi r21,lo8(67)
|
||||
468 0224 0E94 0000 call __mulsf3
|
||||
469 0228 0E94 0000 call __fixunssfsi
|
||||
470 022c 262E mov r2,r22
|
||||
38:color_hsv.c **** uint8_t q = RGB_MAX * ( val * ( 1 - sat * f ));
|
||||
472 .LM27:
|
||||
473 022e A301 movw r20,r6
|
||||
474 0230 9201 movw r18,r4
|
||||
475 0232 C501 movw r24,r10
|
||||
476 0234 B401 movw r22,r8
|
||||
477 0236 0E94 0000 call __mulsf3
|
||||
478 023a 9B01 movw r18,r22
|
||||
479 023c AC01 movw r20,r24
|
||||
480 023e 60E0 ldi r22,0
|
||||
481 0240 70E0 ldi r23,0
|
||||
482 0242 80E8 ldi r24,lo8(-128)
|
||||
483 0244 9FE3 ldi r25,lo8(63)
|
||||
484 0246 0E94 0000 call __subsf3
|
||||
485 024a 9B01 movw r18,r22
|
||||
486 024c AC01 movw r20,r24
|
||||
487 024e C701 movw r24,r14
|
||||
488 0250 B601 movw r22,r12
|
||||
489 0252 0E94 0000 call __mulsf3
|
||||
490 0256 20E0 ldi r18,0
|
||||
491 0258 30E0 ldi r19,0
|
||||
492 025a 40E0 ldi r20,0
|
||||
493 025c 53E4 ldi r21,lo8(67)
|
||||
494 025e 0E94 0000 call __mulsf3
|
||||
495 0262 0E94 0000 call __fixunssfsi
|
||||
496 0266 6983 std Y+1,r22
|
||||
39:color_hsv.c **** uint8_t t = RGB_MAX * ( val * ( 1 - sat * ( 1 - f )));
|
||||
498 .LM28:
|
||||
499 0268 A301 movw r20,r6
|
||||
500 026a 9201 movw r18,r4
|
||||
501 026c 60E0 ldi r22,0
|
||||
502 026e 70E0 ldi r23,0
|
||||
503 0270 80E8 ldi r24,lo8(-128)
|
||||
504 0272 9FE3 ldi r25,lo8(63)
|
||||
505 0274 0E94 0000 call __subsf3
|
||||
506 0278 9B01 movw r18,r22
|
||||
507 027a AC01 movw r20,r24
|
||||
508 027c C501 movw r24,r10
|
||||
509 027e B401 movw r22,r8
|
||||
510 0280 0E94 0000 call __mulsf3
|
||||
511 0284 9B01 movw r18,r22
|
||||
512 0286 AC01 movw r20,r24
|
||||
513 0288 60E0 ldi r22,0
|
||||
514 028a 70E0 ldi r23,0
|
||||
515 028c 80E8 ldi r24,lo8(-128)
|
||||
516 028e 9FE3 ldi r25,lo8(63)
|
||||
517 0290 0E94 0000 call __subsf3
|
||||
518 0294 9B01 movw r18,r22
|
||||
519 0296 AC01 movw r20,r24
|
||||
520 0298 C701 movw r24,r14
|
||||
521 029a B601 movw r22,r12
|
||||
522 029c 0E94 0000 call __mulsf3
|
||||
523 02a0 20E0 ldi r18,0
|
||||
524 02a2 30E0 ldi r19,0
|
||||
525 02a4 40E0 ldi r20,0
|
||||
526 02a6 53E4 ldi r21,lo8(67)
|
||||
527 02a8 0E94 0000 call __mulsf3
|
||||
528 02ac 0E94 0000 call __fixunssfsi
|
||||
40:color_hsv.c ****
|
||||
41:color_hsv.c **** switch(h) {
|
||||
530 .LM29:
|
||||
531 02b0 2A81 ldd r18,Y+2
|
||||
532 02b2 822F mov r24,r18
|
||||
533 02b4 90E0 ldi r25,0
|
||||
534 02b6 8730 cpi r24,7
|
||||
535 02b8 9105 cpc r25,__zero_reg__
|
||||
536 02ba 00F4 brsh .L19
|
||||
538 .LM30:
|
||||
539 02bc FC01 movw r30,r24
|
||||
540 02be E050 subi r30,lo8(-(gs(.L13)))
|
||||
541 02c0 F040 sbci r31,hi8(-(gs(.L13)))
|
||||
542 02c2 0C94 0000 jmp __tablejump2__
|
||||
543 .section .progmem.gcc_sw_table,"a",@progbits
|
||||
544 .p2align 1
|
||||
545 .L13:
|
||||
546 0000 0000 .word gs(.L12)
|
||||
547 0002 0000 .word gs(.L14)
|
||||
548 0004 0000 .word gs(.L15)
|
||||
549 0006 0000 .word gs(.L16)
|
||||
550 0008 0000 .word gs(.L17)
|
||||
551 000a 0000 .word gs(.L18)
|
||||
552 000c 0000 .word gs(.L12)
|
||||
553 .text
|
||||
554 .L12:
|
||||
42:color_hsv.c **** case 0:
|
||||
43:color_hsv.c **** case 6: res.r = hsv->val; res.g = t; res.b = p; break;
|
||||
556 .LM31:
|
||||
557 02c6 2B82 std Y+3,r2
|
||||
558 02c8 6C83 std Y+4,r22
|
||||
559 02ca 232C mov r2,r3
|
||||
560 02cc 00C0 rjmp .L9
|
||||
561 .L14:
|
||||
44:color_hsv.c **** case 1: res.r = q; res.g = hsv->val; res.b = p; break;
|
||||
563 .LM32:
|
||||
564 02ce 2B82 std Y+3,r2
|
||||
565 02d0 3C82 std Y+4,r3
|
||||
566 02d2 2980 ldd r2,Y+1
|
||||
567 02d4 00C0 rjmp .L9
|
||||
568 .L15:
|
||||
45:color_hsv.c **** case 2: res.r = p; res.g = hsv->val; res.b = t; break;
|
||||
570 .LM33:
|
||||
571 02d6 6B83 std Y+3,r22
|
||||
572 02d8 3C82 std Y+4,r3
|
||||
573 02da 00C0 rjmp .L9
|
||||
574 .L16:
|
||||
46:color_hsv.c **** case 3: res.r = p; res.g = q; res.b = hsv->val; break;
|
||||
576 .LM34:
|
||||
577 02dc 3B82 std Y+3,r3
|
||||
578 02de 8981 ldd r24,Y+1
|
||||
579 02e0 8C83 std Y+4,r24
|
||||
580 02e2 00C0 rjmp .L9
|
||||
581 .L17:
|
||||
47:color_hsv.c **** case 4: res.r = t; res.g = p; res.b = hsv->val; break;
|
||||
583 .LM35:
|
||||
584 02e4 3B82 std Y+3,r3
|
||||
585 02e6 2C82 std Y+4,r2
|
||||
586 02e8 262E mov r2,r22
|
||||
587 02ea 00C0 rjmp .L9
|
||||
588 .L18:
|
||||
48:color_hsv.c **** case 5: res.r = hsv->hue; res.g = p; res.b = q; break;
|
||||
590 .LM36:
|
||||
591 02ec E981 ldd r30,Y+1
|
||||
592 02ee EB83 std Y+3,r30
|
||||
593 02f0 2C82 std Y+4,r2
|
||||
594 02f2 202E mov r2,r16
|
||||
595 02f4 00C0 rjmp .L9
|
||||
596 .L19:
|
||||
41:color_hsv.c **** case 0:
|
||||
598 .LM37:
|
||||
599 02f6 212C mov r2,__zero_reg__
|
||||
600 .L9:
|
||||
601 .LBE6:
|
||||
49:color_hsv.c ****
|
||||
50:color_hsv.c **** }
|
||||
51:color_hsv.c **** }
|
||||
52:color_hsv.c **** return res;
|
||||
53:color_hsv.c **** }
|
||||
603 .LM38:
|
||||
604 02f8 622D mov r22,r2
|
||||
605 02fa 7C81 ldd r23,Y+4
|
||||
606 02fc 8B81 ldd r24,Y+3
|
||||
607 /* epilogue start */
|
||||
608 02fe 0F90 pop __tmp_reg__
|
||||
609 0300 0F90 pop __tmp_reg__
|
||||
610 0302 0F90 pop __tmp_reg__
|
||||
611 0304 0F90 pop __tmp_reg__
|
||||
612 0306 DF91 pop r29
|
||||
613 0308 CF91 pop r28
|
||||
614 030a 1F91 pop r17
|
||||
615 030c 0F91 pop r16
|
||||
616 030e FF90 pop r15
|
||||
617 0310 EF90 pop r14
|
||||
618 0312 DF90 pop r13
|
||||
619 0314 CF90 pop r12
|
||||
620 0316 BF90 pop r11
|
||||
621 0318 AF90 pop r10
|
||||
622 031a 9F90 pop r9
|
||||
623 031c 8F90 pop r8
|
||||
624 031e 7F90 pop r7
|
||||
625 0320 6F90 pop r6
|
||||
626 0322 5F90 pop r5
|
||||
627 0324 4F90 pop r4
|
||||
628 0326 3F90 pop r3
|
||||
629 0328 2F90 pop r2
|
||||
630 032a 0895 ret
|
||||
635 .Lscope2:
|
||||
637 .stabd 78,0,0
|
||||
641 .global hsv2rgbList
|
||||
643 hsv2rgbList:
|
||||
644 .stabd 46,0,0
|
||||
18:color_hsv.c **** for(size_t i = 0; i < count; ++i) {
|
||||
646 .LM39:
|
||||
647 .LFBB3:
|
||||
648 032c CF92 push r12
|
||||
649 032e DF92 push r13
|
||||
650 0330 EF92 push r14
|
||||
651 0332 FF92 push r15
|
||||
652 0334 0F93 push r16
|
||||
653 0336 1F93 push r17
|
||||
654 0338 CF93 push r28
|
||||
655 033a DF93 push r29
|
||||
656 /* prologue: function */
|
||||
657 /* frame size = 0 */
|
||||
658 /* stack size = 8 */
|
||||
659 .L__stack_usage = 8
|
||||
660 033c 6A01 movw r12,r20
|
||||
661 033e EB01 movw r28,r22
|
||||
662 0340 7C01 movw r14,r24
|
||||
663 .LBB7:
|
||||
19:color_hsv.c **** rgbList[i] = hsv2rgb(&hsvList[i]);
|
||||
665 .LM40:
|
||||
666 0342 00E0 ldi r16,0
|
||||
667 0344 10E0 ldi r17,0
|
||||
668 .L22:
|
||||
19:color_hsv.c **** rgbList[i] = hsv2rgb(&hsvList[i]);
|
||||
670 .LM41:
|
||||
671 0346 0C15 cp r16,r12
|
||||
672 0348 1D05 cpc r17,r13
|
||||
673 034a 01F0 breq .L24
|
||||
20:color_hsv.c **** }
|
||||
675 .LM42:
|
||||
676 034c C701 movw r24,r14
|
||||
677 034e 0E94 0000 call hsv2rgb
|
||||
678 0352 6993 st Y+,r22
|
||||
679 0354 7993 st Y+,r23
|
||||
680 0356 8993 st Y+,r24
|
||||
19:color_hsv.c **** rgbList[i] = hsv2rgb(&hsvList[i]);
|
||||
682 .LM43:
|
||||
683 0358 0F5F subi r16,-1
|
||||
684 035a 1F4F sbci r17,-1
|
||||
685 035c 84E0 ldi r24,4
|
||||
686 035e E80E add r14,r24
|
||||
687 0360 F11C adc r15,__zero_reg__
|
||||
688 0362 00C0 rjmp .L22
|
||||
689 .L24:
|
||||
690 /* epilogue start */
|
||||
691 .LBE7:
|
||||
22:color_hsv.c ****
|
||||
693 .LM44:
|
||||
694 0364 DF91 pop r29
|
||||
695 0366 CF91 pop r28
|
||||
696 0368 1F91 pop r17
|
||||
697 036a 0F91 pop r16
|
||||
698 036c FF90 pop r15
|
||||
699 036e EF90 pop r14
|
||||
700 0370 DF90 pop r13
|
||||
701 0372 CF90 pop r12
|
||||
702 0374 0895 ret
|
||||
707 .Lscope3:
|
||||
709 .stabd 78,0,0
|
||||
713 .global init_hsv_t
|
||||
715 init_hsv_t:
|
||||
716 .stabd 46,0,0
|
||||
54:color_hsv.c ****
|
||||
55:color_hsv.c **** hsv_t init_hsv_t(uint16_t hue, uint8_t sat, uint8_t val) {
|
||||
718 .LM45:
|
||||
719 .LFBB4:
|
||||
720 /* prologue: function */
|
||||
721 /* frame size = 0 */
|
||||
722 /* stack size = 0 */
|
||||
723 .L__stack_usage = 0
|
||||
724 0376 282F mov r18,r24
|
||||
725 0378 862F mov r24,r22
|
||||
56:color_hsv.c **** hsv_t tmp;
|
||||
57:color_hsv.c **** tmp.hue = hue;
|
||||
58:color_hsv.c **** tmp.sat = sat;
|
||||
59:color_hsv.c **** tmp.val = val;
|
||||
60:color_hsv.c ****
|
||||
61:color_hsv.c **** return tmp;
|
||||
62:color_hsv.c **** }
|
||||
727 .LM46:
|
||||
728 037a 622F mov r22,r18
|
||||
729 037c 792F mov r23,r25
|
||||
730 037e 942F mov r25,r20
|
||||
731 0380 0895 ret
|
||||
733 .Lscope4:
|
||||
735 .stabd 78,0,0
|
||||
737 .Letext0:
|
||||
738 .ident "GCC: (GNU) 4.9.2"
|
||||
DEFINED SYMBOLS
|
||||
*ABS*:0000000000000000 color_hsv.c
|
||||
/tmp/cclIci1E.s:2 *ABS*:000000000000003e __SP_H__
|
||||
/tmp/cclIci1E.s:3 *ABS*:000000000000003d __SP_L__
|
||||
/tmp/cclIci1E.s:4 *ABS*:000000000000003f __SREG__
|
||||
/tmp/cclIci1E.s:5 *ABS*:0000000000000000 __tmp_reg__
|
||||
/tmp/cclIci1E.s:6 *ABS*:0000000000000001 __zero_reg__
|
||||
/tmp/cclIci1E.s:105 .text:0000000000000000 interpolate
|
||||
/tmp/cclIci1E.s:330 .text:0000000000000136 hsv2rgb
|
||||
/tmp/cclIci1E.s:643 .text:000000000000032c hsv2rgbList
|
||||
/tmp/cclIci1E.s:715 .text:0000000000000376 init_hsv_t
|
||||
|
||||
UNDEFINED SYMBOLS
|
||||
__divmodhi4
|
||||
__floatunsisf
|
||||
__divsf3
|
||||
__fixunssfsi
|
||||
__floatsisf
|
||||
__subsf3
|
||||
__mulsf3
|
||||
__tablejump2__
|
BIN
sketches/pendulum/color_hsv.o
Normal file
BIN
sketches/pendulum/color_hsv.o
Normal file
Binary file not shown.
228
sketches/pendulum/pendulum.c
Normal file
228
sketches/pendulum/pendulum.c
Normal file
@ -0,0 +1,228 @@
|
||||
#define F_CPU 20000000UL
|
||||
#include <util/delay.h>
|
||||
#include <avr/interrupt.h>
|
||||
#include <avr/io.h>
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stddef.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
#include "color_hsv.h"
|
||||
#define HUE_MAX 610
|
||||
#define HUE_MIN 350
|
||||
#define HUE_MID ((HUE_MAX + HUE_MIN) / 2)
|
||||
#define HUE_DIF (HUE_MAX - HUE_MIN)
|
||||
#define HUE_SAT 100 // 0 = white, 100 = color
|
||||
#define HUE_VAL 20 // 0 = black, 100 = color
|
||||
#define HUE_STEP 8 // 8
|
||||
const uint32_t colorSteps = HUE_DIF / HUE_STEP;
|
||||
//~ const uint32_t colorSteps = 5;
|
||||
|
||||
#define LEDS 30
|
||||
|
||||
// Prototypes:
|
||||
void writeZero(void);
|
||||
void writeOne(void);
|
||||
void writeRGB(uint8_t red, uint8_t green, uint8_t blue);
|
||||
|
||||
// Interrupt variables:
|
||||
int8_t volatile status = 1;
|
||||
uint16_t volatile min = HUE_MID;
|
||||
uint16_t volatile max = HUE_MID;
|
||||
uint32_t volatile time = 0;
|
||||
uint32_t volatile T_half = 0;
|
||||
uint32_t volatile oldTime = 0;
|
||||
uint32_t volatile cooldown = 0;
|
||||
//~ uint32_t volatile delay = 0;
|
||||
|
||||
// On External Interrupt:
|
||||
ISR(INT1_vect) {
|
||||
EIMSK &= 0xfd; // Disable INT1
|
||||
T_half = time + TCNT1;
|
||||
//~ delay = T_half / 16;
|
||||
cooldown = T_half / 2;
|
||||
TCNT1 = 0; // Reset Timer/Counter1
|
||||
time = 0;
|
||||
oldTime = 0;
|
||||
PORTC ^= 0x02;
|
||||
//~ min = HUE_MID;
|
||||
//~ max = HUE_MID;
|
||||
//~ status = (status == 1 ? -1 : 1);
|
||||
}
|
||||
|
||||
// On Timer Overflow Interrupt:
|
||||
ISR(TIMER1_OVF_vect) {
|
||||
time += 0x00010000;
|
||||
}
|
||||
|
||||
int main(void) {
|
||||
|
||||
EIMSK |= 0x02; // External Interrupt Mask Register
|
||||
// Enable INT1 (PIN5) for interrupt
|
||||
EICRA |= 0x0c; // External Interrupt Control Register
|
||||
// INT1 on rising edge
|
||||
|
||||
TIMSK1 |= 0x01; // Timer/Counter1 Interrupt Mask Register
|
||||
// Enable overflow interrupt
|
||||
TCCR1B |= 0x01; // Timer/Counter1 Control Register B
|
||||
// Prescale Factor 1
|
||||
|
||||
SREG |= 0x80; // Status Register
|
||||
// Enable global interrupts
|
||||
|
||||
DDRC = 0x3f; // Digital Direction PORTC[5:0] = output
|
||||
PORTC = 0x00;
|
||||
|
||||
// Init color
|
||||
hsv_t colorsHSV[LEDS];
|
||||
rgb_t colorsRGB[LEDS];
|
||||
interpolate(
|
||||
init_hsv_t(min, HUE_SAT, HUE_VAL), // from color
|
||||
init_hsv_t(max, HUE_SAT, HUE_VAL), // to color
|
||||
LEDS,
|
||||
colorsHSV
|
||||
);
|
||||
hsv2rgbList(colorsHSV, colorsRGB, LEDS);
|
||||
// Assign color
|
||||
for(int i = 0; i < LEDS; i++) {
|
||||
writeRGB( colorsRGB[i].r, colorsRGB[i].g, colorsRGB[i].b);
|
||||
}
|
||||
|
||||
// Next color
|
||||
int8_t sign = 1;
|
||||
min += sign * HUE_STEP;
|
||||
max -= sign * HUE_STEP;
|
||||
interpolate(
|
||||
init_hsv_t(min, HUE_SAT, HUE_VAL),// from color
|
||||
init_hsv_t(max, HUE_SAT, HUE_VAL), // to color
|
||||
LEDS,
|
||||
colorsHSV
|
||||
);
|
||||
hsv2rgbList(colorsHSV, colorsRGB, LEDS);
|
||||
|
||||
while(1) {
|
||||
uint32_t now = time + TCNT1;
|
||||
//~ if(now > delay) {
|
||||
//~ PORTC |= 0x08; // PORTC3 = HIGH
|
||||
//~ }
|
||||
//~ if(now > delay * 2) {
|
||||
//~ PORTC &= 0xf7; // PORTC3 = LOW
|
||||
//~ }
|
||||
|
||||
if(now > cooldown) {
|
||||
EIMSK |= 0x02; // Enable INT1
|
||||
}
|
||||
|
||||
uint32_t T_step = T_half / colorSteps;
|
||||
|
||||
// Check if it is time for next color
|
||||
if(now > oldTime + T_step) {
|
||||
oldTime += T_step;
|
||||
PORTC ^= 0x04;
|
||||
// Assign color
|
||||
cli();
|
||||
for(int i = 0; i < LEDS; i++) {
|
||||
writeRGB( colorsRGB[i].r, colorsRGB[i].g, colorsRGB[i].b);
|
||||
}
|
||||
sei();
|
||||
//~ _delay_us(51);
|
||||
|
||||
// Next color
|
||||
min += sign * HUE_STEP;
|
||||
max -= sign * HUE_STEP;
|
||||
interpolate(
|
||||
init_hsv_t(min, HUE_SAT, HUE_VAL), // from color
|
||||
init_hsv_t(max, HUE_SAT, HUE_VAL), // to color
|
||||
LEDS,
|
||||
colorsHSV
|
||||
);
|
||||
hsv2rgbList(colorsHSV, colorsRGB, LEDS);
|
||||
// Check if reached amplitude
|
||||
if(sign == 1 && (min >= HUE_MAX || max <= HUE_MIN)) {
|
||||
sign = -1;
|
||||
} else if(sign == -1 && (min <= HUE_MIN || max >= HUE_MAX)) {
|
||||
sign = 1;
|
||||
}
|
||||
//~ if(status == 1 && sign == 1 && (min >= HUE_MAX || max <= HUE_MIN)) {
|
||||
//~ sign = -1;
|
||||
//~ } else if(status == 1 && sign == -1 && (min <= HUE_MIN || max >= HUE_MAX)) {
|
||||
//~ sign = 1;
|
||||
//~ } else if(status == -1 && sign == 1 && (min <= HUE_MIN || max >= HUE_MAX)) {
|
||||
//~ sign = -1;
|
||||
//~ } else if(status == -1 && sign == -1 && (min >= HUE_MAX || max <= HUE_MIN)) {
|
||||
//~ sign = 1;
|
||||
//~ }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
*
|
||||
* TIMING
|
||||
*
|
||||
************************************************************************
|
||||
* f=20MHz -> T=0,05 µs = 50 ns
|
||||
*
|
||||
* 0,05 µs * 6 == 0.3 µs ~ 0.4 µs (+- 150ns) == [0.25, 0.55] µs
|
||||
* 0,05 µs * 14 == 0.7 µs ~ 0.8 µs (+- 150ns) == [0.65, 0.95] µs
|
||||
* 0,05 µs * 15 == 0.75 µs ~ 0.85 µs (+- 150ns) == [0.70, 1.00] µs
|
||||
* 0,05 µs * 8 == 0.35 µs ~ 0.45 µs (+- 150ns) == [0.30, 0.60] µs
|
||||
* 51 µs > 50 µs
|
||||
************************************************************************/
|
||||
// AVR-GCC optimizes multiple "nop"s on every optimization level
|
||||
// So we use timing from:
|
||||
// https://github.com/cpldcpu/light_ws2812/blob/master/light_ws2812_AVR/Light_WS2812/light_ws2812.c
|
||||
#define w_nop1 __asm__("nop \n\t")
|
||||
#define w_nop2 __asm__("rjmp .+0 \n\t")
|
||||
#define w_nop4 w_nop2; w_nop2
|
||||
#define w_nop8 w_nop4; w_nop4
|
||||
#define w_nop16 w_nop8; w_nop8 // Not used
|
||||
|
||||
#define wait6 w_nop2; w_nop4
|
||||
#define wait8 w_nop8
|
||||
#define wait14 wait8; wait6
|
||||
#define wait15 wait14; w_nop1
|
||||
|
||||
// WS2812B protocol
|
||||
inline void writeZero() {
|
||||
PORTC |= 0x01; // PORTC0 = 1, PORTC[5:1] = invariant
|
||||
wait6;
|
||||
PORTC &= 0xfe; // PORTC0 = 0, PORTC[5:1] = invariant
|
||||
wait15;
|
||||
}
|
||||
|
||||
// WS2812B protocol
|
||||
inline void writeOne() {
|
||||
PORTC |= 0x01; // PORTC0 = 1, PORTC[5:1] = invariant
|
||||
wait14;
|
||||
PORTC &= 0xfe; // PORTC0 = 0, PORTC[5:1] = invariant
|
||||
wait8;
|
||||
}
|
||||
|
||||
inline void writeRGB(uint8_t red, uint8_t green, uint8_t blue) {
|
||||
int i;
|
||||
|
||||
for( i = 128; i > 0; i >>= 1 ) {
|
||||
if( green & i ){
|
||||
writeOne();
|
||||
} else {
|
||||
writeZero();
|
||||
}
|
||||
}
|
||||
|
||||
for( i = 128; i > 0; i >>= 1 ) {
|
||||
if( red & i ){
|
||||
writeOne();
|
||||
} else {
|
||||
writeZero();
|
||||
}
|
||||
}
|
||||
|
||||
for( i = 128; i > 0; i >>= 1 ) {
|
||||
if( blue & i ){
|
||||
writeOne();
|
||||
} else {
|
||||
writeZero();
|
||||
}
|
||||
}
|
||||
}
|
1
sketches/pendulum/pendulum.eep
Normal file
1
sketches/pendulum/pendulum.eep
Normal file
@ -0,0 +1 @@
|
||||
:00000001FF
|
BIN
sketches/pendulum/pendulum.elf
Executable file
BIN
sketches/pendulum/pendulum.elf
Executable file
Binary file not shown.
216
sketches/pendulum/pendulum.hex
Normal file
216
sketches/pendulum/pendulum.hex
Normal file
@ -0,0 +1,216 @@
|
||||
:100000000C943B000C9458000C945A000C9458002B
|
||||
:100010000C9458000C9458000C9458000C94580000
|
||||
:100020000C9458000C9458000C9458000C945800F0
|
||||
:100030000C9458000C94B7000C9458000C94580081
|
||||
:100040000C9458000C9458000C9458000C945800D0
|
||||
:100050000C9458000C9458000C9458000C945800C0
|
||||
:100060000C9458000C945800AA02AE02B202B502D9
|
||||
:10007000B902BD02AA0211241FBECFEFD8E0DEBF35
|
||||
:10008000CDBF11E0A0E0B1E0E0E6FDE002C00590E8
|
||||
:100090000D92AA30B107D9F721E0AAE0B1E001C082
|
||||
:1000A0001D92AA31B207E1F70E9408030C94AE0634
|
||||
:1000B0000C9400001F920F920FB60F9211242F93F1
|
||||
:1000C0003F938F939F93AF93BF93EF93FF93E998E1
|
||||
:1000D0008091160190911701A0911801B09119011A
|
||||
:1000E000E4E8F0E020813181820F931FA11DB11D52
|
||||
:1000F0008093120190931301A0931401B093150102
|
||||
:100100008091120190911301A0911401B0911501F9
|
||||
:10011000B695A7959795879580930A0190930B01C3
|
||||
:10012000A0930C01B0930D01118210821092160160
|
||||
:1001300010921701109218011092190110920E01DD
|
||||
:1001400010920F01109210011092110198B182E0EB
|
||||
:10015000892788B9FF91EF91BF91AF919F918F91BE
|
||||
:100160003F912F910F900FBE0F901F9018951F92E7
|
||||
:100170000F920FB60F9211248F939F93AF93BF935B
|
||||
:100180008091160190911701A0911801B091190169
|
||||
:1001900011968093160190931701A0931801B093C4
|
||||
:1001A0001901BF91AF919F918F910F900FBE0F904A
|
||||
:1001B0001F901895409A00C000C000C0409800C031
|
||||
:1001C00000C000C000C000C000C000C00000089512
|
||||
:1001D000409A00C000C000C000C000C000C000C005
|
||||
:1001E000409800C000C000C000C00895AF92BF9208
|
||||
:1001F000CF92DF92EF92FF920F931F93CF93DF93F3
|
||||
:10020000C82EE42EC8E0D0E000E810E0A62EB12C05
|
||||
:10021000C8018A219B21892B19F00E94E80002C0A5
|
||||
:100220000E94DA0015950795219791F7C8E0D0E074
|
||||
:1002300000E810E0D12CC8018C219D21892B19F0F8
|
||||
:100240000E94E80002C00E94DA00159507952197E8
|
||||
:1002500091F7C8E0D0E000E810E0F12CC8018E2151
|
||||
:100260009F21892B19F00E94E80002C00E94DA0049
|
||||
:1002700015950795219791F7DF91CF911F910F91D8
|
||||
:10028000FF90EF90DF90CF90BF90AF9008952F92A6
|
||||
:100290003F924F925F926F927F928F929F92AF9216
|
||||
:1002A000BF92CF92DF92EF92FF920F931F93CF9363
|
||||
:1002B000DF93CDB7DEB72A970FB6F894DEBF0FBE37
|
||||
:1002C000CDBFD82EC92EF7010130110501F13B0138
|
||||
:1002D0002901461A570A842F90E0BC016D19710953
|
||||
:1002E0007E836D83852F90E09C012C19310938871E
|
||||
:1002F0002F8333961A861986E12CF12C80E090E04A
|
||||
:1003000020E030E0580141E0A41AB10805C0608344
|
||||
:100310007183828393833DC01C01240C351C4D8165
|
||||
:100320005E814E0D5F1D5A8349834F8158856985D3
|
||||
:100330007A85460F571F5C834B832017310749F19D
|
||||
:100340004F0153E0851A9108B5010E948006660DA1
|
||||
:10035000771DD4016D937C934F01B1E08B1A910806
|
||||
:10036000C701B5010E9480066D0DD4016C9389858B
|
||||
:100370009A85B5010E9480066C0D60832F5F3F4F08
|
||||
:1003800034964B815C815A874987E980FA80C101A4
|
||||
:10039000C3CF2A960FB6F894DEBF0FBECDBFDF9154
|
||||
:1003A000CF911F910F91FF90EF90DF90CF90BF9072
|
||||
:1003B000AF909F908F907F906F905F904F903F9005
|
||||
:1003C0002F9008952F923F924F925F926F927F925B
|
||||
:1003D0008F929F92AF92BF92CF92DF92EF92FF9255
|
||||
:1003E0000F931F93CF93DF9300D000D0CDB7DEB72C
|
||||
:1003F000FC01B2803380B11004C0232C3B823C82CC
|
||||
:10040000C2C0FC0100811181B8010836F1E01F076C
|
||||
:1004100010F06856714080E090E00E9485052B0145
|
||||
:100420003C01632D70E080E090E00E94850520E0B3
|
||||
:1004300030E048EC52E40E94E4046B017C016B2D37
|
||||
:1004400070E080E090E00E94850520E030E048EC1C
|
||||
:1004500052E40E94E4044B015C0120E030E040E7FC
|
||||
:1004600052E4C301B2010E94E4042B013C010E944A
|
||||
:1004700056056A8370E080E090E00E9487059B014A
|
||||
:10048000AC01C301B2010E9477042B013C01A5011C
|
||||
:10049000940160E070E080E89FE30E9477049B0194
|
||||
:1004A000AC01C701B6010E94130620E030E040E035
|
||||
:1004B00053E40E9413060E945605262EA3019201C2
|
||||
:1004C000C501B4010E9413069B01AC0160E070E01D
|
||||
:1004D00080E89FE30E9477049B01AC01C701B6014D
|
||||
:1004E0000E94130620E030E040E053E40E9413062F
|
||||
:1004F0000E9456056983A301920160E070E080E8E4
|
||||
:100500009FE30E9477049B01AC01C501B4010E94E6
|
||||
:1005100013069B01AC0160E070E080E89FE30E945D
|
||||
:1005200077049B01AC01C701B6010E94130620E0CD
|
||||
:1005300030E040E053E40E9413060E9456052A81F1
|
||||
:10054000822F90E087309105E8F4FC01EC5CFF4FCE
|
||||
:100550000C9494062B826C83232C15C02B823C8236
|
||||
:10056000298011C06B833C820EC03B8289818C83C1
|
||||
:100570000AC03B822C82262E06C0E981EB832C82A6
|
||||
:10058000202E01C0212C622D7C818B810F900F9039
|
||||
:100590000F900F90DF91CF911F910F91FF90EF90EF
|
||||
:1005A000DF90CF90BF90AF909F908F907F906F9093
|
||||
:1005B0005F904F903F902F900895CF92DF92EF92EF
|
||||
:1005C000FF920F931F93CF93DF936A01EB017C019E
|
||||
:1005D00000E010E00C151D0561F0C7010E94E2016A
|
||||
:1005E0006993799389930F5F1F4F84E0E80EF11CA4
|
||||
:1005F000F1CFDF91CF911F910F91FF90EF90DF909E
|
||||
:10060000CF900895282F862F622F792F942F089549
|
||||
:10061000CF93DF93CDB7DEB7C25DD1090FB6F894A3
|
||||
:10062000DEBF0FBECDBFE99A809169008C608093D8
|
||||
:10063000690080916F00816080936F0080918100DC
|
||||
:100640008160809381008FB780688FBF8FE387B907
|
||||
:1006500018B8809100019091010144E164E60E9484
|
||||
:1006600002034B015C01809102019091030144E17E
|
||||
:1006700064E60E9402039E012F5F3F4F79010EE165
|
||||
:1006800010E0A50194010E9447014EE150E0BE0137
|
||||
:1006900067587F4FC7010E94DD0249E7A42EB12CA5
|
||||
:1006A000AC0EBD1E32E0A30EB11C4E0185ED880ECE
|
||||
:1006B000911C8501D8011197C8010297F80140816A
|
||||
:1006C0006C91FC0180810E94F6000D5F1F4F0815A0
|
||||
:1006D000190581F78091020190910301089690938A
|
||||
:1006E000030180930201809100019091010108971C
|
||||
:1006F000909301018093000180910001909101018C
|
||||
:1007000044E164E60E9402032B013C018091020156
|
||||
:100710009091030144E164E60E9402039E012F5F71
|
||||
:100720003F4F79010EE110E0A30192010E944701C1
|
||||
:100730004EE150E0BE0167587F4FC7010E94DD02C5
|
||||
:10074000DD24D39434E0C32E40911601509117015B
|
||||
:100750006091180170911901809184009091850039
|
||||
:10076000480F591F611D711D80910A0190910B0165
|
||||
:10077000A0910C01B0910D0184179507A607B7074A
|
||||
:1007800008F4E99A8091120190911301A09114014B
|
||||
:10079000B091150125E0B695A795979587952A956F
|
||||
:1007A000D1F700910E0110910F01209110013091AD
|
||||
:1007B0001101080F191F2A1F3B1F041715072607D1
|
||||
:1007C000370710F640910E0150910F016091100112
|
||||
:1007D00070911101840F951FA61FB71F80930E0102
|
||||
:1007E00090930F01A0931001B093110188B18C2553
|
||||
:1007F00088B9F8948501D8011197C8010297F801CA
|
||||
:1008000040816C91FC0180810E94F6000D5F1F4FBA
|
||||
:100810000815190581F778948091020190910301E0
|
||||
:10082000FD2D28E0F202800D911D1124909303010B
|
||||
:1008300080930201809100019091010138E0F30260
|
||||
:1008400080199109112490930101809300018091F6
|
||||
:1008500000019091010144E164E60E9402032B0132
|
||||
:100860003C01809102019091030144E164E60E9401
|
||||
:100870000203FE0131967F010EE110E0A301920117
|
||||
:100880000E9447014EE150E0BE0167587F4FC7010B
|
||||
:100890000E94DD02F1E0DF1212C08091020190910E
|
||||
:1008A00003018236924018F0DD24DA944DCF809116
|
||||
:1008B0000001909101018F359140B0F345CF8FEF4A
|
||||
:1008C000D81611F0D12C40CF8091020190910301F4
|
||||
:1008D0008F35914018F4DD24D39436CF80910001F8
|
||||
:1008E000909101018236924008F42ECFF4CF5058F7
|
||||
:1008F000BB27AA270E948F040C94D9050E94CB0520
|
||||
:1009000038F00E94D20520F039F49F3F19F426F404
|
||||
:100910000C94C8050EF4E095E7FB0C94C205E92F92
|
||||
:100920000E94EA0558F3BA17620773078407950710
|
||||
:1009300020F079F4A6F50C940C060EF4E0950B2E3D
|
||||
:10094000BA2FA02D0B01B90190010C01CA01A00121
|
||||
:100950001124FF27591B99F0593F50F4503E68F17C
|
||||
:100960001A16F040A22F232F342F4427585FF3CFBD
|
||||
:10097000469537952795A795F0405395C9F77EF48E
|
||||
:100980001F16BA0B620B730B840BBAF09150A1F0D7
|
||||
:10099000FF0FBB1F661F771F881FC2F70EC0BA0F5D
|
||||
:1009A000621F731F841F48F4879577956795B795E5
|
||||
:1009B000F7959E3F08F0B0CF9395880F08F09927E0
|
||||
:1009C000EE0F9795879508950E94F8040C94D90529
|
||||
:1009D0000E94D20558F00E94CB0540F029F45F3FF9
|
||||
:1009E00029F00C94C20551110C940D060C94C80505
|
||||
:1009F0000E94EA0568F39923B1F3552391F3951BFF
|
||||
:100A0000550BBB27AA2762177307840738F09F5F2F
|
||||
:100A10005F4F220F331F441FAA1FA9F335D00E2E9C
|
||||
:100A20003AF0E0E832D091505040E695001CCAF709
|
||||
:100A30002BD0FE2F29D0660F771F881FBB1F2617CC
|
||||
:100A400037074807AB07B0E809F0BB0B802DBF01A3
|
||||
:100A5000FF2793585F4F3AF09E3F510578F00C9472
|
||||
:100A6000C2050C940D065F3FE4F3983ED4F38695DF
|
||||
:100A700077956795B795F7959F5FC9F7880F911D93
|
||||
:100A80009695879597F90895E1E0660F771F881F7F
|
||||
:100A9000BB1F621773078407BA0720F0621B730B32
|
||||
:100AA000840BBA0BEE1F88F7E09508950E94F205BB
|
||||
:100AB00088F09F5798F0B92F9927B751B0F0E1F01F
|
||||
:100AC000660F771F881F991F1AF0BA95C9F714C0CF
|
||||
:100AD000B13091F00E940C06B1E008950C940C0620
|
||||
:100AE000672F782F8827B85F39F0B93FCCF3869508
|
||||
:100AF00077956795B395D9F73EF490958095709565
|
||||
:100B000061957F4F8F4F9F4F0895E89409C097FBE1
|
||||
:100B10003EF490958095709561957F4F8F4F9F4FD4
|
||||
:100B20009923A9F0F92F96E9BB279395F695879518
|
||||
:100B300077956795B795F111F8CFFAF4BB0F11F4DB
|
||||
:100B400060FF1BC06F5F7F4F8F4F9F4F16C0882382
|
||||
:100B500011F096E911C0772321F09EE8872F762FB8
|
||||
:100B600005C0662371F096E8862F70E060E02AF0F9
|
||||
:100B70009A95660F771F881FDAF7880F96958795E5
|
||||
:100B800097F9089597F99F6780E870E060E008950D
|
||||
:100B90009FEF80EC089500240A9416161706180695
|
||||
:100BA0000906089500240A94121613061406050671
|
||||
:100BB0000895092E0394000C11F4882352F0BB0F02
|
||||
:100BC00040F4BF2B11F460FF04C06F5F7F4F8F4F65
|
||||
:100BD0009F4F089557FD9058440F551F59F05F3FA0
|
||||
:100BE00071F04795880F97FB991F61F09F3F79F04F
|
||||
:100BF00087950895121613061406551FF2CF4695D1
|
||||
:100C0000F1DF08C0161617061806991FF1CF869552
|
||||
:100C10007105610508940895E894BB276627772736
|
||||
:100C2000CB0197F908950E9426060C94D9050E94DD
|
||||
:100C3000CB0538F00E94D20520F0952311F00C94DA
|
||||
:100C4000C2050C94C80511240C940D060E94EA05F7
|
||||
:100C500070F3959FC1F3950F50E0551F629FF0010F
|
||||
:100C6000729FBB27F00DB11D639FAA27F00DB11D28
|
||||
:100C7000AA1F649F6627B00DA11D661F829F2227B1
|
||||
:100C8000B00DA11D621F739FB00DA11D621F839F38
|
||||
:100C9000A00D611D221F749F3327A00D611D231F0E
|
||||
:100CA000849F600D211D822F762F6A2F11249F575C
|
||||
:100CB00050409AF0F1F088234AF0EE0FFF1FBB1F5F
|
||||
:100CC000661F771F881F91505040A9F79E3F51051E
|
||||
:100CD00080F00C94C2050C940D065F3FE4F3983E3F
|
||||
:100CE000D4F3869577956795B795F795E7959F5FC8
|
||||
:100CF000C1F7FE2B880F911D9695879597F908955A
|
||||
:100D000097FB072E16F4009407D077FD09D00E94B8
|
||||
:100D10009A0607FC05D03EF4909581959F4F089563
|
||||
:100D2000709561957F4F0895EE0FFF1F0590F49128
|
||||
:100D3000E02D0994AA1BBB1B51E107C0AA1FBB1FD2
|
||||
:100D4000A617B70710F0A61BB70B881F991F5A9557
|
||||
:100D5000A9F780959095BC01CD010895F894FFCF37
|
||||
:0A0D6000E001E001012000000000A6
|
||||
:00000001FF
|
1929
sketches/pendulum/pendulum.lss
Normal file
1929
sketches/pendulum/pendulum.lss
Normal file
File diff suppressed because it is too large
Load Diff
1078
sketches/pendulum/pendulum.lst
Normal file
1078
sketches/pendulum/pendulum.lst
Normal file
File diff suppressed because it is too large
Load Diff
772
sketches/pendulum/pendulum.map
Normal file
772
sketches/pendulum/pendulum.map
Normal file
@ -0,0 +1,772 @@
|
||||
Archive member included to satisfy reference by file (symbol)
|
||||
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3.o)
|
||||
color_hsv.o (__subsf3)
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3x.o)
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3.o) (__addsf3x)
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(divsf3.o)
|
||||
color_hsv.o (__divsf3)
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(divsf3x.o)
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(divsf3.o) (__divsf3x)
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fixunssfsi.o)
|
||||
color_hsv.o (__fixunssfsi)
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(floatsisf.o)
|
||||
color_hsv.o (__floatunsisf)
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_inf.o)
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3x.o) (__fp_inf)
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_nan.o)
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3x.o) (__fp_nan)
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_pscA.o)
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3x.o) (__fp_pscA)
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_pscB.o)
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3x.o) (__fp_pscB)
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_round.o)
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3.o) (__fp_round)
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_split3.o)
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3x.o) (__fp_split3)
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_zero.o)
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3x.o) (__fp_zero)
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(mulsf3.o)
|
||||
color_hsv.o (__mulsf3)
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(mulsf3x.o)
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(mulsf3.o) (__mulsf3x)
|
||||
/usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodhi4.o)
|
||||
color_hsv.o (__divmodhi4)
|
||||
/usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o (exit)
|
||||
/usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_tablejump2.o)
|
||||
color_hsv.o (__tablejump2__)
|
||||
/usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
|
||||
pendulum.o (__do_copy_data)
|
||||
/usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
|
||||
pendulum.o (__do_clear_bss)
|
||||
/usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_udivmodhi4.o)
|
||||
/usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodhi4.o) (__udivmodhi4)
|
||||
|
||||
↵
|
||||
Speichereinrichtung
|
||||
↵
|
||||
|
||||
Name Ursprung Länge Eigenschaften
|
||||
text 0x0000000000000000 0x0000000000020000 xr
|
||||
data 0x0000000000800060 0x000000000000ffa0 rw !x
|
||||
eeprom 0x0000000000810000 0x0000000000010000 rw !x
|
||||
fuse 0x0000000000820000 0x0000000000000400 rw !x
|
||||
lock 0x0000000000830000 0x0000000000000400 rw !x
|
||||
signature 0x0000000000840000 0x0000000000000400 rw !x
|
||||
user_signatures 0x0000000000850000 0x0000000000000400 rw !x
|
||||
*default* 0x0000000000000000 0xffffffffffffffff
|
||||
|
||||
Linker script and memory map
|
||||
|
||||
Address of section .data set to 0x800100
|
||||
LOAD /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
|
||||
LOAD pendulum.o
|
||||
LOAD color_hsv.o
|
||||
LOAD /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a
|
||||
START GROUP
|
||||
LOAD /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a
|
||||
LOAD /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a
|
||||
LOAD /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libc.a
|
||||
LOAD /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libatmega328p.a
|
||||
END GROUP
|
||||
|
||||
.hash
|
||||
*(.hash)
|
||||
|
||||
.dynsym
|
||||
*(.dynsym)
|
||||
|
||||
.dynstr
|
||||
*(.dynstr)
|
||||
|
||||
.gnu.version
|
||||
*(.gnu.version)
|
||||
|
||||
.gnu.version_d
|
||||
*(.gnu.version_d)
|
||||
|
||||
.gnu.version_r
|
||||
*(.gnu.version_r)
|
||||
|
||||
.rel.init
|
||||
*(.rel.init)
|
||||
|
||||
.rela.init
|
||||
*(.rela.init)
|
||||
|
||||
.rel.text
|
||||
*(.rel.text)
|
||||
*(.rel.text.*)
|
||||
*(.rel.gnu.linkonce.t*)
|
||||
|
||||
.rela.text
|
||||
*(.rela.text)
|
||||
*(.rela.text.*)
|
||||
*(.rela.gnu.linkonce.t*)
|
||||
|
||||
.rel.fini
|
||||
*(.rel.fini)
|
||||
|
||||
.rela.fini
|
||||
*(.rela.fini)
|
||||
|
||||
.rel.rodata
|
||||
*(.rel.rodata)
|
||||
*(.rel.rodata.*)
|
||||
*(.rel.gnu.linkonce.r*)
|
||||
|
||||
.rela.rodata
|
||||
*(.rela.rodata)
|
||||
*(.rela.rodata.*)
|
||||
*(.rela.gnu.linkonce.r*)
|
||||
|
||||
.rel.data
|
||||
*(.rel.data)
|
||||
*(.rel.data.*)
|
||||
*(.rel.gnu.linkonce.d*)
|
||||
|
||||
.rela.data
|
||||
*(.rela.data)
|
||||
*(.rela.data.*)
|
||||
*(.rela.gnu.linkonce.d*)
|
||||
|
||||
.rel.ctors
|
||||
*(.rel.ctors)
|
||||
|
||||
.rela.ctors
|
||||
*(.rela.ctors)
|
||||
|
||||
.rel.dtors
|
||||
*(.rel.dtors)
|
||||
|
||||
.rela.dtors
|
||||
*(.rela.dtors)
|
||||
|
||||
.rel.got
|
||||
*(.rel.got)
|
||||
|
||||
.rela.got
|
||||
*(.rela.got)
|
||||
|
||||
.rel.bss
|
||||
*(.rel.bss)
|
||||
|
||||
.rela.bss
|
||||
*(.rela.bss)
|
||||
|
||||
.rel.plt
|
||||
*(.rel.plt)
|
||||
|
||||
.rela.plt
|
||||
*(.rela.plt)
|
||||
|
||||
.text 0x0000000000000000 0xd60
|
||||
*(.vectors)
|
||||
.vectors 0x0000000000000000 0x68 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
|
||||
0x0000000000000000 __vectors
|
||||
0x0000000000000000 __vector_default
|
||||
*(.vectors)
|
||||
*(.progmem.gcc*)
|
||||
.progmem.gcc_sw_table
|
||||
0x0000000000000068 0xe color_hsv.o
|
||||
0x0000000000000076 . = ALIGN (0x2)
|
||||
0x0000000000000076 __trampolines_start = .
|
||||
*(.trampolines)
|
||||
.trampolines 0x0000000000000076 0x0 linker stubs
|
||||
*(.trampolines*)
|
||||
0x0000000000000076 __trampolines_end = .
|
||||
*(.progmem*)
|
||||
0x0000000000000076 . = ALIGN (0x2)
|
||||
*(.jumptables)
|
||||
*(.jumptables*)
|
||||
*(.lowtext)
|
||||
*(.lowtext*)
|
||||
0x0000000000000076 __ctors_start = .
|
||||
*(.ctors)
|
||||
0x0000000000000076 __ctors_end = .
|
||||
0x0000000000000076 __dtors_start = .
|
||||
*(.dtors)
|
||||
0x0000000000000076 __dtors_end = .
|
||||
SORT(*)(.ctors)
|
||||
SORT(*)(.dtors)
|
||||
*(.init0)
|
||||
.init0 0x0000000000000076 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
|
||||
0x0000000000000076 __init
|
||||
*(.init0)
|
||||
*(.init1)
|
||||
*(.init1)
|
||||
*(.init2)
|
||||
.init2 0x0000000000000076 0xc /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
|
||||
*(.init2)
|
||||
*(.init3)
|
||||
*(.init3)
|
||||
*(.init4)
|
||||
.init4 0x0000000000000082 0x16 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
|
||||
0x0000000000000082 __do_copy_data
|
||||
.init4 0x0000000000000098 0x10 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
|
||||
0x0000000000000098 __do_clear_bss
|
||||
*(.init4)
|
||||
*(.init5)
|
||||
*(.init5)
|
||||
*(.init6)
|
||||
*(.init6)
|
||||
*(.init7)
|
||||
*(.init7)
|
||||
*(.init8)
|
||||
*(.init8)
|
||||
*(.init9)
|
||||
.init9 0x00000000000000a8 0x8 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
|
||||
*(.init9)
|
||||
*(.text)
|
||||
.text 0x00000000000000b0 0x4 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
|
||||
0x00000000000000b0 __vector_22
|
||||
0x00000000000000b0 __vector_1
|
||||
0x00000000000000b0 __vector_24
|
||||
0x00000000000000b0 __vector_12
|
||||
0x00000000000000b0 __bad_interrupt
|
||||
0x00000000000000b0 __vector_6
|
||||
0x00000000000000b0 __vector_3
|
||||
0x00000000000000b0 __vector_23
|
||||
0x00000000000000b0 __vector_25
|
||||
0x00000000000000b0 __vector_11
|
||||
0x00000000000000b0 __vector_17
|
||||
0x00000000000000b0 __vector_19
|
||||
0x00000000000000b0 __vector_7
|
||||
0x00000000000000b0 __vector_5
|
||||
0x00000000000000b0 __vector_4
|
||||
0x00000000000000b0 __vector_9
|
||||
0x00000000000000b0 __vector_21
|
||||
0x00000000000000b0 __vector_15
|
||||
0x00000000000000b0 __vector_8
|
||||
0x00000000000000b0 __vector_14
|
||||
0x00000000000000b0 __vector_10
|
||||
0x00000000000000b0 __vector_16
|
||||
0x00000000000000b0 __vector_18
|
||||
0x00000000000000b0 __vector_20
|
||||
.text 0x00000000000000b4 0x1da pendulum.o
|
||||
0x00000000000000b4 __vector_2
|
||||
0x000000000000016e __vector_13
|
||||
0x00000000000001b4 writeZero
|
||||
0x00000000000001d0 writeOne
|
||||
0x00000000000001ec writeRGB
|
||||
.text 0x000000000000028e 0x382 color_hsv.o
|
||||
0x000000000000028e interpolate
|
||||
0x00000000000003c4 hsv2rgb
|
||||
0x00000000000005ba hsv2rgbList
|
||||
0x0000000000000604 init_hsv_t
|
||||
.text 0x0000000000000610 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3.o)
|
||||
.text 0x0000000000000610 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3x.o)
|
||||
.text 0x0000000000000610 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(divsf3.o)
|
||||
.text 0x0000000000000610 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(divsf3x.o)
|
||||
.text 0x0000000000000610 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fixunssfsi.o)
|
||||
.text 0x0000000000000610 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(floatsisf.o)
|
||||
.text 0x0000000000000610 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_inf.o)
|
||||
.text 0x0000000000000610 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_nan.o)
|
||||
.text 0x0000000000000610 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_pscA.o)
|
||||
.text 0x0000000000000610 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_pscB.o)
|
||||
.text 0x0000000000000610 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_round.o)
|
||||
.text 0x0000000000000610 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_split3.o)
|
||||
.text 0x0000000000000610 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_zero.o)
|
||||
.text 0x0000000000000610 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(mulsf3.o)
|
||||
.text 0x0000000000000610 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(mulsf3x.o)
|
||||
.text 0x0000000000000610 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodhi4.o)
|
||||
.text 0x0000000000000610 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
|
||||
.text 0x0000000000000610 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_tablejump2.o)
|
||||
.text 0x0000000000000610 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
|
||||
.text 0x0000000000000610 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
|
||||
.text 0x0000000000000610 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_udivmodhi4.o)
|
||||
0x0000000000000610 . = ALIGN (0x2)
|
||||
*(.text.*)
|
||||
.text.startup 0x0000000000000610 0x2de pendulum.o
|
||||
0x0000000000000610 main
|
||||
.text.avr-libc.fplib
|
||||
0x00000000000008ee 0xe /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3.o)
|
||||
0x00000000000008ee __subsf3
|
||||
0x00000000000008f0 __addsf3
|
||||
.text.avr-libc.fplib
|
||||
0x00000000000008fc 0xcc /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3x.o)
|
||||
0x000000000000091e __addsf3x
|
||||
.text.avr-libc.fplib
|
||||
0x00000000000009c8 0x8 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(divsf3.o)
|
||||
0x00000000000009c8 __divsf3
|
||||
.text.avr-libc.fplib
|
||||
0x00000000000009d0 0xdc /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(divsf3x.o)
|
||||
0x00000000000009f0 __divsf3x
|
||||
0x00000000000009f6 __divsf3_pse
|
||||
.text.avr-libc.fplib
|
||||
0x0000000000000aac 0x5e /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fixunssfsi.o)
|
||||
0x0000000000000aac __fixunssfsi
|
||||
.text.avr-libc.fplib
|
||||
0x0000000000000b0a 0x7a /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(floatsisf.o)
|
||||
0x0000000000000b0a __floatunsisf
|
||||
0x0000000000000b0e __floatsisf
|
||||
.text.avr-libc.fplib
|
||||
0x0000000000000b84 0xc /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_inf.o)
|
||||
0x0000000000000b84 __fp_inf
|
||||
.text.avr-libc.fplib
|
||||
0x0000000000000b90 0x6 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_nan.o)
|
||||
0x0000000000000b90 __fp_nan
|
||||
.text.avr-libc.fplib
|
||||
0x0000000000000b96 0xe /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_pscA.o)
|
||||
0x0000000000000b96 __fp_pscA
|
||||
.text.avr-libc.fplib
|
||||
0x0000000000000ba4 0xe /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_pscB.o)
|
||||
0x0000000000000ba4 __fp_pscB
|
||||
.text.avr-libc.fplib
|
||||
0x0000000000000bb2 0x22 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_round.o)
|
||||
0x0000000000000bb2 __fp_round
|
||||
.text.avr-libc.fplib
|
||||
0x0000000000000bd4 0x44 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_split3.o)
|
||||
0x0000000000000bd4 __fp_split3
|
||||
0x0000000000000be4 __fp_splitA
|
||||
.text.avr-libc.fplib
|
||||
0x0000000000000c18 0xe /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_zero.o)
|
||||
0x0000000000000c18 __fp_zero
|
||||
0x0000000000000c1a __fp_szero
|
||||
.text.avr-libc.fplib
|
||||
0x0000000000000c26 0x8 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(mulsf3.o)
|
||||
0x0000000000000c26 __mulsf3
|
||||
.text.avr-libc.fplib
|
||||
0x0000000000000c2e 0xd2 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(mulsf3x.o)
|
||||
0x0000000000000c4c __mulsf3x
|
||||
0x0000000000000c52 __mulsf3_pse
|
||||
.text.libgcc.mul
|
||||
0x0000000000000d00 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodhi4.o)
|
||||
.text.libgcc.div
|
||||
0x0000000000000d00 0x28 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodhi4.o)
|
||||
0x0000000000000d00 __divmodhi4
|
||||
0x0000000000000d00 _div
|
||||
.text.libgcc 0x0000000000000d28 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodhi4.o)
|
||||
.text.libgcc.prologue
|
||||
0x0000000000000d28 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodhi4.o)
|
||||
.text.libgcc.builtins
|
||||
0x0000000000000d28 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodhi4.o)
|
||||
.text.libgcc.fmul
|
||||
0x0000000000000d28 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodhi4.o)
|
||||
.text.libgcc.fixed
|
||||
0x0000000000000d28 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodhi4.o)
|
||||
.text.libgcc.mul
|
||||
0x0000000000000d28 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
|
||||
.text.libgcc.div
|
||||
0x0000000000000d28 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
|
||||
.text.libgcc 0x0000000000000d28 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
|
||||
.text.libgcc.prologue
|
||||
0x0000000000000d28 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
|
||||
.text.libgcc.builtins
|
||||
0x0000000000000d28 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
|
||||
.text.libgcc.fmul
|
||||
0x0000000000000d28 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
|
||||
.text.libgcc.fixed
|
||||
0x0000000000000d28 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
|
||||
.text.libgcc.mul
|
||||
0x0000000000000d28 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_tablejump2.o)
|
||||
.text.libgcc.div
|
||||
0x0000000000000d28 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_tablejump2.o)
|
||||
.text.libgcc 0x0000000000000d28 0xc /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_tablejump2.o)
|
||||
0x0000000000000d28 __tablejump2__
|
||||
.text.libgcc.prologue
|
||||
0x0000000000000d34 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_tablejump2.o)
|
||||
.text.libgcc.builtins
|
||||
0x0000000000000d34 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_tablejump2.o)
|
||||
.text.libgcc.fmul
|
||||
0x0000000000000d34 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_tablejump2.o)
|
||||
.text.libgcc.fixed
|
||||
0x0000000000000d34 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_tablejump2.o)
|
||||
.text.libgcc.mul
|
||||
0x0000000000000d34 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
|
||||
.text.libgcc.div
|
||||
0x0000000000000d34 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
|
||||
.text.libgcc 0x0000000000000d34 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
|
||||
.text.libgcc.prologue
|
||||
0x0000000000000d34 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
|
||||
.text.libgcc.builtins
|
||||
0x0000000000000d34 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
|
||||
.text.libgcc.fmul
|
||||
0x0000000000000d34 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
|
||||
.text.libgcc.fixed
|
||||
0x0000000000000d34 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
|
||||
.text.libgcc.mul
|
||||
0x0000000000000d34 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
|
||||
.text.libgcc.div
|
||||
0x0000000000000d34 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
|
||||
.text.libgcc 0x0000000000000d34 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
|
||||
.text.libgcc.prologue
|
||||
0x0000000000000d34 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
|
||||
.text.libgcc.builtins
|
||||
0x0000000000000d34 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
|
||||
.text.libgcc.fmul
|
||||
0x0000000000000d34 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
|
||||
.text.libgcc.fixed
|
||||
0x0000000000000d34 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
|
||||
.text.libgcc.mul
|
||||
0x0000000000000d34 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_udivmodhi4.o)
|
||||
.text.libgcc.div
|
||||
0x0000000000000d34 0x28 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_udivmodhi4.o)
|
||||
0x0000000000000d34 __udivmodhi4
|
||||
.text.libgcc 0x0000000000000d5c 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_udivmodhi4.o)
|
||||
.text.libgcc.prologue
|
||||
0x0000000000000d5c 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_udivmodhi4.o)
|
||||
.text.libgcc.builtins
|
||||
0x0000000000000d5c 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_udivmodhi4.o)
|
||||
.text.libgcc.fmul
|
||||
0x0000000000000d5c 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_udivmodhi4.o)
|
||||
.text.libgcc.fixed
|
||||
0x0000000000000d5c 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_udivmodhi4.o)
|
||||
0x0000000000000d5c . = ALIGN (0x2)
|
||||
*(.fini9)
|
||||
.fini9 0x0000000000000d5c 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
|
||||
0x0000000000000d5c exit
|
||||
0x0000000000000d5c _exit
|
||||
*(.fini9)
|
||||
*(.fini8)
|
||||
*(.fini8)
|
||||
*(.fini7)
|
||||
*(.fini7)
|
||||
*(.fini6)
|
||||
*(.fini6)
|
||||
*(.fini5)
|
||||
*(.fini5)
|
||||
*(.fini4)
|
||||
*(.fini4)
|
||||
*(.fini3)
|
||||
*(.fini3)
|
||||
*(.fini2)
|
||||
*(.fini2)
|
||||
*(.fini1)
|
||||
*(.fini1)
|
||||
*(.fini0)
|
||||
.fini0 0x0000000000000d5c 0x4 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
|
||||
*(.fini0)
|
||||
0x0000000000000d60 _etext = .
|
||||
|
||||
.data 0x0000000000800100 0xa load address 0x0000000000000d60
|
||||
0x0000000000800100 PROVIDE (__data_start, .)
|
||||
*(.data)
|
||||
.data 0x0000000000800100 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
|
||||
.data 0x0000000000800100 0x5 pendulum.o
|
||||
0x0000000000800100 max
|
||||
0x0000000000800102 min
|
||||
0x0000000000800104 status
|
||||
.data 0x0000000000800105 0x0 color_hsv.o
|
||||
.data 0x0000000000800105 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3.o)
|
||||
.data 0x0000000000800105 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3x.o)
|
||||
.data 0x0000000000800105 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(divsf3.o)
|
||||
.data 0x0000000000800105 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(divsf3x.o)
|
||||
.data 0x0000000000800105 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fixunssfsi.o)
|
||||
.data 0x0000000000800105 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(floatsisf.o)
|
||||
.data 0x0000000000800105 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_inf.o)
|
||||
.data 0x0000000000800105 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_nan.o)
|
||||
.data 0x0000000000800105 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_pscA.o)
|
||||
.data 0x0000000000800105 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_pscB.o)
|
||||
.data 0x0000000000800105 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_round.o)
|
||||
.data 0x0000000000800105 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_split3.o)
|
||||
.data 0x0000000000800105 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_zero.o)
|
||||
.data 0x0000000000800105 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(mulsf3.o)
|
||||
.data 0x0000000000800105 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(mulsf3x.o)
|
||||
.data 0x0000000000800105 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodhi4.o)
|
||||
.data 0x0000000000800105 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
|
||||
.data 0x0000000000800105 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_tablejump2.o)
|
||||
.data 0x0000000000800105 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
|
||||
.data 0x0000000000800105 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
|
||||
.data 0x0000000000800105 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_udivmodhi4.o)
|
||||
*(.data*)
|
||||
*(.rodata)
|
||||
.rodata 0x0000000000800105 0x4 pendulum.o
|
||||
0x0000000000800105 colorSteps
|
||||
*(.rodata*)
|
||||
*(.gnu.linkonce.d*)
|
||||
0x000000000080010a . = ALIGN (0x2)
|
||||
*fill* 0x0000000000800109 0x1
|
||||
0x000000000080010a _edata = .
|
||||
0x000000000080010a PROVIDE (__data_end, .)
|
||||
|
||||
.bss 0x000000000080010a 0x10
|
||||
0x000000000080010a PROVIDE (__bss_start, .)
|
||||
*(.bss)
|
||||
.bss 0x000000000080010a 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
|
||||
.bss 0x000000000080010a 0x10 pendulum.o
|
||||
0x000000000080010a cooldown
|
||||
0x000000000080010e oldTime
|
||||
0x0000000000800112 T_half
|
||||
0x0000000000800116 time
|
||||
.bss 0x000000000080011a 0x0 color_hsv.o
|
||||
.bss 0x000000000080011a 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3.o)
|
||||
.bss 0x000000000080011a 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3x.o)
|
||||
.bss 0x000000000080011a 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(divsf3.o)
|
||||
.bss 0x000000000080011a 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(divsf3x.o)
|
||||
.bss 0x000000000080011a 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fixunssfsi.o)
|
||||
.bss 0x000000000080011a 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(floatsisf.o)
|
||||
.bss 0x000000000080011a 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_inf.o)
|
||||
.bss 0x000000000080011a 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_nan.o)
|
||||
.bss 0x000000000080011a 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_pscA.o)
|
||||
.bss 0x000000000080011a 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_pscB.o)
|
||||
.bss 0x000000000080011a 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_round.o)
|
||||
.bss 0x000000000080011a 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_split3.o)
|
||||
.bss 0x000000000080011a 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_zero.o)
|
||||
.bss 0x000000000080011a 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(mulsf3.o)
|
||||
.bss 0x000000000080011a 0x0 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(mulsf3x.o)
|
||||
.bss 0x000000000080011a 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodhi4.o)
|
||||
.bss 0x000000000080011a 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
|
||||
.bss 0x000000000080011a 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_tablejump2.o)
|
||||
.bss 0x000000000080011a 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
|
||||
.bss 0x000000000080011a 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
|
||||
.bss 0x000000000080011a 0x0 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_udivmodhi4.o)
|
||||
*(.bss*)
|
||||
*(COMMON)
|
||||
0x000000000080011a PROVIDE (__bss_end, .)
|
||||
0x0000000000000d60 __data_load_start = LOADADDR (.data)
|
||||
0x0000000000000d6a __data_load_end = (__data_load_start + SIZEOF (.data))
|
||||
|
||||
.noinit 0x000000000080011a 0x0
|
||||
0x000000000080011a PROVIDE (__noinit_start, .)
|
||||
*(.noinit*)
|
||||
0x000000000080011a PROVIDE (__noinit_end, .)
|
||||
0x000000000080011a _end = .
|
||||
0x000000000080011a PROVIDE (__heap_start, .)
|
||||
|
||||
.eeprom 0x0000000000810000 0x0
|
||||
*(.eeprom*)
|
||||
0x0000000000810000 __eeprom_end = .
|
||||
|
||||
.fuse
|
||||
*(.fuse)
|
||||
*(.lfuse)
|
||||
*(.hfuse)
|
||||
*(.efuse)
|
||||
|
||||
.lock
|
||||
*(.lock*)
|
||||
|
||||
.signature
|
||||
*(.signature*)
|
||||
|
||||
.user_signatures
|
||||
*(.user_signatures*)
|
||||
|
||||
.stab 0x0000000000000000 0x1110
|
||||
*(.stab)
|
||||
.stab 0x0000000000000000 0xab0 pendulum.o
|
||||
.stab 0x0000000000000ab0 0x660 color_hsv.o
|
||||
0x834 (size before relaxing)
|
||||
|
||||
.stabstr 0x0000000000000000 0xf67
|
||||
*(.stabstr)
|
||||
.stabstr 0x0000000000000000 0xf67 pendulum.o
|
||||
|
||||
.stab.excl
|
||||
*(.stab.excl)
|
||||
|
||||
.stab.exclstr
|
||||
*(.stab.exclstr)
|
||||
|
||||
.stab.index
|
||||
*(.stab.index)
|
||||
|
||||
.stab.indexstr
|
||||
*(.stab.indexstr)
|
||||
|
||||
.comment 0x0000000000000000 0x11
|
||||
*(.comment)
|
||||
.comment 0x0000000000000000 0x11 pendulum.o
|
||||
0x12 (size before relaxing)
|
||||
.comment 0x0000000000000011 0x12 color_hsv.o
|
||||
|
||||
.note.gnu.avr.deviceinfo
|
||||
0x0000000000000000 0x40
|
||||
.note.gnu.avr.deviceinfo
|
||||
0x0000000000000000 0x40 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
|
||||
|
||||
.note.gnu.build-id
|
||||
*(.note.gnu.build-id)
|
||||
|
||||
.debug
|
||||
*(.debug)
|
||||
|
||||
.line
|
||||
*(.line)
|
||||
|
||||
.debug_srcinfo
|
||||
*(.debug_srcinfo)
|
||||
|
||||
.debug_sfnames
|
||||
*(.debug_sfnames)
|
||||
|
||||
.debug_aranges
|
||||
*(.debug_aranges)
|
||||
|
||||
.debug_pubnames
|
||||
*(.debug_pubnames)
|
||||
|
||||
.debug_info
|
||||
*(.debug_info .gnu.linkonce.wi.*)
|
||||
|
||||
.debug_abbrev
|
||||
*(.debug_abbrev)
|
||||
|
||||
.debug_line
|
||||
*(.debug_line .debug_line.* .debug_line_end)
|
||||
|
||||
.debug_frame
|
||||
*(.debug_frame)
|
||||
|
||||
.debug_str
|
||||
*(.debug_str)
|
||||
|
||||
.debug_loc
|
||||
*(.debug_loc)
|
||||
|
||||
.debug_macinfo
|
||||
*(.debug_macinfo)
|
||||
|
||||
.debug_weaknames
|
||||
*(.debug_weaknames)
|
||||
|
||||
.debug_funcnames
|
||||
*(.debug_funcnames)
|
||||
|
||||
.debug_typenames
|
||||
*(.debug_typenames)
|
||||
|
||||
.debug_varnames
|
||||
*(.debug_varnames)
|
||||
|
||||
.debug_pubtypes
|
||||
*(.debug_pubtypes)
|
||||
|
||||
.debug_ranges
|
||||
*(.debug_ranges)
|
||||
|
||||
.debug_macro
|
||||
*(.debug_macro)
|
||||
OUTPUT(pendulum.elf elf32-avr)
|
||||
LOAD linker stubs
|
||||
|
||||
Kreuzreferenz-Tabelle
|
||||
|
||||
Symbol Datei
|
||||
T_half pendulum.o
|
||||
__addsf3 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3.o)
|
||||
__addsf3x /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3x.o)
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3.o)
|
||||
__bad_interrupt /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
|
||||
__bss_end /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
|
||||
__bss_start /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
|
||||
__data_end /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
|
||||
__data_load_start /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
|
||||
__data_start /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
|
||||
__divmodhi4 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodhi4.o)
|
||||
color_hsv.o
|
||||
__divsf3 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(divsf3.o)
|
||||
color_hsv.o
|
||||
__divsf3_pse /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(divsf3x.o)
|
||||
__divsf3x /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(divsf3x.o)
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(divsf3.o)
|
||||
__do_clear_bss /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_clear_bss.o)
|
||||
pendulum.o
|
||||
__do_copy_data /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_copy_data.o)
|
||||
pendulum.o
|
||||
__fixunssfsi /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fixunssfsi.o)
|
||||
color_hsv.o
|
||||
__floatsisf /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(floatsisf.o)
|
||||
color_hsv.o
|
||||
__floatunsisf /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(floatsisf.o)
|
||||
color_hsv.o
|
||||
__fp_inf /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_inf.o)
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(mulsf3x.o)
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(divsf3x.o)
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3x.o)
|
||||
__fp_nan /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_nan.o)
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(mulsf3x.o)
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(divsf3x.o)
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3x.o)
|
||||
__fp_pscA /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_pscA.o)
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(mulsf3x.o)
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(divsf3x.o)
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3x.o)
|
||||
__fp_pscB /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_pscB.o)
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(mulsf3x.o)
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(divsf3x.o)
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3x.o)
|
||||
__fp_round /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_round.o)
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(mulsf3.o)
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(divsf3.o)
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3.o)
|
||||
__fp_split3 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_split3.o)
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(mulsf3x.o)
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(divsf3x.o)
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3x.o)
|
||||
__fp_splitA /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_split3.o)
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fixunssfsi.o)
|
||||
__fp_szero /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_zero.o)
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(mulsf3x.o)
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(divsf3x.o)
|
||||
__fp_zero /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fp_zero.o)
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(fixunssfsi.o)
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3x.o)
|
||||
__heap_end /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
|
||||
__init /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
|
||||
__mulsf3 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(mulsf3.o)
|
||||
color_hsv.o
|
||||
__mulsf3_pse /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(mulsf3x.o)
|
||||
__mulsf3x /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(mulsf3x.o)
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(mulsf3.o)
|
||||
__stack /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
|
||||
__subsf3 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/libm.a(addsf3.o)
|
||||
color_hsv.o
|
||||
__tablejump2__ /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_tablejump2.o)
|
||||
color_hsv.o
|
||||
__udivmodhi4 /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_udivmodhi4.o)
|
||||
/usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodhi4.o)
|
||||
__vector_1 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
|
||||
__vector_10 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
|
||||
__vector_11 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
|
||||
__vector_12 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
|
||||
__vector_13 pendulum.o
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
|
||||
__vector_14 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
|
||||
__vector_15 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
|
||||
__vector_16 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
|
||||
__vector_17 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
|
||||
__vector_18 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
|
||||
__vector_19 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
|
||||
__vector_2 pendulum.o
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
|
||||
__vector_20 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
|
||||
__vector_21 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
|
||||
__vector_22 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
|
||||
__vector_23 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
|
||||
__vector_24 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
|
||||
__vector_25 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
|
||||
__vector_3 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
|
||||
__vector_4 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
|
||||
__vector_5 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
|
||||
__vector_6 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
|
||||
__vector_7 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
|
||||
__vector_8 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
|
||||
__vector_9 /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
|
||||
__vector_default /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
|
||||
__vectors /usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
|
||||
_div /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_divmodhi4.o)
|
||||
_exit /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
|
||||
colorSteps pendulum.o
|
||||
cooldown pendulum.o
|
||||
exit /usr/lib/gcc/avr/4.9.2/avr5/libgcc.a(_exit.o)
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
|
||||
hsv2rgb color_hsv.o
|
||||
hsv2rgbList color_hsv.o
|
||||
pendulum.o
|
||||
init_hsv_t color_hsv.o
|
||||
pendulum.o
|
||||
interpolate color_hsv.o
|
||||
pendulum.o
|
||||
main pendulum.o
|
||||
/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr5/crtatmega328p.o
|
||||
max pendulum.o
|
||||
min pendulum.o
|
||||
oldTime pendulum.o
|
||||
status pendulum.o
|
||||
time pendulum.o
|
||||
writeOne pendulum.o
|
||||
writeRGB pendulum.o
|
||||
writeZero pendulum.o
|
BIN
sketches/pendulum/pendulum.o
Normal file
BIN
sketches/pendulum/pendulum.o
Normal file
Binary file not shown.
109
sketches/pendulum/pendulum.sym
Normal file
109
sketches/pendulum/pendulum.sym
Normal file
@ -0,0 +1,109 @@
|
||||
00000000 W __heap_end
|
||||
00000000 a __tmp_reg__
|
||||
00000000 a __tmp_reg__
|
||||
00000000 W __vector_default
|
||||
00000000 T __vectors
|
||||
00000001 a __zero_reg__
|
||||
00000001 a __zero_reg__
|
||||
0000003d a __SP_L__
|
||||
0000003d a __SP_L__
|
||||
0000003e a __SP_H__
|
||||
0000003e a __SP_H__
|
||||
0000003f a __SREG__
|
||||
0000003f a __SREG__
|
||||
00000076 T __ctors_end
|
||||
00000076 T __ctors_start
|
||||
00000076 T __dtors_end
|
||||
00000076 T __dtors_start
|
||||
00000076 W __init
|
||||
00000076 T __trampolines_end
|
||||
00000076 T __trampolines_start
|
||||
00000082 T __do_copy_data
|
||||
00000098 T __do_clear_bss
|
||||
000000a0 t .do_clear_bss_loop
|
||||
000000a2 t .do_clear_bss_start
|
||||
000000b0 T __bad_interrupt
|
||||
000000b0 W __vector_1
|
||||
000000b0 W __vector_10
|
||||
000000b0 W __vector_11
|
||||
000000b0 W __vector_12
|
||||
000000b0 W __vector_14
|
||||
000000b0 W __vector_15
|
||||
000000b0 W __vector_16
|
||||
000000b0 W __vector_17
|
||||
000000b0 W __vector_18
|
||||
000000b0 W __vector_19
|
||||
000000b0 W __vector_20
|
||||
000000b0 W __vector_21
|
||||
000000b0 W __vector_22
|
||||
000000b0 W __vector_23
|
||||
000000b0 W __vector_24
|
||||
000000b0 W __vector_25
|
||||
000000b0 W __vector_3
|
||||
000000b0 W __vector_4
|
||||
000000b0 W __vector_5
|
||||
000000b0 W __vector_6
|
||||
000000b0 W __vector_7
|
||||
000000b0 W __vector_8
|
||||
000000b0 W __vector_9
|
||||
000000b4 T __vector_2
|
||||
00000146 T __vector_13
|
||||
0000018c T writeZero
|
||||
000001a8 T writeOne
|
||||
000001c4 T writeRGB
|
||||
00000266 T interpolate
|
||||
0000039c T hsv2rgb
|
||||
00000592 T hsv2rgbList
|
||||
000005dc T init_hsv_t
|
||||
000005e8 T main
|
||||
000008ac T __subsf3
|
||||
000008ae T __addsf3
|
||||
000008dc T __addsf3x
|
||||
000008ff W __stack
|
||||
00000986 T __divsf3
|
||||
000009ae T __divsf3x
|
||||
000009b4 T __divsf3_pse
|
||||
00000a6a T __fixunssfsi
|
||||
00000ac8 T __floatunsisf
|
||||
00000acc T __floatsisf
|
||||
00000b42 T __fp_inf
|
||||
00000b4e T __fp_nan
|
||||
00000b54 T __fp_pscA
|
||||
00000b62 T __fp_pscB
|
||||
00000b70 T __fp_round
|
||||
00000b92 T __fp_split3
|
||||
00000ba2 T __fp_splitA
|
||||
00000bd6 T __fp_zero
|
||||
00000bd8 T __fp_szero
|
||||
00000be4 T __mulsf3
|
||||
00000c0a T __mulsf3x
|
||||
00000c10 T __mulsf3_pse
|
||||
00000cbe T _div
|
||||
00000cbe T __divmodhi4
|
||||
00000cd6 t __divmodhi4_neg1
|
||||
00000cde t __divmodhi4_neg2
|
||||
00000ce4 t __divmodhi4_exit
|
||||
00000ce6 T __tablejump2__
|
||||
00000cf2 T __udivmodhi4
|
||||
00000cfa t __udivmodhi4_loop
|
||||
00000d08 t __udivmodhi4_ep
|
||||
00000d1a W exit
|
||||
00000d1a T _exit
|
||||
00000d1c t __stop_program
|
||||
00000d1e A __data_load_start
|
||||
00000d1e T _etext
|
||||
00000d28 A __data_load_end
|
||||
00800100 D __data_start
|
||||
00800100 D max
|
||||
00800102 D min
|
||||
00800104 D status
|
||||
00800105 D colorSteps
|
||||
0080010a B __bss_start
|
||||
0080010a D __data_end
|
||||
0080010a D _edata
|
||||
0080010a B oldTime
|
||||
0080010e B T_half
|
||||
00800112 B time
|
||||
00800116 B __bss_end
|
||||
00800116 N _end
|
||||
00810000 N __eeprom_end
|
Loading…
Reference in New Issue
Block a user