diff --git a/MIC-Week1/.vs/MIC-Week1/v14/.atsuo b/MIC-Week1/.vs/MIC-Week1/v14/.atsuo
index dab820d..c2d434b 100644
Binary files a/MIC-Week1/.vs/MIC-Week1/v14/.atsuo and b/MIC-Week1/.vs/MIC-Week1/v14/.atsuo differ
diff --git a/MIC-Week1/Debug/Makefile b/MIC-Week1/Debug/Makefile
index afdcae5..84f1fec 100644
--- a/MIC-Week1/Debug/Makefile
+++ b/MIC-Week1/Debug/Makefile
@@ -78,7 +78,7 @@ LINKER_SCRIPT_DEP+=
./%.o: .././%.c
@echo Building file: $<
@echo Invoking: AVR/GNU C Compiler : 4.9.2
- $(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.0.90\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -mrelax -g2 -Wall -mmcu=atmega128 -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.0.90\gcc\dev\atmega128" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
+ $(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"C:\Program Files (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\1.0.91\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -mrelax -g2 -Wall -mmcu=atmega128 -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\1.0.91\gcc\dev\atmega128" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
@echo Finished building: $<
@@ -107,7 +107,7 @@ all: $(OUTPUT_FILE_PATH) $(ADDITIONAL_DEPENDENCIES)
$(OUTPUT_FILE_PATH): $(OBJS) $(USER_OBJS) $(OUTPUT_FILE_DEP) $(LIB_DEP) $(LINKER_SCRIPT_DEP)
@echo Building target: $@
@echo Invoking: AVR/GNU Linker : 4.9.2
- $(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -o$(OUTPUT_FILE_PATH_AS_ARGS) $(OBJS_AS_ARGS) $(USER_OBJS) $(LIBS) -Wl,-Map="MIC-Week1.map" -Wl,--start-group -Wl,-lm -Wl,--end-group -Wl,--gc-sections -mrelax -mmcu=atmega128 -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.0.90\gcc\dev\atmega128"
+ $(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -o$(OUTPUT_FILE_PATH_AS_ARGS) $(OBJS_AS_ARGS) $(USER_OBJS) $(LIBS) -Wl,-Map="MIC-Week1.map" -Wl,--start-group -Wl,-lm -Wl,--end-group -Wl,--gc-sections -mrelax -mmcu=atmega128 -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\1.0.91\gcc\dev\atmega128"
@echo Finished building target: $@
"C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O ihex -R .eeprom -R .fuse -R .lock -R .signature -R .user_signatures "MIC-Week1.elf" "MIC-Week1.hex"
"C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy.exe" -j .eeprom --set-section-flags=.eeprom=alloc,load --change-section-lma .eeprom=0 --no-change-warnings -O ihex "MIC-Week1.elf" "MIC-Week1.eep" || exit 0
diff --git a/MIC-Week1/MIC-Week1.componentinfo.xml b/MIC-Week1/MIC-Week1.componentinfo.xml
index 5ceaf94..5b64613 100644
--- a/MIC-Week1/MIC-Week1.componentinfo.xml
+++ b/MIC-Week1/MIC-Week1.componentinfo.xml
@@ -15,7 +15,7 @@
- C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.0.90\include
+ C:/Program Files (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\1.0.91\include
include
C
@@ -26,7 +26,7 @@
- C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.0.90\include\avr\iom128.h
+ C:/Program Files (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\1.0.91\include\avr\iom128.h
header
C
@@ -37,7 +37,7 @@
- C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.0.90\templates\main.c
+ C:/Program Files (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\1.0.91\templates\main.c
template
source
C Exe
@@ -48,7 +48,7 @@
- C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.0.90\templates\main.cpp
+ C:/Program Files (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\1.0.91\templates\main.cpp
template
source
C Exe
@@ -59,7 +59,7 @@
- C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.0.90\gcc\dev\atmega128
+ C:/Program Files (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\1.0.91\gcc\dev\atmega128
libraryPrefix
GCC
@@ -71,8 +71,8 @@
ATmega_DFP
- C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.0.90/Atmel.ATmega_DFP.pdsc
- 1.0.90
+ C:/Program Files (x86)/Atmel/Studio/7.0/Packs/Atmel/ATmega_DFP/1.0.91/Atmel.ATmega_DFP.pdsc
+ 1.0.91
true
ATmega128
diff --git a/MIC-Week1/MIC-Week1.cproj b/MIC-Week1/MIC-Week1.cproj
index a5fd715..40e05fa 100644
--- a/MIC-Week1/MIC-Week1.cproj
+++ b/MIC-Week1/MIC-Week1.cproj
@@ -55,7 +55,7 @@
- -mmcu=atmega128 -B "%24(PackRepoDir)\atmel\ATmega_DFP\1.0.90\gcc\dev\atmega128"
+ -mmcu=atmega128 -B "%24(PackRepoDir)\Atmel\ATmega_DFP\1.0.91\gcc\dev\atmega128"
True
True
True
@@ -71,7 +71,7 @@
- %24(PackRepoDir)\atmel\ATmega_DFP\1.0.90\include
+ %24(PackRepoDir)\Atmel\ATmega_DFP\1.0.91\include
Optimize for size (-Os)
@@ -89,7 +89,7 @@
- -mmcu=atmega128 -B "%24(PackRepoDir)\atmel\ATmega_DFP\1.0.90\gcc\dev\atmega128"
+ -mmcu=atmega128 -B "%24(PackRepoDir)\Atmel\ATmega_DFP\1.0.91\gcc\dev\atmega128"
True
True
True
@@ -105,7 +105,7 @@
- %24(PackRepoDir)\atmel\ATmega_DFP\1.0.90\include
+ %24(PackRepoDir)\Atmel\ATmega_DFP\1.0.91\include
Optimize (-O1)
diff --git a/MIC-Week2/Debug/Makefile b/MIC-Week2/Debug/Makefile
index a37d0d6..7639310 100644
--- a/MIC-Week2/Debug/Makefile
+++ b/MIC-Week2/Debug/Makefile
@@ -78,7 +78,7 @@ LINKER_SCRIPT_DEP+=
./%.o: .././%.c
@echo Building file: $<
@echo Invoking: AVR/GNU C Compiler : 4.9.2
- $(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.0.90\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -mrelax -g2 -Wall -mmcu=atmega128 -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.0.90\gcc\dev\atmega128" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
+ $(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"C:\Program Files (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\1.0.91\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -mrelax -g2 -Wall -mmcu=atmega128 -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\1.0.91\gcc\dev\atmega128" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
@echo Finished building: $<
@@ -107,7 +107,7 @@ all: $(OUTPUT_FILE_PATH) $(ADDITIONAL_DEPENDENCIES)
$(OUTPUT_FILE_PATH): $(OBJS) $(USER_OBJS) $(OUTPUT_FILE_DEP) $(LIB_DEP) $(LINKER_SCRIPT_DEP)
@echo Building target: $@
@echo Invoking: AVR/GNU Linker : 4.9.2
- $(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -o$(OUTPUT_FILE_PATH_AS_ARGS) $(OBJS_AS_ARGS) $(USER_OBJS) $(LIBS) -Wl,-Map="MIC-Week2.map" -Wl,--start-group -Wl,-lm -Wl,--end-group -Wl,--gc-sections -mrelax -mmcu=atmega128 -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.0.90\gcc\dev\atmega128"
+ $(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -o$(OUTPUT_FILE_PATH_AS_ARGS) $(OBJS_AS_ARGS) $(USER_OBJS) $(LIBS) -Wl,-Map="MIC-Week2.map" -Wl,--start-group -Wl,-lm -Wl,--end-group -Wl,--gc-sections -mrelax -mmcu=atmega128 -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\1.0.91\gcc\dev\atmega128"
@echo Finished building target: $@
"C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O ihex -R .eeprom -R .fuse -R .lock -R .signature -R .user_signatures "MIC-Week2.elf" "MIC-Week2.hex"
"C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy.exe" -j .eeprom --set-section-flags=.eeprom=alloc,load --change-section-lma .eeprom=0 --no-change-warnings -O ihex "MIC-Week2.elf" "MIC-Week2.eep" || exit 0
diff --git a/MIC-Week2/MIC-Week2.componentinfo.xml b/MIC-Week2/MIC-Week2.componentinfo.xml
index 5ceaf94..5b64613 100644
--- a/MIC-Week2/MIC-Week2.componentinfo.xml
+++ b/MIC-Week2/MIC-Week2.componentinfo.xml
@@ -15,7 +15,7 @@
- C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.0.90\include
+ C:/Program Files (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\1.0.91\include
include
C
@@ -26,7 +26,7 @@
- C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.0.90\include\avr\iom128.h
+ C:/Program Files (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\1.0.91\include\avr\iom128.h
header
C
@@ -37,7 +37,7 @@
- C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.0.90\templates\main.c
+ C:/Program Files (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\1.0.91\templates\main.c
template
source
C Exe
@@ -48,7 +48,7 @@
- C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.0.90\templates\main.cpp
+ C:/Program Files (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\1.0.91\templates\main.cpp
template
source
C Exe
@@ -59,7 +59,7 @@
- C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.0.90\gcc\dev\atmega128
+ C:/Program Files (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\1.0.91\gcc\dev\atmega128
libraryPrefix
GCC
@@ -71,8 +71,8 @@
ATmega_DFP
- C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.0.90/Atmel.ATmega_DFP.pdsc
- 1.0.90
+ C:/Program Files (x86)/Atmel/Studio/7.0/Packs/Atmel/ATmega_DFP/1.0.91/Atmel.ATmega_DFP.pdsc
+ 1.0.91
true
ATmega128
diff --git a/MIC-Week2/MIC-Week2.cproj b/MIC-Week2/MIC-Week2.cproj
index 5d48a58..c34381a 100644
--- a/MIC-Week2/MIC-Week2.cproj
+++ b/MIC-Week2/MIC-Week2.cproj
@@ -42,7 +42,7 @@
- -mmcu=atmega128 -B "%24(PackRepoDir)\atmel\ATmega_DFP\1.0.90\gcc\dev\atmega128"
+ -mmcu=atmega128 -B "%24(PackRepoDir)\Atmel\ATmega_DFP\1.0.91\gcc\dev\atmega128"
True
True
True
@@ -58,7 +58,7 @@
- %24(PackRepoDir)\atmel\ATmega_DFP\1.0.90\include
+ %24(PackRepoDir)\Atmel\ATmega_DFP\1.0.91\include
Optimize for size (-Os)
@@ -76,7 +76,7 @@
- -mmcu=atmega128 -B "%24(PackRepoDir)\atmel\ATmega_DFP\1.0.90\gcc\dev\atmega128"
+ -mmcu=atmega128 -B "%24(PackRepoDir)\Atmel\ATmega_DFP\1.0.91\gcc\dev\atmega128"
True
True
True
@@ -92,7 +92,7 @@
- %24(PackRepoDir)\atmel\ATmega_DFP\1.0.90\include
+ %24(PackRepoDir)\Atmel\ATmega_DFP\1.0.91\include
Optimize (-O1)
diff --git a/MIC-Week3/Debug/Makefile b/MIC-Week3/Debug/Makefile
index 2e06c23..5e3743e 100644
--- a/MIC-Week3/Debug/Makefile
+++ b/MIC-Week3/Debug/Makefile
@@ -85,7 +85,7 @@ LINKER_SCRIPT_DEP+=
./%.o: .././%.c
@echo Building file: $<
@echo Invoking: AVR/GNU C Compiler : 4.9.2
- $(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.0.90\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -mrelax -g2 -Wall -mmcu=atmega128 -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.0.90\gcc\dev\atmega128" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
+ $(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"C:\Program Files (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\1.0.91\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -mrelax -g2 -Wall -mmcu=atmega128 -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\1.0.91\gcc\dev\atmega128" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
@echo Finished building: $<
@@ -114,7 +114,7 @@ all: $(OUTPUT_FILE_PATH) $(ADDITIONAL_DEPENDENCIES)
$(OUTPUT_FILE_PATH): $(OBJS) $(USER_OBJS) $(OUTPUT_FILE_DEP) $(LIB_DEP) $(LINKER_SCRIPT_DEP)
@echo Building target: $@
@echo Invoking: AVR/GNU Linker : 4.9.2
- $(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -o$(OUTPUT_FILE_PATH_AS_ARGS) $(OBJS_AS_ARGS) $(USER_OBJS) $(LIBS) -Wl,-Map="MIC-Week3.map" -Wl,--start-group -Wl,-lm -Wl,--end-group -Wl,--gc-sections -mrelax -mmcu=atmega128 -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.0.90\gcc\dev\atmega128"
+ $(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -o$(OUTPUT_FILE_PATH_AS_ARGS) $(OBJS_AS_ARGS) $(USER_OBJS) $(LIBS) -Wl,-Map="MIC-Week3.map" -Wl,--start-group -Wl,-lm -Wl,--end-group -Wl,--gc-sections -mrelax -mmcu=atmega128 -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\1.0.91\gcc\dev\atmega128"
@echo Finished building target: $@
"C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O ihex -R .eeprom -R .fuse -R .lock -R .signature -R .user_signatures "MIC-Week3.elf" "MIC-Week3.hex"
"C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy.exe" -j .eeprom --set-section-flags=.eeprom=alloc,load --change-section-lma .eeprom=0 --no-change-warnings -O ihex "MIC-Week3.elf" "MIC-Week3.eep" || exit 0
diff --git a/MIC-Week3/MIC-Week3.componentinfo.xml b/MIC-Week3/MIC-Week3.componentinfo.xml
index 5ceaf94..5b64613 100644
--- a/MIC-Week3/MIC-Week3.componentinfo.xml
+++ b/MIC-Week3/MIC-Week3.componentinfo.xml
@@ -15,7 +15,7 @@
- C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.0.90\include
+ C:/Program Files (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\1.0.91\include
include
C
@@ -26,7 +26,7 @@
- C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.0.90\include\avr\iom128.h
+ C:/Program Files (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\1.0.91\include\avr\iom128.h
header
C
@@ -37,7 +37,7 @@
- C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.0.90\templates\main.c
+ C:/Program Files (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\1.0.91\templates\main.c
template
source
C Exe
@@ -48,7 +48,7 @@
- C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.0.90\templates\main.cpp
+ C:/Program Files (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\1.0.91\templates\main.cpp
template
source
C Exe
@@ -59,7 +59,7 @@
- C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.0.90\gcc\dev\atmega128
+ C:/Program Files (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\1.0.91\gcc\dev\atmega128
libraryPrefix
GCC
@@ -71,8 +71,8 @@
ATmega_DFP
- C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.0.90/Atmel.ATmega_DFP.pdsc
- 1.0.90
+ C:/Program Files (x86)/Atmel/Studio/7.0/Packs/Atmel/ATmega_DFP/1.0.91/Atmel.ATmega_DFP.pdsc
+ 1.0.91
true
ATmega128
diff --git a/MIC-Week3/MIC-Week3.cproj b/MIC-Week3/MIC-Week3.cproj
index ba43ee4..b2a296b 100644
--- a/MIC-Week3/MIC-Week3.cproj
+++ b/MIC-Week3/MIC-Week3.cproj
@@ -42,7 +42,7 @@
- -mmcu=atmega128 -B "%24(PackRepoDir)\atmel\ATmega_DFP\1.0.90\gcc\dev\atmega128"
+ -mmcu=atmega128 -B "%24(PackRepoDir)\Atmel\ATmega_DFP\1.0.91\gcc\dev\atmega128"
True
True
True
@@ -58,7 +58,7 @@
- %24(PackRepoDir)\atmel\ATmega_DFP\1.0.90\include
+ %24(PackRepoDir)\Atmel\ATmega_DFP\1.0.91\include
Optimize for size (-Os)
@@ -76,7 +76,7 @@
- -mmcu=atmega128 -B "%24(PackRepoDir)\atmel\ATmega_DFP\1.0.90\gcc\dev\atmega128"
+ -mmcu=atmega128 -B "%24(PackRepoDir)\Atmel\ATmega_DFP\1.0.91\gcc\dev\atmega128"
True
True
True
@@ -92,7 +92,7 @@
- %24(PackRepoDir)\atmel\ATmega_DFP\1.0.90\include
+ %24(PackRepoDir)\Atmel\ATmega_DFP\1.0.91\include
Optimize (-O1)
diff --git a/MIC-Week4/Debug/MIC-Week4.lss b/MIC-Week4/Debug/MIC-Week4.lss
index 5a0eb28..9d51be9 100644
--- a/MIC-Week4/Debug/MIC-Week4.lss
+++ b/MIC-Week4/Debug/MIC-Week4.lss
@@ -3,29 +3,29 @@ MIC-Week4.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
- 0 .data 00000000 00800100 00800100 00000176 2**0
+ 0 .data 00000004 00800100 0000083c 000008b0 2**0
CONTENTS, ALLOC, LOAD, DATA
- 1 .text 00000122 00000000 00000000 00000054 2**1
+ 1 .text 0000083c 00000000 00000000 00000074 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE
- 2 .comment 00000030 00000000 00000000 00000176 2**0
+ 2 .comment 0000005c 00000000 00000000 000008b4 2**0
CONTENTS, READONLY
- 3 .note.gnu.avr.deviceinfo 0000003c 00000000 00000000 000001a8 2**2
+ 3 .note.gnu.avr.deviceinfo 0000003c 00000000 00000000 00000910 2**2
CONTENTS, READONLY
- 4 .debug_aranges 00000068 00000000 00000000 000001e4 2**0
+ 4 .debug_aranges 000000c8 00000000 00000000 0000094c 2**0
CONTENTS, READONLY, DEBUGGING
- 5 .debug_info 00000b91 00000000 00000000 0000024c 2**0
+ 5 .debug_info 000012f5 00000000 00000000 00000a14 2**0
CONTENTS, READONLY, DEBUGGING
- 6 .debug_abbrev 00000253 00000000 00000000 00000ddd 2**0
+ 6 .debug_abbrev 0000048c 00000000 00000000 00001d09 2**0
CONTENTS, READONLY, DEBUGGING
- 7 .debug_line 00000654 00000000 00000000 00001030 2**0
+ 7 .debug_line 000009cf 00000000 00000000 00002195 2**0
CONTENTS, READONLY, DEBUGGING
- 8 .debug_frame 000000b4 00000000 00000000 00001684 2**2
+ 8 .debug_frame 00000190 00000000 00000000 00002b64 2**2
CONTENTS, READONLY, DEBUGGING
- 9 .debug_str 00000222 00000000 00000000 00001738 2**0
+ 9 .debug_str 000002bb 00000000 00000000 00002cf4 2**0
CONTENTS, READONLY, DEBUGGING
- 10 .debug_loc 000004be 00000000 00000000 0000195a 2**0
+ 10 .debug_loc 000007e6 00000000 00000000 00002faf 2**0
CONTENTS, READONLY, DEBUGGING
- 11 .debug_ranges 00000138 00000000 00000000 00001e18 2**0
+ 11 .debug_ranges 00000188 00000000 00000000 00003795 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
@@ -33,73 +33,73 @@ Disassembly of section .text:
00000000 <__vectors>:
0: 45 c0 rjmp .+138 ; 0x8c <__ctors_end>
2: 00 00 nop
- 4: 53 c0 rjmp .+166 ; 0xac <__bad_interrupt>
+ 4: 60 c0 rjmp .+192 ; 0xc6 <__bad_interrupt>
6: 00 00 nop
- 8: 51 c0 rjmp .+162 ; 0xac <__bad_interrupt>
+ 8: 5e c0 rjmp .+188 ; 0xc6 <__bad_interrupt>
a: 00 00 nop
- c: 4f c0 rjmp .+158 ; 0xac <__bad_interrupt>
+ c: 5c c0 rjmp .+184 ; 0xc6 <__bad_interrupt>
e: 00 00 nop
- 10: 4d c0 rjmp .+154 ; 0xac <__bad_interrupt>
+ 10: 5a c0 rjmp .+180 ; 0xc6 <__bad_interrupt>
12: 00 00 nop
- 14: 4b c0 rjmp .+150 ; 0xac <__bad_interrupt>
+ 14: 58 c0 rjmp .+176 ; 0xc6 <__bad_interrupt>
16: 00 00 nop
- 18: 49 c0 rjmp .+146 ; 0xac <__bad_interrupt>
+ 18: 56 c0 rjmp .+172 ; 0xc6 <__bad_interrupt>
1a: 00 00 nop
- 1c: 47 c0 rjmp .+142 ; 0xac <__bad_interrupt>
+ 1c: 54 c0 rjmp .+168 ; 0xc6 <__bad_interrupt>
1e: 00 00 nop
- 20: 45 c0 rjmp .+138 ; 0xac <__bad_interrupt>
+ 20: 52 c0 rjmp .+164 ; 0xc6 <__bad_interrupt>
22: 00 00 nop
- 24: 43 c0 rjmp .+134 ; 0xac <__bad_interrupt>
+ 24: 50 c0 rjmp .+160 ; 0xc6 <__bad_interrupt>
26: 00 00 nop
- 28: 41 c0 rjmp .+130 ; 0xac <__bad_interrupt>
+ 28: 4e c0 rjmp .+156 ; 0xc6 <__bad_interrupt>
2a: 00 00 nop
- 2c: 3f c0 rjmp .+126 ; 0xac <__bad_interrupt>
+ 2c: 4c c0 rjmp .+152 ; 0xc6 <__bad_interrupt>
2e: 00 00 nop
- 30: 3d c0 rjmp .+122 ; 0xac <__bad_interrupt>
+ 30: 4a c0 rjmp .+148 ; 0xc6 <__bad_interrupt>
32: 00 00 nop
- 34: 3b c0 rjmp .+118 ; 0xac <__bad_interrupt>
+ 34: 48 c0 rjmp .+144 ; 0xc6 <__bad_interrupt>
36: 00 00 nop
- 38: 39 c0 rjmp .+114 ; 0xac <__bad_interrupt>
+ 38: 46 c0 rjmp .+140 ; 0xc6 <__bad_interrupt>
3a: 00 00 nop
- 3c: 37 c0 rjmp .+110 ; 0xac <__bad_interrupt>
+ 3c: 44 c0 rjmp .+136 ; 0xc6 <__bad_interrupt>
3e: 00 00 nop
- 40: 35 c0 rjmp .+106 ; 0xac <__bad_interrupt>
+ 40: 42 c0 rjmp .+132 ; 0xc6 <__bad_interrupt>
42: 00 00 nop
- 44: 33 c0 rjmp .+102 ; 0xac <__bad_interrupt>
+ 44: 40 c0 rjmp .+128 ; 0xc6 <__bad_interrupt>
46: 00 00 nop
- 48: 31 c0 rjmp .+98 ; 0xac <__bad_interrupt>
+ 48: 3e c0 rjmp .+124 ; 0xc6 <__bad_interrupt>
4a: 00 00 nop
- 4c: 2f c0 rjmp .+94 ; 0xac <__bad_interrupt>
+ 4c: 3c c0 rjmp .+120 ; 0xc6 <__bad_interrupt>
4e: 00 00 nop
- 50: 2d c0 rjmp .+90 ; 0xac <__bad_interrupt>
+ 50: 3a c0 rjmp .+116 ; 0xc6 <__bad_interrupt>
52: 00 00 nop
- 54: 2b c0 rjmp .+86 ; 0xac <__bad_interrupt>
+ 54: 38 c0 rjmp .+112 ; 0xc6 <__bad_interrupt>
56: 00 00 nop
- 58: 29 c0 rjmp .+82 ; 0xac <__bad_interrupt>
+ 58: 36 c0 rjmp .+108 ; 0xc6 <__bad_interrupt>
5a: 00 00 nop
- 5c: 27 c0 rjmp .+78 ; 0xac <__bad_interrupt>
+ 5c: 34 c0 rjmp .+104 ; 0xc6 <__bad_interrupt>
5e: 00 00 nop
- 60: 25 c0 rjmp .+74 ; 0xac <__bad_interrupt>
+ 60: 32 c0 rjmp .+100 ; 0xc6 <__bad_interrupt>
62: 00 00 nop
- 64: 23 c0 rjmp .+70 ; 0xac <__bad_interrupt>
+ 64: 30 c0 rjmp .+96 ; 0xc6 <__bad_interrupt>
66: 00 00 nop
- 68: 21 c0 rjmp .+66 ; 0xac <__bad_interrupt>
+ 68: 2e c0 rjmp .+92 ; 0xc6 <__bad_interrupt>
6a: 00 00 nop
- 6c: 1f c0 rjmp .+62 ; 0xac <__bad_interrupt>
+ 6c: 2c c0 rjmp .+88 ; 0xc6 <__bad_interrupt>
6e: 00 00 nop
- 70: 1d c0 rjmp .+58 ; 0xac <__bad_interrupt>
+ 70: 2a c0 rjmp .+84 ; 0xc6 <__bad_interrupt>
72: 00 00 nop
- 74: 1b c0 rjmp .+54 ; 0xac <__bad_interrupt>
+ 74: 28 c0 rjmp .+80 ; 0xc6 <__bad_interrupt>
76: 00 00 nop
- 78: 19 c0 rjmp .+50 ; 0xac <__bad_interrupt>
+ 78: 26 c0 rjmp .+76 ; 0xc6 <__bad_interrupt>
7a: 00 00 nop
- 7c: 17 c0 rjmp .+46 ; 0xac <__bad_interrupt>
+ 7c: 24 c0 rjmp .+72 ; 0xc6 <__bad_interrupt>
7e: 00 00 nop
- 80: 15 c0 rjmp .+42 ; 0xac <__bad_interrupt>
+ 80: 22 c0 rjmp .+68 ; 0xc6 <__bad_interrupt>
82: 00 00 nop
- 84: 13 c0 rjmp .+38 ; 0xac <__bad_interrupt>
+ 84: 20 c0 rjmp .+64 ; 0xc6 <__bad_interrupt>
86: 00 00 nop
- 88: 11 c0 rjmp .+34 ; 0xac <__bad_interrupt>
+ 88: 1e c0 rjmp .+60 ; 0xc6 <__bad_interrupt>
...
0000008c <__ctors_end>:
@@ -110,145 +110,1168 @@ Disassembly of section .text:
94: de bf out 0x3e, r29 ; 62
96: cd bf out 0x3d, r28 ; 61
-00000098 <__do_clear_bss>:
- 98: 21 e0 ldi r18, 0x01 ; 1
+00000098 <__do_copy_data>:
+ 98: 11 e0 ldi r17, 0x01 ; 1
9a: a0 e0 ldi r26, 0x00 ; 0
9c: b1 e0 ldi r27, 0x01 ; 1
- 9e: 01 c0 rjmp .+2 ; 0xa2 <.do_clear_bss_start>
+ 9e: ec e3 ldi r30, 0x3C ; 60
+ a0: f8 e0 ldi r31, 0x08 ; 8
+ a2: 00 e0 ldi r16, 0x00 ; 0
+ a4: 0b bf out 0x3b, r16 ; 59
+ a6: 02 c0 rjmp .+4 ; 0xac <__do_copy_data+0x14>
+ a8: 07 90 elpm r0, Z+
+ aa: 0d 92 st X+, r0
+ ac: a4 30 cpi r26, 0x04 ; 4
+ ae: b1 07 cpc r27, r17
+ b0: d9 f7 brne .-10 ; 0xa8 <__do_copy_data+0x10>
-000000a0 <.do_clear_bss_loop>:
- a0: 1d 92 st X+, r1
+000000b2 <__do_clear_bss>:
+ b2: 21 e0 ldi r18, 0x01 ; 1
+ b4: a4 e0 ldi r26, 0x04 ; 4
+ b6: b1 e0 ldi r27, 0x01 ; 1
+ b8: 01 c0 rjmp .+2 ; 0xbc <.do_clear_bss_start>
-000000a2 <.do_clear_bss_start>:
- a2: a0 30 cpi r26, 0x00 ; 0
- a4: b2 07 cpc r27, r18
- a6: e1 f7 brne .-8 ; 0xa0 <.do_clear_bss_loop>
- a8: 28 d0 rcall .+80 ; 0xfa
- aa: 39 c0 rjmp .+114 ; 0x11e <_exit>
+000000ba <.do_clear_bss_loop>:
+ ba: 1d 92 st X+, r1
-000000ac <__bad_interrupt>:
- ac: a9 cf rjmp .-174 ; 0x0 <__vectors>
+000000bc <.do_clear_bss_start>:
+ bc: a4 30 cpi r26, 0x04 ; 4
+ be: b2 07 cpc r27, r18
+ c0: e1 f7 brne .-8 ; 0xba <.do_clear_bss_loop>
+ c2: be d0 rcall .+380 ; 0x240
+ c4: b9 c3 rjmp .+1906 ; 0x838 <_exit>
-000000ae :
-}
+000000c6 <__bad_interrupt>:
+ c6: 9c cf rjmp .-200 ; 0x0 <__vectors>
-// Set pulse width for Blue on pin PB5, 0=off, 255=max
-void setBlue( unsigned char blue )
+000000c8 :
+ }
+ }
+
+ void display_char( unsigned char dat )
+ {
+ PORTC = dat & 0xF0; // hoge nibble
+ c8: 98 2f mov r25, r24
+ ca: 90 7f andi r25, 0xF0 ; 240
+ cc: 95 bb out 0x15, r25 ; 21
+ PORTC = PORTC | 0x0C; // Enable on (EN = 1, RS=1),
+ ce: 95 b3 in r25, 0x15 ; 21
+ d0: 9c 60 ori r25, 0x0C ; 12
+ d2: 95 bb out 0x15, r25 ; 21
+ #else
+ //round up by default
+ __ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
+ #endif
+
+ __builtin_avr_delay_cycles(__ticks_dc);
+ d4: ef e9 ldi r30, 0x9F ; 159
+ d6: ff e0 ldi r31, 0x0F ; 15
+ d8: 31 97 sbiw r30, 0x01 ; 1
+ da: f1 f7 brne .-4 ; 0xd8
+ dc: 00 c0 rjmp .+0 ; 0xde
+ de: 00 00 nop
+ _delay_ms(2); // wait 1 ms
+ PORTC = 0x04; // Enable off (EN = 0, RS = 1)
+ e0: 94 e0 ldi r25, 0x04 ; 4
+ e2: 95 bb out 0x15, r25 ; 21
+ e4: ef e9 ldi r30, 0x9F ; 159
+ e6: ff e0 ldi r31, 0x0F ; 15
+ e8: 31 97 sbiw r30, 0x01 ; 1
+ ea: f1 f7 brne .-4 ; 0xe8
+ ec: 00 c0 rjmp .+0 ; 0xee
+ ee: 00 00 nop
+
+ _delay_ms(2); // wait 1 ms
+
+ PORTC = (dat & 0x0F) << 4; // lage nibble
+ f0: f0 e1 ldi r31, 0x10 ; 16
+ f2: 8f 9f mul r24, r31
+ f4: c0 01 movw r24, r0
+ f6: 11 24 eor r1, r1
+ f8: 85 bb out 0x15, r24 ; 21
+ PORTC = PORTC | 0x0C; // Enable on (RS=1),
+ fa: 85 b3 in r24, 0x15 ; 21
+ fc: 8c 60 ori r24, 0x0C ; 12
+ fe: 85 bb out 0x15, r24 ; 21
+ 100: 8f e9 ldi r24, 0x9F ; 159
+ 102: 9f e0 ldi r25, 0x0F ; 15
+ 104: 01 97 sbiw r24, 0x01 ; 1
+ 106: f1 f7 brne .-4 ; 0x104
+ 108: 00 c0 rjmp .+0 ; 0x10a
+ 10a: 00 00 nop
+ // start (EN=1)
+ _delay_ms(2); // wait 1 ms
+ PORTC = 0x00; // stop
+ 10c: 15 ba out 0x15, r1 ; 21
+ 10e: 08 95 ret
+
+00000110 :
+ // (EN=0 RS=0)
+ }
+
+ void lcd_command ( unsigned char dat )
+ {
+ PORTC = dat & 0xF0; // hoge nibble
+ 110: 98 2f mov r25, r24
+ 112: 90 7f andi r25, 0xF0 ; 240
+ 114: 95 bb out 0x15, r25 ; 21
+ PORTC = PORTC | 0x08; // data (RS=0),
+ 116: ab 9a sbi 0x15, 3 ; 21
+ 118: ef e9 ldi r30, 0x9F ; 159
+ 11a: ff e0 ldi r31, 0x0F ; 15
+ 11c: 31 97 sbiw r30, 0x01 ; 1
+ 11e: f1 f7 brne .-4 ; 0x11c
+ 120: 00 c0 rjmp .+0 ; 0x122
+ 122: 00 00 nop
+ // start (EN=1)
+ _delay_ms(2); // wait 1 ms
+ PORTC = 0x04; // stop (EN = 0)
+ 124: 94 e0 ldi r25, 0x04 ; 4
+ 126: 95 bb out 0x15, r25 ; 21
+ 128: ef e9 ldi r30, 0x9F ; 159
+ 12a: ff e0 ldi r31, 0x0F ; 15
+ 12c: 31 97 sbiw r30, 0x01 ; 1
+ 12e: f1 f7 brne .-4 ; 0x12c
+ 130: 00 c0 rjmp .+0 ; 0x132
+ 132: 00 00 nop
+
+ _delay_ms(2); // wait 1 ms
+
+ PORTC = (dat & 0x0F) << 4; // lage nibble
+ 134: f0 e1 ldi r31, 0x10 ; 16
+ 136: 8f 9f mul r24, r31
+ 138: c0 01 movw r24, r0
+ 13a: 11 24 eor r1, r1
+ 13c: 85 bb out 0x15, r24 ; 21
+ PORTC = PORTC | 0x08; // data (RS=0),
+ 13e: ab 9a sbi 0x15, 3 ; 21
+ 140: 8f e9 ldi r24, 0x9F ; 159
+ 142: 9f e0 ldi r25, 0x0F ; 15
+ 144: 01 97 sbiw r24, 0x01 ; 1
+ 146: f1 f7 brne .-4 ; 0x144
+ 148: 00 c0 rjmp .+0 ; 0x14a
+ 14a: 00 00 nop
+ // start (EN=1)
+ _delay_ms(2); // wait 1 ms
+ PORTC = 0x00; // stop
+ 14c: 15 ba out 0x15, r1 ; 21
+ 14e: 08 95 ret
+
+00000150 :
+
+ _delay_ms(100);
+ }
+
+void display_text( int line, char *text )
{
- OCR1C = blue;
- ae: 18 16 cp r1, r24
- b0: 19 06 cpc r1, r25
- b2: 6c f4 brge .+26 ; 0xce
- b4: 20 e0 ldi r18, 0x00 ; 0
- b6: 30 e0 ldi r19, 0x00 ; 0
- b8: ef ec ldi r30, 0xCF ; 207
- ba: f7 e0 ldi r31, 0x07 ; 7
- bc: 31 97 sbiw r30, 0x01 ; 1
- be: f1 f7 brne .-4 ; 0xbc
- c0: 00 c0 rjmp .+0 ; 0xc2
- c2: 00 00 nop
- c4: 2f 5f subi r18, 0xFF ; 255
- c6: 3f 4f sbci r19, 0xFF ; 255
- c8: 28 17 cp r18, r24
- ca: 39 07 cpc r19, r25
- cc: a9 f7 brne .-22 ; 0xb8
- ce: 08 95 ret
+ 150: cf 93 push r28
+ 152: df 93 push r29
+ 154: eb 01 movw r28, r22
+ // eerst de eerste 8 karakters = regel 1
-000000d0 :
- d0: 1b bc out 0x2b, r1 ; 43
- d2: 1a bc out 0x2a, r1 ; 42
- d4: 19 bc out 0x29, r1 ; 41
- d6: 18 bc out 0x28, r1 ; 40
- d8: 10 92 79 00 sts 0x0079, r1
- dc: 10 92 78 00 sts 0x0078, r1
- e0: 89 ea ldi r24, 0xA9 ; 169
- e2: 8f bd out 0x2f, r24 ; 47
- e4: 8b e0 ldi r24, 0x0B ; 11
- e6: 8e bd out 0x2e, r24 ; 46
- e8: 08 95 ret
+ if(line)
+ 156: 89 2b or r24, r25
+ 158: 19 f0 breq .+6 ; 0x160
+ {
+ // eerste pos regel 1
+ lcd_command(0xC0);
+ 15a: 80 ec ldi r24, 0xC0 ; 192
+ 15c: d9 df rcall .-78 ; 0x110
+ 15e: 02 c0 rjmp .+4 ; 0x164
+ }
+ else
+ {
+ // regel 0
+ lcd_command(0x80);
+ 160: 80 e8 ldi r24, 0x80 ; 128
+ 162: d6 df rcall .-84 ; 0x110
+ }
-000000ea :
-// void setBlue( unsigned char blue)
+ int count = 0;
+
+ while (text[count] != '\0') {
+ 164: 88 81 ld r24, Y
+ 166: 88 23 and r24, r24
+ 168: 59 f0 breq .+22 ; 0x180
+ 16a: 21 96 adiw r28, 0x01 ; 1
+ display_char( text[count] );
+ 16c: ad df rcall .-166 ; 0xc8
+ 16e: 8f e9 ldi r24, 0x9F ; 159
+ 170: 9f e0 ldi r25, 0x0F ; 15
+ 172: 01 97 sbiw r24, 0x01 ; 1
+ 174: f1 f7 brne .-4 ; 0x172
+ 176: 00 c0 rjmp .+0 ; 0x178
+ 178: 00 00 nop
+ lcd_command(0x80);
+ }
+
+ int count = 0;
+
+ while (text[count] != '\0') {
+ 17a: 89 91 ld r24, Y+
+ 17c: 81 11 cpse r24, r1
+ 17e: f6 cf rjmp .-20 ; 0x16c
+ display_char( text[count] );
+ count++;
+
+ _delay_ms(2);
+ }
+}
+ 180: df 91 pop r29
+ 182: cf 91 pop r28
+ 184: 08 95 ret
+
+00000186 :
+
+void clear_display()
+{
+ lcd_command(0b00000001);
+ 186: 81 e0 ldi r24, 0x01 ; 1
+ 188: c3 df rcall .-122 ; 0x110
+ lcd_command(0b10000000);
+ 18a: 80 e8 ldi r24, 0x80 ; 128
+ 18c: c1 cf rjmp .-126 ; 0x110
+ 18e: 08 95 ret
+
+00000190 :
+ void display_char(unsigned char dat);
+ void lcd_command(unsigned char dat);
+
+ void lcd_init()
+ {
+ DDRC = 0b11111111;
+ 190: 8f ef ldi r24, 0xFF ; 255
+ 192: 84 bb out 0x14, r24 ; 20
+ 194: 2f ef ldi r18, 0xFF ; 255
+ 196: 80 e7 ldi r24, 0x70 ; 112
+ 198: 92 e0 ldi r25, 0x02 ; 2
+ 19a: 21 50 subi r18, 0x01 ; 1
+ 19c: 80 40 sbci r24, 0x00 ; 0
+ 19e: 90 40 sbci r25, 0x00 ; 0
+ 1a0: e1 f7 brne .-8 ; 0x19a
+ 1a2: 00 c0 rjmp .+0 ; 0x1a4
+ 1a4: 00 00 nop
+
+ _delay_ms(100);
+
+ // return home
+ lcd_command( 0x02 );
+ 1a6: 82 e0 ldi r24, 0x02 ; 2
+ 1a8: b3 df rcall .-154 ; 0x110
+ 1aa: 2f e7 ldi r18, 0x7F ; 127
+ 1ac: 88 e3 ldi r24, 0x38 ; 56
+ 1ae: 91 e0 ldi r25, 0x01 ; 1
+ 1b0: 21 50 subi r18, 0x01 ; 1
+ 1b2: 80 40 sbci r24, 0x00 ; 0
+ 1b4: 90 40 sbci r25, 0x00 ; 0
+ 1b6: e1 f7 brne .-8 ; 0x1b0
+ 1b8: 00 c0 rjmp .+0 ; 0x1ba
+ 1ba: 00 00 nop
+ // mode: 4 bits interface data, 2 lines, 5x8 dots
+ _delay_ms(50);
+ lcd_command( 0x28 );
+ 1bc: 88 e2 ldi r24, 0x28 ; 40
+ 1be: a8 df rcall .-176 ; 0x110
+ 1c0: 2f e7 ldi r18, 0x7F ; 127
+ 1c2: 88 e3 ldi r24, 0x38 ; 56
+ 1c4: 91 e0 ldi r25, 0x01 ; 1
+ 1c6: 21 50 subi r18, 0x01 ; 1
+ 1c8: 80 40 sbci r24, 0x00 ; 0
+ 1ca: 90 40 sbci r25, 0x00 ; 0
+ 1cc: e1 f7 brne .-8 ; 0x1c6
+ 1ce: 00 c0 rjmp .+0 ; 0x1d0
+ 1d0: 00 00 nop
+ // display: on, cursor off, blinking off
+ _delay_ms(50);
+ lcd_command( 0x0C );
+ 1d2: 8c e0 ldi r24, 0x0C ; 12
+ 1d4: 9d df rcall .-198 ; 0x110
+ 1d6: 2f e7 ldi r18, 0x7F ; 127
+ 1d8: 88 e3 ldi r24, 0x38 ; 56
+ 1da: 91 e0 ldi r25, 0x01 ; 1
+ 1dc: 21 50 subi r18, 0x01 ; 1
+ 1de: 80 40 sbci r24, 0x00 ; 0
+ 1e0: 90 40 sbci r25, 0x00 ; 0
+ 1e2: e1 f7 brne .-8 ; 0x1dc
+ 1e4: 00 c0 rjmp .+0 ; 0x1e6
+ 1e6: 00 00 nop
+ // entry mode: cursor to right, no shift
+ _delay_ms(50);
+ lcd_command( 0x06 );
+ 1e8: 86 e0 ldi r24, 0x06 ; 6
+ 1ea: 92 df rcall .-220 ; 0x110
+ 1ec: 2f e7 ldi r18, 0x7F ; 127
+ 1ee: 88 e3 ldi r24, 0x38 ; 56
+ 1f0: 91 e0 ldi r25, 0x01 ; 1
+ 1f2: 21 50 subi r18, 0x01 ; 1
+ 1f4: 80 40 sbci r24, 0x00 ; 0
+ 1f6: 90 40 sbci r25, 0x00 ; 0
+ 1f8: e1 f7 brne .-8 ; 0x1f2
+ 1fa: 00 c0 rjmp .+0 ; 0x1fc
+ 1fc: 00 00 nop
+ // RAM address: 0, first position, line 1
+ _delay_ms(50);
+ clear_display();
+ 1fe: c3 df rcall .-122 ; 0x186
+ 200: 2f ef ldi r18, 0xFF ; 255
+ 202: 80 e7 ldi r24, 0x70 ; 112
+ 204: 92 e0 ldi r25, 0x02 ; 2
+ 206: 21 50 subi r18, 0x01 ; 1
+ 208: 80 40 sbci r24, 0x00 ; 0
+ 20a: 90 40 sbci r25, 0x00 ; 0
+ 20c: e1 f7 brne .-8 ; 0x206
+ 20e: 00 c0 rjmp .+0 ; 0x210
+ 210: 00 00 nop
+ 212: 08 95 ret
+
+00000214 :
// Initialize ADC:
-void adcInit( void )
+void adcInitFree( void )
{
- ADMUX = 0b11100001; // AREF=2,56 V, result left adjusted, channel1 at pin PF1
- ea: 81 ee ldi r24, 0xE1 ; 225
- ec: 87 b9 out 0x07, r24 ; 7
+ ADMUX = 0b01100001; // AREF=VCC, result left adjusted, channel1 at pin PF1
+ ADCSRA = 0b11100110; // ADC-enable, no interrupt, start, free running, division by 64
+ 214: 18 16 cp r1, r24
+ 216: 19 06 cpc r1, r25
+ 218: 6c f4 brge .+26 ; 0x234
+ 21a: 20 e0 ldi r18, 0x00 ; 0
+ 21c: 30 e0 ldi r19, 0x00 ; 0
+ 21e: ef ec ldi r30, 0xCF ; 207
+ 220: f7 e0 ldi r31, 0x07 ; 7
+ 222: 31 97 sbiw r30, 0x01 ; 1
+ 224: f1 f7 brne .-4 ; 0x222
+ 226: 00 c0 rjmp .+0 ; 0x228
+ 228: 00 00 nop
+ 22a: 2f 5f subi r18, 0xFF ; 255
+ 22c: 3f 4f sbci r19, 0xFF ; 255
+ 22e: 28 17 cp r18, r24
+ 230: 39 07 cpc r19, r25
+ 232: a9 f7 brne .-22 ; 0x21e
+ 234: 08 95 ret
+
+00000236 :
+}
+
+void adcInitPoll( void )
+{
+ ADMUX = 0b01100001; // AREF=2,56 V, result left adjusted, channel1 at pin PF1
+ 236: 81 e6 ldi r24, 0x61 ; 97
+ 238: 87 b9 out 0x07, r24 ; 7
ADCSRA = 0b10000110; // ADC-enable, no interrupt, no free running, division by 64
- ee: 86 e8 ldi r24, 0x86 ; 134
- f0: 86 b9 out 0x06, r24 ; 6
- f2: 08 95 ret
+ 23a: 86 e8 ldi r24, 0x86 ; 134
+ 23c: 86 b9 out 0x06, r24 ; 6
+ 23e: 08 95 ret
-000000f4 :
- }
+00000240 :
}
-int setWithButton(void)
-{
- if( (0b00000001 & PINC) != 0)
- f4: 98 99 sbic 0x13, 0 ; 19
- {
- ADCSRA |= BIT(6);
- f6: 36 9a sbi 0x06, 6 ; 6
- }
-}
- f8: 08 95 ret
-
-000000fa :
-
-
-// Main program: Counting on T1
int main( void )
{
- DDRB = 0xFF;
- fa: 8f ef ldi r24, 0xFF ; 255
- fc: 87 bb out 0x17, r24 ; 23
- DDRF = 0x00; // set PORTF for input (ADC)
- fe: 10 92 61 00 sts 0x0061, r1
- DDRA = 0xFF; // set PORTA for output
- 102: 8a bb out 0x1a, r24 ; 26
- adcInit(); // initialize ADC
- 104: f2 df rcall .-28 ; 0xea
- timer1Init();
- 106: e4 df rcall .-56 ; 0xd0
+ 240: cf 93 push r28
+ 242: df 93 push r29
+ 244: cd b7 in r28, 0x3d ; 61
+ 246: de b7 in r29, 0x3e ; 62
+ 248: 28 97 sbiw r28, 0x08 ; 8
+ 24a: 0f b6 in r0, 0x3f ; 63
+ 24c: f8 94 cli
+ 24e: de bf out 0x3e, r29 ; 62
+ 250: 0f be out 0x3f, r0 ; 63
+ 252: cd bf out 0x3d, r28 ; 61
+ DDRF = 0x00;
+ 254: 10 92 61 00 sts 0x0061, r1
+ adcInitPoll();
+ 258: ee df rcall .-36 ; 0x236
+ lcd_init();
+ 25a: 9a df rcall .-204 ; 0x190
+ while ( ADCSRA & BIT(6) ) ; // Wait for completion
- while (1)
+ data = ADCH;
+ data = (data<<2) | ADCL;
+
+ sprintf(l1, "%d", ADCH);
+ 25c: 0f 2e mov r0, r31
+ 25e: f0 e0 ldi r31, 0x00 ; 0
+ 260: ef 2e mov r14, r31
+ 262: f1 e0 ldi r31, 0x01 ; 1
+ 264: ff 2e mov r15, r31
+ 266: f0 2d mov r31, r0
+ 268: 8e 01 movw r16, r28
+ 26a: 0f 5f subi r16, 0xFF ; 255
+ 26c: 1f 4f sbci r17, 0xFF ; 255
+
+ char l1[8];
+
+ while(1)
{
- //ADCSRA |= BIT(6); // Start ADC
+ ADCSRA |= BIT(6); // Start ADC
+ 26e: 36 9a sbi 0x06, 6 ; 6
while ( ADCSRA & BIT(6) ) ; // Wait for completion
- 108: 36 99 sbic 0x06, 6 ; 6
- 10a: fe cf rjmp .-4 ; 0x108
- setRed(ADCH);
- 10c: 85 b1 in r24, 0x05 ; 5
-}
+ 270: 36 99 sbic 0x06, 6 ; 6
+ 272: fe cf rjmp .-4 ; 0x270
-// Set pulse width for RED on pin PB5, 0=off, 255=max
-void setRed( unsigned char red )
-{
- OCR1A = red;
- 10e: 90 e0 ldi r25, 0x00 ; 0
- 110: 9b bd out 0x2b, r25 ; 43
- 112: 8a bd out 0x2a, r24 ; 42
- //ADCSRA |= BIT(6); // Start ADC
- while ( ADCSRA & BIT(6) ) ; // Wait for completion
- setRed(ADCH);
- //setBlue(ADCH);
- //setGreen(ADCH);
- wait(100); // every 50 ms (busy waiting)
- 114: 84 e6 ldi r24, 0x64 ; 100
- 116: 90 e0 ldi r25, 0x00 ; 0
- 118: ca df rcall .-108 ; 0xae
- //alleKleuren();
- //opgaveextra();
- setWithButton();
- 11a: ec df rcall .-40 ; 0xf4
+ data = ADCH;
+ 274: 85 b1 in r24, 0x05 ; 5
+ data = (data<<2) | ADCL;
+ 276: 84 b1 in r24, 0x04 ; 4
+
+ sprintf(l1, "%d", ADCH);
+ 278: 85 b1 in r24, 0x05 ; 5
+ 27a: 1f 92 push r1
+ 27c: 8f 93 push r24
+ 27e: ff 92 push r15
+ 280: ef 92 push r14
+ 282: 1f 93 push r17
+ 284: 0f 93 push r16
+ 286: 0f d0 rcall .+30 ; 0x2a6
+ display_text(0, l1);
+ 288: b8 01 movw r22, r16
+ 28a: 80 e0 ldi r24, 0x00 ; 0
+ 28c: 90 e0 ldi r25, 0x00 ; 0
+ 28e: 60 df rcall .-320 ; 0x150
+
+ wait(3000);
+ 290: 88 eb ldi r24, 0xB8 ; 184
+ 292: 9b e0 ldi r25, 0x0B ; 11
+ 294: bf df rcall .-130 ; 0x214
+
+ clear_display();
+ 296: 77 df rcall .-274 ; 0x186
}
- 11c: f5 cf rjmp .-22 ; 0x108
+ 298: 0f 90 pop r0
+ 29a: 0f 90 pop r0
+ 29c: 0f 90 pop r0
+ 29e: 0f 90 pop r0
+ 2a0: 0f 90 pop r0
+ 2a2: 0f 90 pop r0
+ 2a4: e4 cf rjmp .-56 ; 0x26e
-0000011e <_exit>:
- 11e: f8 94 cli
+000002a6 :
+ 2a6: 0f 93 push r16
+ 2a8: 1f 93 push r17
+ 2aa: cf 93 push r28
+ 2ac: df 93 push r29
+ 2ae: cd b7 in r28, 0x3d ; 61
+ 2b0: de b7 in r29, 0x3e ; 62
+ 2b2: 2e 97 sbiw r28, 0x0e ; 14
+ 2b4: 0f b6 in r0, 0x3f ; 63
+ 2b6: f8 94 cli
+ 2b8: de bf out 0x3e, r29 ; 62
+ 2ba: 0f be out 0x3f, r0 ; 63
+ 2bc: cd bf out 0x3d, r28 ; 61
+ 2be: 0d 89 ldd r16, Y+21 ; 0x15
+ 2c0: 1e 89 ldd r17, Y+22 ; 0x16
+ 2c2: 86 e0 ldi r24, 0x06 ; 6
+ 2c4: 8c 83 std Y+4, r24 ; 0x04
+ 2c6: 1a 83 std Y+2, r17 ; 0x02
+ 2c8: 09 83 std Y+1, r16 ; 0x01
+ 2ca: 8f ef ldi r24, 0xFF ; 255
+ 2cc: 9f e7 ldi r25, 0x7F ; 127
+ 2ce: 9e 83 std Y+6, r25 ; 0x06
+ 2d0: 8d 83 std Y+5, r24 ; 0x05
+ 2d2: ae 01 movw r20, r28
+ 2d4: 47 5e subi r20, 0xE7 ; 231
+ 2d6: 5f 4f sbci r21, 0xFF ; 255
+ 2d8: 6f 89 ldd r22, Y+23 ; 0x17
+ 2da: 78 8d ldd r23, Y+24 ; 0x18
+ 2dc: ce 01 movw r24, r28
+ 2de: 01 96 adiw r24, 0x01 ; 1
+ 2e0: 11 d0 rcall .+34 ; 0x304
+ 2e2: 2f 81 ldd r18, Y+7 ; 0x07
+ 2e4: 38 85 ldd r19, Y+8 ; 0x08
+ 2e6: f8 01 movw r30, r16
+ 2e8: e2 0f add r30, r18
+ 2ea: f3 1f adc r31, r19
+ 2ec: 10 82 st Z, r1
+ 2ee: 2e 96 adiw r28, 0x0e ; 14
+ 2f0: 0f b6 in r0, 0x3f ; 63
+ 2f2: f8 94 cli
+ 2f4: de bf out 0x3e, r29 ; 62
+ 2f6: 0f be out 0x3f, r0 ; 63
+ 2f8: cd bf out 0x3d, r28 ; 61
+ 2fa: df 91 pop r29
+ 2fc: cf 91 pop r28
+ 2fe: 1f 91 pop r17
+ 300: 0f 91 pop r16
+ 302: 08 95 ret
-00000120 <__stop_program>:
- 120: ff cf rjmp .-2 ; 0x120 <__stop_program>
+00000304 :
+ 304: 2f 92 push r2
+ 306: 3f 92 push r3
+ 308: 4f 92 push r4
+ 30a: 5f 92 push r5
+ 30c: 6f 92 push r6
+ 30e: 7f 92 push r7
+ 310: 8f 92 push r8
+ 312: 9f 92 push r9
+ 314: af 92 push r10
+ 316: bf 92 push r11
+ 318: cf 92 push r12
+ 31a: df 92 push r13
+ 31c: ef 92 push r14
+ 31e: ff 92 push r15
+ 320: 0f 93 push r16
+ 322: 1f 93 push r17
+ 324: cf 93 push r28
+ 326: df 93 push r29
+ 328: cd b7 in r28, 0x3d ; 61
+ 32a: de b7 in r29, 0x3e ; 62
+ 32c: 2c 97 sbiw r28, 0x0c ; 12
+ 32e: 0f b6 in r0, 0x3f ; 63
+ 330: f8 94 cli
+ 332: de bf out 0x3e, r29 ; 62
+ 334: 0f be out 0x3f, r0 ; 63
+ 336: cd bf out 0x3d, r28 ; 61
+ 338: 7c 01 movw r14, r24
+ 33a: 6b 01 movw r12, r22
+ 33c: 8a 01 movw r16, r20
+ 33e: fc 01 movw r30, r24
+ 340: 17 82 std Z+7, r1 ; 0x07
+ 342: 16 82 std Z+6, r1 ; 0x06
+ 344: 83 81 ldd r24, Z+3 ; 0x03
+ 346: 81 ff sbrs r24, 1
+ 348: b0 c1 rjmp .+864 ; 0x6aa
+ 34a: ce 01 movw r24, r28
+ 34c: 01 96 adiw r24, 0x01 ; 1
+ 34e: 4c 01 movw r8, r24
+ 350: f7 01 movw r30, r14
+ 352: 93 81 ldd r25, Z+3 ; 0x03
+ 354: f6 01 movw r30, r12
+ 356: 93 fd sbrc r25, 3
+ 358: 85 91 lpm r24, Z+
+ 35a: 93 ff sbrs r25, 3
+ 35c: 81 91 ld r24, Z+
+ 35e: 6f 01 movw r12, r30
+ 360: 88 23 and r24, r24
+ 362: 09 f4 brne .+2 ; 0x366
+ 364: 9e c1 rjmp .+828 ; 0x6a2
+ 366: 85 32 cpi r24, 0x25 ; 37
+ 368: 39 f4 brne .+14 ; 0x378
+ 36a: 93 fd sbrc r25, 3
+ 36c: 85 91 lpm r24, Z+
+ 36e: 93 ff sbrs r25, 3
+ 370: 81 91 ld r24, Z+
+ 372: 6f 01 movw r12, r30
+ 374: 85 32 cpi r24, 0x25 ; 37
+ 376: 21 f4 brne .+8 ; 0x380
+ 378: b7 01 movw r22, r14
+ 37a: 90 e0 ldi r25, 0x00 ; 0
+ 37c: c7 d1 rcall .+910 ; 0x70c
+ 37e: e8 cf rjmp .-48 ; 0x350
+ 380: 51 2c mov r5, r1
+ 382: 31 2c mov r3, r1
+ 384: 20 e0 ldi r18, 0x00 ; 0
+ 386: 20 32 cpi r18, 0x20 ; 32
+ 388: a0 f4 brcc .+40 ; 0x3b2
+ 38a: 8b 32 cpi r24, 0x2B ; 43
+ 38c: 69 f0 breq .+26 ; 0x3a8
+ 38e: 30 f4 brcc .+12 ; 0x39c
+ 390: 80 32 cpi r24, 0x20 ; 32
+ 392: 59 f0 breq .+22 ; 0x3aa
+ 394: 83 32 cpi r24, 0x23 ; 35
+ 396: 69 f4 brne .+26 ; 0x3b2
+ 398: 20 61 ori r18, 0x10 ; 16
+ 39a: 2c c0 rjmp .+88 ; 0x3f4
+ 39c: 8d 32 cpi r24, 0x2D ; 45
+ 39e: 39 f0 breq .+14 ; 0x3ae
+ 3a0: 80 33 cpi r24, 0x30 ; 48
+ 3a2: 39 f4 brne .+14 ; 0x3b2
+ 3a4: 21 60 ori r18, 0x01 ; 1
+ 3a6: 26 c0 rjmp .+76 ; 0x3f4
+ 3a8: 22 60 ori r18, 0x02 ; 2
+ 3aa: 24 60 ori r18, 0x04 ; 4
+ 3ac: 23 c0 rjmp .+70 ; 0x3f4
+ 3ae: 28 60 ori r18, 0x08 ; 8
+ 3b0: 21 c0 rjmp .+66 ; 0x3f4
+ 3b2: 27 fd sbrc r18, 7
+ 3b4: 27 c0 rjmp .+78 ; 0x404
+ 3b6: 30 ed ldi r19, 0xD0 ; 208
+ 3b8: 38 0f add r19, r24
+ 3ba: 3a 30 cpi r19, 0x0A ; 10
+ 3bc: 78 f4 brcc .+30 ; 0x3dc
+ 3be: 26 ff sbrs r18, 6
+ 3c0: 06 c0 rjmp .+12 ; 0x3ce
+ 3c2: fa e0 ldi r31, 0x0A ; 10
+ 3c4: 5f 9e mul r5, r31
+ 3c6: 30 0d add r19, r0
+ 3c8: 11 24 eor r1, r1
+ 3ca: 53 2e mov r5, r19
+ 3cc: 13 c0 rjmp .+38 ; 0x3f4
+ 3ce: 8a e0 ldi r24, 0x0A ; 10
+ 3d0: 38 9e mul r3, r24
+ 3d2: 30 0d add r19, r0
+ 3d4: 11 24 eor r1, r1
+ 3d6: 33 2e mov r3, r19
+ 3d8: 20 62 ori r18, 0x20 ; 32
+ 3da: 0c c0 rjmp .+24 ; 0x3f4
+ 3dc: 8e 32 cpi r24, 0x2E ; 46
+ 3de: 21 f4 brne .+8 ; 0x3e8
+ 3e0: 26 fd sbrc r18, 6
+ 3e2: 5f c1 rjmp .+702 ; 0x6a2
+ 3e4: 20 64 ori r18, 0x40 ; 64
+ 3e6: 06 c0 rjmp .+12 ; 0x3f4
+ 3e8: 8c 36 cpi r24, 0x6C ; 108
+ 3ea: 11 f4 brne .+4 ; 0x3f0
+ 3ec: 20 68 ori r18, 0x80 ; 128
+ 3ee: 02 c0 rjmp .+4 ; 0x3f4
+ 3f0: 88 36 cpi r24, 0x68 ; 104
+ 3f2: 41 f4 brne .+16 ; 0x404
+ 3f4: f6 01 movw r30, r12
+ 3f6: 93 fd sbrc r25, 3
+ 3f8: 85 91 lpm r24, Z+
+ 3fa: 93 ff sbrs r25, 3
+ 3fc: 81 91 ld r24, Z+
+ 3fe: 6f 01 movw r12, r30
+ 400: 81 11 cpse r24, r1
+ 402: c1 cf rjmp .-126 ; 0x386
+ 404: 98 2f mov r25, r24
+ 406: 9f 7d andi r25, 0xDF ; 223
+ 408: 95 54 subi r25, 0x45 ; 69
+ 40a: 93 30 cpi r25, 0x03 ; 3
+ 40c: 28 f4 brcc .+10 ; 0x418
+ 40e: 0c 5f subi r16, 0xFC ; 252
+ 410: 1f 4f sbci r17, 0xFF ; 255
+ 412: ff e3 ldi r31, 0x3F ; 63
+ 414: f9 83 std Y+1, r31 ; 0x01
+ 416: 0d c0 rjmp .+26 ; 0x432
+ 418: 83 36 cpi r24, 0x63 ; 99
+ 41a: 31 f0 breq .+12 ; 0x428
+ 41c: 83 37 cpi r24, 0x73 ; 115
+ 41e: 71 f0 breq .+28 ; 0x43c
+ 420: 83 35 cpi r24, 0x53 ; 83
+ 422: 09 f0 breq .+2 ; 0x426
+ 424: 57 c0 rjmp .+174 ; 0x4d4
+ 426: 21 c0 rjmp .+66 ; 0x46a
+ 428: f8 01 movw r30, r16
+ 42a: 80 81 ld r24, Z
+ 42c: 89 83 std Y+1, r24 ; 0x01
+ 42e: 0e 5f subi r16, 0xFE ; 254
+ 430: 1f 4f sbci r17, 0xFF ; 255
+ 432: 44 24 eor r4, r4
+ 434: 43 94 inc r4
+ 436: 51 2c mov r5, r1
+ 438: 54 01 movw r10, r8
+ 43a: 14 c0 rjmp .+40 ; 0x464
+ 43c: 38 01 movw r6, r16
+ 43e: f2 e0 ldi r31, 0x02 ; 2
+ 440: 6f 0e add r6, r31
+ 442: 71 1c adc r7, r1
+ 444: f8 01 movw r30, r16
+ 446: a0 80 ld r10, Z
+ 448: b1 80 ldd r11, Z+1 ; 0x01
+ 44a: 26 ff sbrs r18, 6
+ 44c: 03 c0 rjmp .+6 ; 0x454
+ 44e: 65 2d mov r22, r5
+ 450: 70 e0 ldi r23, 0x00 ; 0
+ 452: 02 c0 rjmp .+4 ; 0x458
+ 454: 6f ef ldi r22, 0xFF ; 255
+ 456: 7f ef ldi r23, 0xFF ; 255
+ 458: c5 01 movw r24, r10
+ 45a: 2c 87 std Y+12, r18 ; 0x0c
+ 45c: 4c d1 rcall .+664 ; 0x6f6
+ 45e: 2c 01 movw r4, r24
+ 460: 83 01 movw r16, r6
+ 462: 2c 85 ldd r18, Y+12 ; 0x0c
+ 464: 2f 77 andi r18, 0x7F ; 127
+ 466: 22 2e mov r2, r18
+ 468: 16 c0 rjmp .+44 ; 0x496
+ 46a: 38 01 movw r6, r16
+ 46c: f2 e0 ldi r31, 0x02 ; 2
+ 46e: 6f 0e add r6, r31
+ 470: 71 1c adc r7, r1
+ 472: f8 01 movw r30, r16
+ 474: a0 80 ld r10, Z
+ 476: b1 80 ldd r11, Z+1 ; 0x01
+ 478: 26 ff sbrs r18, 6
+ 47a: 03 c0 rjmp .+6 ; 0x482
+ 47c: 65 2d mov r22, r5
+ 47e: 70 e0 ldi r23, 0x00 ; 0
+ 480: 02 c0 rjmp .+4 ; 0x486
+ 482: 6f ef ldi r22, 0xFF ; 255
+ 484: 7f ef ldi r23, 0xFF ; 255
+ 486: c5 01 movw r24, r10
+ 488: 2c 87 std Y+12, r18 ; 0x0c
+ 48a: 2a d1 rcall .+596 ; 0x6e0
+ 48c: 2c 01 movw r4, r24
+ 48e: 2c 85 ldd r18, Y+12 ; 0x0c
+ 490: 20 68 ori r18, 0x80 ; 128
+ 492: 22 2e mov r2, r18
+ 494: 83 01 movw r16, r6
+ 496: 23 fc sbrc r2, 3
+ 498: 19 c0 rjmp .+50 ; 0x4cc
+ 49a: 83 2d mov r24, r3
+ 49c: 90 e0 ldi r25, 0x00 ; 0
+ 49e: 48 16 cp r4, r24
+ 4a0: 59 06 cpc r5, r25
+ 4a2: a0 f4 brcc .+40 ; 0x4cc
+ 4a4: b7 01 movw r22, r14
+ 4a6: 80 e2 ldi r24, 0x20 ; 32
+ 4a8: 90 e0 ldi r25, 0x00 ; 0
+ 4aa: 30 d1 rcall .+608 ; 0x70c
+ 4ac: 3a 94 dec r3
+ 4ae: f5 cf rjmp .-22 ; 0x49a
+ 4b0: f5 01 movw r30, r10
+ 4b2: 27 fc sbrc r2, 7
+ 4b4: 85 91 lpm r24, Z+
+ 4b6: 27 fe sbrs r2, 7
+ 4b8: 81 91 ld r24, Z+
+ 4ba: 5f 01 movw r10, r30
+ 4bc: b7 01 movw r22, r14
+ 4be: 90 e0 ldi r25, 0x00 ; 0
+ 4c0: 25 d1 rcall .+586 ; 0x70c
+ 4c2: 31 10 cpse r3, r1
+ 4c4: 3a 94 dec r3
+ 4c6: f1 e0 ldi r31, 0x01 ; 1
+ 4c8: 4f 1a sub r4, r31
+ 4ca: 51 08 sbc r5, r1
+ 4cc: 41 14 cp r4, r1
+ 4ce: 51 04 cpc r5, r1
+ 4d0: 79 f7 brne .-34 ; 0x4b0
+ 4d2: de c0 rjmp .+444 ; 0x690
+ 4d4: 84 36 cpi r24, 0x64 ; 100
+ 4d6: 11 f0 breq .+4 ; 0x4dc
+ 4d8: 89 36 cpi r24, 0x69 ; 105
+ 4da: 31 f5 brne .+76 ; 0x528
+ 4dc: f8 01 movw r30, r16
+ 4de: 27 ff sbrs r18, 7
+ 4e0: 07 c0 rjmp .+14 ; 0x4f0
+ 4e2: 60 81 ld r22, Z
+ 4e4: 71 81 ldd r23, Z+1 ; 0x01
+ 4e6: 82 81 ldd r24, Z+2 ; 0x02
+ 4e8: 93 81 ldd r25, Z+3 ; 0x03
+ 4ea: 0c 5f subi r16, 0xFC ; 252
+ 4ec: 1f 4f sbci r17, 0xFF ; 255
+ 4ee: 08 c0 rjmp .+16 ; 0x500
+ 4f0: 60 81 ld r22, Z
+ 4f2: 71 81 ldd r23, Z+1 ; 0x01
+ 4f4: 07 2e mov r0, r23
+ 4f6: 00 0c add r0, r0
+ 4f8: 88 0b sbc r24, r24
+ 4fa: 99 0b sbc r25, r25
+ 4fc: 0e 5f subi r16, 0xFE ; 254
+ 4fe: 1f 4f sbci r17, 0xFF ; 255
+ 500: 2f 76 andi r18, 0x6F ; 111
+ 502: 72 2e mov r7, r18
+ 504: 97 ff sbrs r25, 7
+ 506: 09 c0 rjmp .+18 ; 0x51a
+ 508: 90 95 com r25
+ 50a: 80 95 com r24
+ 50c: 70 95 com r23
+ 50e: 61 95 neg r22
+ 510: 7f 4f sbci r23, 0xFF ; 255
+ 512: 8f 4f sbci r24, 0xFF ; 255
+ 514: 9f 4f sbci r25, 0xFF ; 255
+ 516: 20 68 ori r18, 0x80 ; 128
+ 518: 72 2e mov r7, r18
+ 51a: 2a e0 ldi r18, 0x0A ; 10
+ 51c: 30 e0 ldi r19, 0x00 ; 0
+ 51e: a4 01 movw r20, r8
+ 520: 2d d1 rcall .+602 ; 0x77c <__ultoa_invert>
+ 522: a8 2e mov r10, r24
+ 524: a8 18 sub r10, r8
+ 526: 43 c0 rjmp .+134 ; 0x5ae
+ 528: 85 37 cpi r24, 0x75 ; 117
+ 52a: 29 f4 brne .+10 ; 0x536
+ 52c: 2f 7e andi r18, 0xEF ; 239
+ 52e: b2 2e mov r11, r18
+ 530: 2a e0 ldi r18, 0x0A ; 10
+ 532: 30 e0 ldi r19, 0x00 ; 0
+ 534: 25 c0 rjmp .+74 ; 0x580
+ 536: f2 2f mov r31, r18
+ 538: f9 7f andi r31, 0xF9 ; 249
+ 53a: bf 2e mov r11, r31
+ 53c: 8f 36 cpi r24, 0x6F ; 111
+ 53e: c1 f0 breq .+48 ; 0x570
+ 540: 18 f4 brcc .+6 ; 0x548
+ 542: 88 35 cpi r24, 0x58 ; 88
+ 544: 79 f0 breq .+30 ; 0x564
+ 546: ad c0 rjmp .+346 ; 0x6a2
+ 548: 80 37 cpi r24, 0x70 ; 112
+ 54a: 19 f0 breq .+6 ; 0x552
+ 54c: 88 37 cpi r24, 0x78 ; 120
+ 54e: 21 f0 breq .+8 ; 0x558
+ 550: a8 c0 rjmp .+336 ; 0x6a2
+ 552: 2f 2f mov r18, r31
+ 554: 20 61 ori r18, 0x10 ; 16
+ 556: b2 2e mov r11, r18
+ 558: b4 fe sbrs r11, 4
+ 55a: 0d c0 rjmp .+26 ; 0x576
+ 55c: 8b 2d mov r24, r11
+ 55e: 84 60 ori r24, 0x04 ; 4
+ 560: b8 2e mov r11, r24
+ 562: 09 c0 rjmp .+18 ; 0x576
+ 564: 24 ff sbrs r18, 4
+ 566: 0a c0 rjmp .+20 ; 0x57c
+ 568: 9f 2f mov r25, r31
+ 56a: 96 60 ori r25, 0x06 ; 6
+ 56c: b9 2e mov r11, r25
+ 56e: 06 c0 rjmp .+12 ; 0x57c
+ 570: 28 e0 ldi r18, 0x08 ; 8
+ 572: 30 e0 ldi r19, 0x00 ; 0
+ 574: 05 c0 rjmp .+10 ; 0x580
+ 576: 20 e1 ldi r18, 0x10 ; 16
+ 578: 30 e0 ldi r19, 0x00 ; 0
+ 57a: 02 c0 rjmp .+4 ; 0x580
+ 57c: 20 e1 ldi r18, 0x10 ; 16
+ 57e: 32 e0 ldi r19, 0x02 ; 2
+ 580: f8 01 movw r30, r16
+ 582: b7 fe sbrs r11, 7
+ 584: 07 c0 rjmp .+14 ; 0x594
+ 586: 60 81 ld r22, Z
+ 588: 71 81 ldd r23, Z+1 ; 0x01
+ 58a: 82 81 ldd r24, Z+2 ; 0x02
+ 58c: 93 81 ldd r25, Z+3 ; 0x03
+ 58e: 0c 5f subi r16, 0xFC ; 252
+ 590: 1f 4f sbci r17, 0xFF ; 255
+ 592: 06 c0 rjmp .+12 ; 0x5a0
+ 594: 60 81 ld r22, Z
+ 596: 71 81 ldd r23, Z+1 ; 0x01
+ 598: 80 e0 ldi r24, 0x00 ; 0
+ 59a: 90 e0 ldi r25, 0x00 ; 0
+ 59c: 0e 5f subi r16, 0xFE ; 254
+ 59e: 1f 4f sbci r17, 0xFF ; 255
+ 5a0: a4 01 movw r20, r8
+ 5a2: ec d0 rcall .+472 ; 0x77c <__ultoa_invert>
+ 5a4: a8 2e mov r10, r24
+ 5a6: a8 18 sub r10, r8
+ 5a8: fb 2d mov r31, r11
+ 5aa: ff 77 andi r31, 0x7F ; 127
+ 5ac: 7f 2e mov r7, r31
+ 5ae: 76 fe sbrs r7, 6
+ 5b0: 0b c0 rjmp .+22 ; 0x5c8
+ 5b2: 37 2d mov r19, r7
+ 5b4: 3e 7f andi r19, 0xFE ; 254
+ 5b6: a5 14 cp r10, r5
+ 5b8: 50 f4 brcc .+20 ; 0x5ce
+ 5ba: 74 fe sbrs r7, 4
+ 5bc: 0a c0 rjmp .+20 ; 0x5d2
+ 5be: 72 fc sbrc r7, 2
+ 5c0: 08 c0 rjmp .+16 ; 0x5d2
+ 5c2: 37 2d mov r19, r7
+ 5c4: 3e 7e andi r19, 0xEE ; 238
+ 5c6: 05 c0 rjmp .+10 ; 0x5d2
+ 5c8: ba 2c mov r11, r10
+ 5ca: 37 2d mov r19, r7
+ 5cc: 03 c0 rjmp .+6 ; 0x5d4
+ 5ce: ba 2c mov r11, r10
+ 5d0: 01 c0 rjmp .+2 ; 0x5d4
+ 5d2: b5 2c mov r11, r5
+ 5d4: 34 ff sbrs r19, 4
+ 5d6: 0d c0 rjmp .+26 ; 0x5f2
+ 5d8: fe 01 movw r30, r28
+ 5da: ea 0d add r30, r10
+ 5dc: f1 1d adc r31, r1
+ 5de: 80 81 ld r24, Z
+ 5e0: 80 33 cpi r24, 0x30 ; 48
+ 5e2: 11 f4 brne .+4 ; 0x5e8
+ 5e4: 39 7e andi r19, 0xE9 ; 233
+ 5e6: 09 c0 rjmp .+18 ; 0x5fa
+ 5e8: 32 ff sbrs r19, 2
+ 5ea: 06 c0 rjmp .+12 ; 0x5f8
+ 5ec: b3 94 inc r11
+ 5ee: b3 94 inc r11
+ 5f0: 04 c0 rjmp .+8 ; 0x5fa
+ 5f2: 83 2f mov r24, r19
+ 5f4: 86 78 andi r24, 0x86 ; 134
+ 5f6: 09 f0 breq .+2 ; 0x5fa
+ 5f8: b3 94 inc r11
+ 5fa: 33 fd sbrc r19, 3
+ 5fc: 12 c0 rjmp .+36 ; 0x622
+ 5fe: 30 ff sbrs r19, 0
+ 600: 06 c0 rjmp .+12 ; 0x60e
+ 602: 5a 2c mov r5, r10
+ 604: b3 14 cp r11, r3
+ 606: 18 f4 brcc .+6 ; 0x60e
+ 608: 53 0c add r5, r3
+ 60a: 5b 18 sub r5, r11
+ 60c: b3 2c mov r11, r3
+ 60e: b3 14 cp r11, r3
+ 610: 60 f4 brcc .+24 ; 0x62a
+ 612: b7 01 movw r22, r14
+ 614: 80 e2 ldi r24, 0x20 ; 32
+ 616: 90 e0 ldi r25, 0x00 ; 0
+ 618: 3c 87 std Y+12, r19 ; 0x0c
+ 61a: 78 d0 rcall .+240 ; 0x70c
+ 61c: b3 94 inc r11
+ 61e: 3c 85 ldd r19, Y+12 ; 0x0c
+ 620: f6 cf rjmp .-20 ; 0x60e
+ 622: b3 14 cp r11, r3
+ 624: 10 f4 brcc .+4 ; 0x62a
+ 626: 3b 18 sub r3, r11
+ 628: 01 c0 rjmp .+2 ; 0x62c
+ 62a: 31 2c mov r3, r1
+ 62c: 34 ff sbrs r19, 4
+ 62e: 11 c0 rjmp .+34 ; 0x652
+ 630: b7 01 movw r22, r14
+ 632: 80 e3 ldi r24, 0x30 ; 48
+ 634: 90 e0 ldi r25, 0x00 ; 0
+ 636: 3c 87 std Y+12, r19 ; 0x0c
+ 638: 69 d0 rcall .+210 ; 0x70c
+ 63a: 3c 85 ldd r19, Y+12 ; 0x0c
+ 63c: 32 ff sbrs r19, 2
+ 63e: 16 c0 rjmp .+44 ; 0x66c
+ 640: 31 fd sbrc r19, 1
+ 642: 03 c0 rjmp .+6 ; 0x64a
+ 644: 88 e7 ldi r24, 0x78 ; 120
+ 646: 90 e0 ldi r25, 0x00 ; 0
+ 648: 02 c0 rjmp .+4 ; 0x64e
+ 64a: 88 e5 ldi r24, 0x58 ; 88
+ 64c: 90 e0 ldi r25, 0x00 ; 0
+ 64e: b7 01 movw r22, r14
+ 650: 0c c0 rjmp .+24 ; 0x66a
+ 652: 83 2f mov r24, r19
+ 654: 86 78 andi r24, 0x86 ; 134
+ 656: 51 f0 breq .+20 ; 0x66c
+ 658: 31 ff sbrs r19, 1
+ 65a: 02 c0 rjmp .+4 ; 0x660
+ 65c: 8b e2 ldi r24, 0x2B ; 43
+ 65e: 01 c0 rjmp .+2 ; 0x662
+ 660: 80 e2 ldi r24, 0x20 ; 32
+ 662: 37 fd sbrc r19, 7
+ 664: 8d e2 ldi r24, 0x2D ; 45
+ 666: b7 01 movw r22, r14
+ 668: 90 e0 ldi r25, 0x00 ; 0
+ 66a: 50 d0 rcall .+160 ; 0x70c
+ 66c: a5 14 cp r10, r5
+ 66e: 30 f4 brcc .+12 ; 0x67c
+ 670: b7 01 movw r22, r14
+ 672: 80 e3 ldi r24, 0x30 ; 48
+ 674: 90 e0 ldi r25, 0x00 ; 0
+ 676: 4a d0 rcall .+148 ; 0x70c
+ 678: 5a 94 dec r5
+ 67a: f8 cf rjmp .-16 ; 0x66c
+ 67c: aa 94 dec r10
+ 67e: f4 01 movw r30, r8
+ 680: ea 0d add r30, r10
+ 682: f1 1d adc r31, r1
+ 684: 80 81 ld r24, Z
+ 686: b7 01 movw r22, r14
+ 688: 90 e0 ldi r25, 0x00 ; 0
+ 68a: 40 d0 rcall .+128 ; 0x70c
+ 68c: a1 10 cpse r10, r1
+ 68e: f6 cf rjmp .-20 ; 0x67c
+ 690: 33 20 and r3, r3
+ 692: 09 f4 brne .+2 ; 0x696
+ 694: 5d ce rjmp .-838 ; 0x350
+ 696: b7 01 movw r22, r14
+ 698: 80 e2 ldi r24, 0x20 ; 32
+ 69a: 90 e0 ldi r25, 0x00 ; 0
+ 69c: 37 d0 rcall .+110 ; 0x70c
+ 69e: 3a 94 dec r3
+ 6a0: f7 cf rjmp .-18 ; 0x690
+ 6a2: f7 01 movw r30, r14
+ 6a4: 86 81 ldd r24, Z+6 ; 0x06
+ 6a6: 97 81 ldd r25, Z+7 ; 0x07
+ 6a8: 02 c0 rjmp .+4 ; 0x6ae
+ 6aa: 8f ef ldi r24, 0xFF ; 255
+ 6ac: 9f ef ldi r25, 0xFF ; 255
+ 6ae: 2c 96 adiw r28, 0x0c ; 12
+ 6b0: 0f b6 in r0, 0x3f ; 63
+ 6b2: f8 94 cli
+ 6b4: de bf out 0x3e, r29 ; 62
+ 6b6: 0f be out 0x3f, r0 ; 63
+ 6b8: cd bf out 0x3d, r28 ; 61
+ 6ba: df 91 pop r29
+ 6bc: cf 91 pop r28
+ 6be: 1f 91 pop r17
+ 6c0: 0f 91 pop r16
+ 6c2: ff 90 pop r15
+ 6c4: ef 90 pop r14
+ 6c6: df 90 pop r13
+ 6c8: cf 90 pop r12
+ 6ca: bf 90 pop r11
+ 6cc: af 90 pop r10
+ 6ce: 9f 90 pop r9
+ 6d0: 8f 90 pop r8
+ 6d2: 7f 90 pop r7
+ 6d4: 6f 90 pop r6
+ 6d6: 5f 90 pop r5
+ 6d8: 4f 90 pop r4
+ 6da: 3f 90 pop r3
+ 6dc: 2f 90 pop r2
+ 6de: 08 95 ret
+
+000006e0 :
+ 6e0: fc 01 movw r30, r24
+ 6e2: 05 90 lpm r0, Z+
+ 6e4: 61 50 subi r22, 0x01 ; 1
+ 6e6: 70 40 sbci r23, 0x00 ; 0
+ 6e8: 01 10 cpse r0, r1
+ 6ea: d8 f7 brcc .-10 ; 0x6e2
+ 6ec: 80 95 com r24
+ 6ee: 90 95 com r25
+ 6f0: 8e 0f add r24, r30
+ 6f2: 9f 1f adc r25, r31
+ 6f4: 08 95 ret
+
+000006f6 :
+ 6f6: fc 01 movw r30, r24
+ 6f8: 61 50 subi r22, 0x01 ; 1
+ 6fa: 70 40 sbci r23, 0x00 ; 0
+ 6fc: 01 90 ld r0, Z+
+ 6fe: 01 10 cpse r0, r1
+ 700: d8 f7 brcc .-10 ; 0x6f8
+ 702: 80 95 com r24
+ 704: 90 95 com r25
+ 706: 8e 0f add r24, r30
+ 708: 9f 1f adc r25, r31
+ 70a: 08 95 ret
+
+0000070c :
+ 70c: 0f 93 push r16
+ 70e: 1f 93 push r17
+ 710: cf 93 push r28
+ 712: df 93 push r29
+ 714: fb 01 movw r30, r22
+ 716: 23 81 ldd r18, Z+3 ; 0x03
+ 718: 21 fd sbrc r18, 1
+ 71a: 03 c0 rjmp .+6 ; 0x722
+ 71c: 8f ef ldi r24, 0xFF ; 255
+ 71e: 9f ef ldi r25, 0xFF ; 255
+ 720: 28 c0 rjmp .+80 ; 0x772
+ 722: 22 ff sbrs r18, 2
+ 724: 16 c0 rjmp .+44 ; 0x752
+ 726: 46 81 ldd r20, Z+6 ; 0x06
+ 728: 57 81 ldd r21, Z+7 ; 0x07
+ 72a: 24 81 ldd r18, Z+4 ; 0x04
+ 72c: 35 81 ldd r19, Z+5 ; 0x05
+ 72e: 42 17 cp r20, r18
+ 730: 53 07 cpc r21, r19
+ 732: 44 f4 brge .+16 ; 0x744
+ 734: a0 81 ld r26, Z
+ 736: b1 81 ldd r27, Z+1 ; 0x01
+ 738: 9d 01 movw r18, r26
+ 73a: 2f 5f subi r18, 0xFF ; 255
+ 73c: 3f 4f sbci r19, 0xFF ; 255
+ 73e: 31 83 std Z+1, r19 ; 0x01
+ 740: 20 83 st Z, r18
+ 742: 8c 93 st X, r24
+ 744: 26 81 ldd r18, Z+6 ; 0x06
+ 746: 37 81 ldd r19, Z+7 ; 0x07
+ 748: 2f 5f subi r18, 0xFF ; 255
+ 74a: 3f 4f sbci r19, 0xFF ; 255
+ 74c: 37 83 std Z+7, r19 ; 0x07
+ 74e: 26 83 std Z+6, r18 ; 0x06
+ 750: 10 c0 rjmp .+32 ; 0x772
+ 752: eb 01 movw r28, r22
+ 754: 09 2f mov r16, r25
+ 756: 18 2f mov r17, r24
+ 758: 00 84 ldd r0, Z+8 ; 0x08
+ 75a: f1 85 ldd r31, Z+9 ; 0x09
+ 75c: e0 2d mov r30, r0
+ 75e: 09 95 icall
+ 760: 89 2b or r24, r25
+ 762: e1 f6 brne .-72 ; 0x71c
+ 764: 8e 81 ldd r24, Y+6 ; 0x06
+ 766: 9f 81 ldd r25, Y+7 ; 0x07
+ 768: 01 96 adiw r24, 0x01 ; 1
+ 76a: 9f 83 std Y+7, r25 ; 0x07
+ 76c: 8e 83 std Y+6, r24 ; 0x06
+ 76e: 81 2f mov r24, r17
+ 770: 90 2f mov r25, r16
+ 772: df 91 pop r29
+ 774: cf 91 pop r28
+ 776: 1f 91 pop r17
+ 778: 0f 91 pop r16
+ 77a: 08 95 ret
+
+0000077c <__ultoa_invert>:
+ 77c: fa 01 movw r30, r20
+ 77e: aa 27 eor r26, r26
+ 780: 28 30 cpi r18, 0x08 ; 8
+ 782: 51 f1 breq .+84 ; 0x7d8 <__ultoa_invert+0x5c>
+ 784: 20 31 cpi r18, 0x10 ; 16
+ 786: 81 f1 breq .+96 ; 0x7e8 <__ultoa_invert+0x6c>
+ 788: e8 94 clt
+ 78a: 6f 93 push r22
+ 78c: 6e 7f andi r22, 0xFE ; 254
+ 78e: 6e 5f subi r22, 0xFE ; 254
+ 790: 7f 4f sbci r23, 0xFF ; 255
+ 792: 8f 4f sbci r24, 0xFF ; 255
+ 794: 9f 4f sbci r25, 0xFF ; 255
+ 796: af 4f sbci r26, 0xFF ; 255
+ 798: b1 e0 ldi r27, 0x01 ; 1
+ 79a: 3e d0 rcall .+124 ; 0x818 <__ultoa_invert+0x9c>
+ 79c: b4 e0 ldi r27, 0x04 ; 4
+ 79e: 3c d0 rcall .+120 ; 0x818 <__ultoa_invert+0x9c>
+ 7a0: 67 0f add r22, r23
+ 7a2: 78 1f adc r23, r24
+ 7a4: 89 1f adc r24, r25
+ 7a6: 9a 1f adc r25, r26
+ 7a8: a1 1d adc r26, r1
+ 7aa: 68 0f add r22, r24
+ 7ac: 79 1f adc r23, r25
+ 7ae: 8a 1f adc r24, r26
+ 7b0: 91 1d adc r25, r1
+ 7b2: a1 1d adc r26, r1
+ 7b4: 6a 0f add r22, r26
+ 7b6: 71 1d adc r23, r1
+ 7b8: 81 1d adc r24, r1
+ 7ba: 91 1d adc r25, r1
+ 7bc: a1 1d adc r26, r1
+ 7be: 20 d0 rcall .+64 ; 0x800 <__ultoa_invert+0x84>
+ 7c0: 09 f4 brne .+2 ; 0x7c4 <__ultoa_invert+0x48>
+ 7c2: 68 94 set
+ 7c4: 3f 91 pop r19
+ 7c6: 2a e0 ldi r18, 0x0A ; 10
+ 7c8: 26 9f mul r18, r22
+ 7ca: 11 24 eor r1, r1
+ 7cc: 30 19 sub r19, r0
+ 7ce: 30 5d subi r19, 0xD0 ; 208
+ 7d0: 31 93 st Z+, r19
+ 7d2: de f6 brtc .-74 ; 0x78a <__ultoa_invert+0xe>
+ 7d4: cf 01 movw r24, r30
+ 7d6: 08 95 ret
+ 7d8: 46 2f mov r20, r22
+ 7da: 47 70 andi r20, 0x07 ; 7
+ 7dc: 40 5d subi r20, 0xD0 ; 208
+ 7de: 41 93 st Z+, r20
+ 7e0: b3 e0 ldi r27, 0x03 ; 3
+ 7e2: 0f d0 rcall .+30 ; 0x802 <__ultoa_invert+0x86>
+ 7e4: c9 f7 brne .-14 ; 0x7d8 <__ultoa_invert+0x5c>
+ 7e6: f6 cf rjmp .-20 ; 0x7d4 <__ultoa_invert+0x58>
+ 7e8: 46 2f mov r20, r22
+ 7ea: 4f 70 andi r20, 0x0F ; 15
+ 7ec: 40 5d subi r20, 0xD0 ; 208
+ 7ee: 4a 33 cpi r20, 0x3A ; 58
+ 7f0: 18 f0 brcs .+6 ; 0x7f8 <__ultoa_invert+0x7c>
+ 7f2: 49 5d subi r20, 0xD9 ; 217
+ 7f4: 31 fd sbrc r19, 1
+ 7f6: 40 52 subi r20, 0x20 ; 32
+ 7f8: 41 93 st Z+, r20
+ 7fa: 02 d0 rcall .+4 ; 0x800 <__ultoa_invert+0x84>
+ 7fc: a9 f7 brne .-22 ; 0x7e8 <__ultoa_invert+0x6c>
+ 7fe: ea cf rjmp .-44 ; 0x7d4 <__ultoa_invert+0x58>
+ 800: b4 e0 ldi r27, 0x04 ; 4
+ 802: a6 95 lsr r26
+ 804: 97 95 ror r25
+ 806: 87 95 ror r24
+ 808: 77 95 ror r23
+ 80a: 67 95 ror r22
+ 80c: ba 95 dec r27
+ 80e: c9 f7 brne .-14 ; 0x802 <__ultoa_invert+0x86>
+ 810: 00 97 sbiw r24, 0x00 ; 0
+ 812: 61 05 cpc r22, r1
+ 814: 71 05 cpc r23, r1
+ 816: 08 95 ret
+ 818: 9b 01 movw r18, r22
+ 81a: ac 01 movw r20, r24
+ 81c: 0a 2e mov r0, r26
+ 81e: 06 94 lsr r0
+ 820: 57 95 ror r21
+ 822: 47 95 ror r20
+ 824: 37 95 ror r19
+ 826: 27 95 ror r18
+ 828: ba 95 dec r27
+ 82a: c9 f7 brne .-14 ; 0x81e <__ultoa_invert+0xa2>
+ 82c: 62 0f add r22, r18
+ 82e: 73 1f adc r23, r19
+ 830: 84 1f adc r24, r20
+ 832: 95 1f adc r25, r21
+ 834: a0 1d adc r26, r0
+ 836: 08 95 ret
+
+00000838 <_exit>:
+ 838: f8 94 cli
+
+0000083a <__stop_program>:
+ 83a: ff cf rjmp .-2 ; 0x83a <__stop_program>
diff --git a/MIC-Week4/Debug/MIC-Week4.map b/MIC-Week4/Debug/MIC-Week4.map
index 01a43c3..9ceb8e6 100644
--- a/MIC-Week4/Debug/MIC-Week4.map
+++ b/MIC-Week4/Debug/MIC-Week4.map
@@ -1,21 +1,50 @@
Archive member included to satisfy reference by file (symbol)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_exit.o)
- C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.0.90/gcc/dev/atmega128/avr51/crtatmega128.o (exit)
+ C:/Program Files (x86)/Atmel/Studio/7.0/Packs/Atmel/ATmega_DFP/1.0.91/gcc/dev/atmega128/avr51/crtatmega128.o (exit)
+c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_copy_data.o)
+ main.o (__do_copy_data)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_clear_bss.o)
main.o (__do_clear_bss)
+c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(sprintf.o)
+ main.o (sprintf)
+c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(vfprintf_std.o)
+ c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(sprintf.o) (vfprintf)
+c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(strnlen_P.o)
+ c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(vfprintf_std.o) (strnlen_P)
+c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(strnlen.o)
+ c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(vfprintf_std.o) (strnlen)
+c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(fputc.o)
+ c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(vfprintf_std.o) (fputc)
+c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(ultoa_invert.o)
+ c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(vfprintf_std.o) (__ultoa_invert)
Discarded input sections
- .data 0x00000000 0x0 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.0.90/gcc/dev/atmega128/avr51/crtatmega128.o
- .bss 0x00000000 0x0 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.0.90/gcc/dev/atmega128/avr51/crtatmega128.o
+ .data 0x00000000 0x0 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/Atmel/ATmega_DFP/1.0.91/gcc/dev/atmega128/avr51/crtatmega128.o
+ .bss 0x00000000 0x0 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/Atmel/ATmega_DFP/1.0.91/gcc/dev/atmega128/avr51/crtatmega128.o
+ .text 0x00000000 0x0 lcd.o
+ .data 0x00000000 0x0 lcd.o
+ .bss 0x00000000 0x0 lcd.o
+ .text.set_cursor
+ 0x00000000 0x8 lcd.o
+ .text.shift_display
+ 0x00000000 0x52 lcd.o
.text 0x00000000 0x0 main.o
.data 0x00000000 0x0 main.o
.bss 0x00000000 0x0 main.o
+ .text.timer1Init
+ 0x00000000 0x1a main.o
.text.setRed 0x00000000 0x8 main.o
.text.setGreen
0x00000000 0x8 main.o
.text.setBlue 0x00000000 0xc main.o
+ .text.adcInitFree
+ 0x00000000 0xa main.o
+ .text.setWithButton
+ 0x00000000 0x6 main.o
+ .text.somemain
+ 0x00000000 0x2c main.o
.text.alleKleuren
0x00000000 0x132 main.o
.text.opgaveextra
@@ -39,6 +68,22 @@ Discarded input sections
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_exit.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_exit.o)
+ .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_copy_data.o)
+ .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_copy_data.o)
+ .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_copy_data.o)
+ .text.libgcc.mul
+ 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_copy_data.o)
+ .text.libgcc.div
+ 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_copy_data.o)
+ .text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_copy_data.o)
+ .text.libgcc.prologue
+ 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_copy_data.o)
+ .text.libgcc.builtins
+ 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_copy_data.o)
+ .text.libgcc.fmul
+ 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_copy_data.o)
+ .text.libgcc.fixed
+ 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_copy_data.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_clear_bss.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_clear_bss.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_clear_bss.o)
@@ -55,6 +100,24 @@ Discarded input sections
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_clear_bss.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_clear_bss.o)
+ .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(sprintf.o)
+ .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(sprintf.o)
+ .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(sprintf.o)
+ .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(vfprintf_std.o)
+ .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(vfprintf_std.o)
+ .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(vfprintf_std.o)
+ .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(strnlen_P.o)
+ .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(strnlen_P.o)
+ .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(strnlen_P.o)
+ .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(strnlen.o)
+ .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(strnlen.o)
+ .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(strnlen.o)
+ .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(fputc.o)
+ .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(fputc.o)
+ .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(fputc.o)
+ .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(ultoa_invert.o)
+ .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(ultoa_invert.o)
+ .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(ultoa_invert.o)
Memory Configuration
@@ -71,7 +134,8 @@ user_signatures 0x00850000 0x00000400 rw !x
Linker script and memory map
Address of section .data set to 0x800100
-LOAD C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.0.90/gcc/dev/atmega128/avr51/crtatmega128.o
+LOAD C:/Program Files (x86)/Atmel/Studio/7.0/Packs/Atmel/ATmega_DFP/1.0.91/gcc/dev/atmega128/avr51/crtatmega128.o
+LOAD lcd.o
LOAD main.o
START GROUP
LOAD c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libm.a
@@ -80,7 +144,7 @@ START GROUP
LOAD c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a
LOAD c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libm.a
LOAD c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a
-LOAD C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.0.90/gcc/dev/atmega128/avr51\libatmega128.a
+LOAD C:/Program Files (x86)/Atmel/Studio/7.0/Packs/Atmel/ATmega_DFP/1.0.91/gcc/dev/atmega128/avr51\libatmega128.a
END GROUP
.hash
@@ -173,9 +237,9 @@ END GROUP
.rela.plt
*(.rela.plt)
-.text 0x00000000 0x122
+.text 0x00000000 0x83c
*(.vectors)
- .vectors 0x00000000 0x8c C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.0.90/gcc/dev/atmega128/avr51/crtatmega128.o
+ .vectors 0x00000000 0x8c C:/Program Files (x86)/Atmel/Studio/7.0/Packs/Atmel/ATmega_DFP/1.0.91/gcc/dev/atmega128/avr51/crtatmega128.o
0x00000000 __vector_default
0x00000000 __vectors
*(.vectors)
@@ -201,19 +265,21 @@ END GROUP
SORT(*)(.ctors)
SORT(*)(.dtors)
*(.init0)
- .init0 0x0000008c 0x0 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.0.90/gcc/dev/atmega128/avr51/crtatmega128.o
+ .init0 0x0000008c 0x0 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/Atmel/ATmega_DFP/1.0.91/gcc/dev/atmega128/avr51/crtatmega128.o
0x0000008c __init
*(.init0)
*(.init1)
*(.init1)
*(.init2)
- .init2 0x0000008c 0xc C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.0.90/gcc/dev/atmega128/avr51/crtatmega128.o
+ .init2 0x0000008c 0xc C:/Program Files (x86)/Atmel/Studio/7.0/Packs/Atmel/ATmega_DFP/1.0.91/gcc/dev/atmega128/avr51/crtatmega128.o
*(.init2)
*(.init3)
*(.init3)
*(.init4)
- .init4 0x00000098 0x10 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_clear_bss.o)
- 0x00000098 __do_clear_bss
+ .init4 0x00000098 0x1a c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_copy_data.o)
+ 0x00000098 __do_copy_data
+ .init4 0x000000b2 0x10 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_clear_bss.o)
+ 0x000000b2 __do_clear_bss
*(.init4)
*(.init5)
*(.init5)
@@ -224,64 +290,92 @@ END GROUP
*(.init8)
*(.init8)
*(.init9)
- .init9 0x000000a8 0x4 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.0.90/gcc/dev/atmega128/avr51/crtatmega128.o
+ .init9 0x000000c2 0x4 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/Atmel/ATmega_DFP/1.0.91/gcc/dev/atmega128/avr51/crtatmega128.o
*(.init9)
*(.text)
- .text 0x000000ac 0x2 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.0.90/gcc/dev/atmega128/avr51/crtatmega128.o
- 0x000000ac __vector_22
- 0x000000ac __vector_28
- 0x000000ac __vector_1
- 0x000000ac __vector_32
- 0x000000ac __vector_34
- 0x000000ac __vector_24
- 0x000000ac __vector_12
- 0x000000ac __bad_interrupt
- 0x000000ac __vector_6
- 0x000000ac __vector_31
- 0x000000ac __vector_3
- 0x000000ac __vector_23
- 0x000000ac __vector_30
- 0x000000ac __vector_25
- 0x000000ac __vector_11
- 0x000000ac __vector_13
- 0x000000ac __vector_17
- 0x000000ac __vector_19
- 0x000000ac __vector_7
- 0x000000ac __vector_27
- 0x000000ac __vector_5
- 0x000000ac __vector_33
- 0x000000ac __vector_4
- 0x000000ac __vector_9
- 0x000000ac __vector_2
- 0x000000ac __vector_21
- 0x000000ac __vector_15
- 0x000000ac __vector_29
- 0x000000ac __vector_8
- 0x000000ac __vector_26
- 0x000000ac __vector_14
- 0x000000ac __vector_10
- 0x000000ac __vector_16
- 0x000000ac __vector_18
- 0x000000ac __vector_20
- 0x000000ae . = ALIGN (0x2)
+ .text 0x000000c6 0x2 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/Atmel/ATmega_DFP/1.0.91/gcc/dev/atmega128/avr51/crtatmega128.o
+ 0x000000c6 __vector_22
+ 0x000000c6 __vector_28
+ 0x000000c6 __vector_1
+ 0x000000c6 __vector_32
+ 0x000000c6 __vector_34
+ 0x000000c6 __vector_24
+ 0x000000c6 __vector_12
+ 0x000000c6 __bad_interrupt
+ 0x000000c6 __vector_6
+ 0x000000c6 __vector_31
+ 0x000000c6 __vector_3
+ 0x000000c6 __vector_23
+ 0x000000c6 __vector_30
+ 0x000000c6 __vector_25
+ 0x000000c6 __vector_11
+ 0x000000c6 __vector_13
+ 0x000000c6 __vector_17
+ 0x000000c6 __vector_19
+ 0x000000c6 __vector_7
+ 0x000000c6 __vector_27
+ 0x000000c6 __vector_5
+ 0x000000c6 __vector_33
+ 0x000000c6 __vector_4
+ 0x000000c6 __vector_9
+ 0x000000c6 __vector_2
+ 0x000000c6 __vector_21
+ 0x000000c6 __vector_15
+ 0x000000c6 __vector_29
+ 0x000000c6 __vector_8
+ 0x000000c6 __vector_26
+ 0x000000c6 __vector_14
+ 0x000000c6 __vector_10
+ 0x000000c6 __vector_16
+ 0x000000c6 __vector_18
+ 0x000000c6 __vector_20
+ 0x000000c8 . = ALIGN (0x2)
*(.text.*)
- .text.wait 0x000000ae 0x22 main.o
- 0x000000ae wait
- .text.timer1Init
- 0x000000d0 0x1a main.o
- 0x000000d0 timer1Init
- .text.adcInit 0x000000ea 0xa main.o
- 0x000000ea adcInit
- .text.setWithButton
- 0x000000f4 0x6 main.o
- 0x000000f4 setWithButton
- .text.main 0x000000fa 0x24 main.o
- 0x000000fa main
- 0x0000011e . = ALIGN (0x2)
+ .text.display_char
+ 0x000000c8 0x48 lcd.o
+ 0x000000c8 display_char
+ .text.lcd_command
+ 0x00000110 0x40 lcd.o
+ 0x00000110 lcd_command
+ .text.display_text
+ 0x00000150 0x36 lcd.o
+ 0x00000150 display_text
+ .text.clear_display
+ 0x00000186 0xa lcd.o
+ 0x00000186 clear_display
+ .text.lcd_init
+ 0x00000190 0x84 lcd.o
+ 0x00000190 lcd_init
+ .text.wait 0x00000214 0x22 main.o
+ 0x00000214 wait
+ .text.adcInitPoll
+ 0x00000236 0xa main.o
+ 0x00000236 adcInitPoll
+ .text.main 0x00000240 0x66 main.o
+ 0x00000240 main
+ .text.avr-libc
+ 0x000002a6 0x5e c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(sprintf.o)
+ 0x000002a6 sprintf
+ .text.avr-libc
+ 0x00000304 0x3dc c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(vfprintf_std.o)
+ 0x00000304 vfprintf
+ .text.avr-libc
+ 0x000006e0 0x16 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(strnlen_P.o)
+ 0x000006e0 strnlen_P
+ .text.avr-libc
+ 0x000006f6 0x16 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(strnlen.o)
+ 0x000006f6 strnlen
+ .text.avr-libc
+ 0x0000070c 0x70 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(fputc.o)
+ 0x0000070c fputc
+ .text.avr-libc
+ 0x0000077c 0xbc c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(ultoa_invert.o)
+ 0x0000077c __ultoa_invert
+ 0x00000838 . = ALIGN (0x2)
*(.fini9)
- .fini9 0x0000011e 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_exit.o)
- 0x0000011e _exit
- 0x0000011e exit
+ .fini9 0x00000838 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_exit.o)
+ 0x00000838 _exit
+ 0x00000838 exit
*(.fini9)
*(.fini8)
*(.fini8)
@@ -300,36 +394,39 @@ END GROUP
*(.fini1)
*(.fini1)
*(.fini0)
- .fini0 0x0000011e 0x4 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_exit.o)
+ .fini0 0x00000838 0x4 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avr51\libgcc.a(_exit.o)
*(.fini0)
- 0x00000122 _etext = .
+ 0x0000083c _etext = .
-.data 0x00800100 0x0 load address 0x00000122
+.data 0x00800100 0x4 load address 0x0000083c
0x00800100 PROVIDE (__data_start, .)
*(.data)
*(.data*)
*(.rodata)
*(.rodata*)
+ .rodata.str1.1
+ 0x00800100 0x3 main.o
*(.gnu.linkonce.d*)
- 0x00800100 . = ALIGN (0x2)
- 0x00800100 _edata = .
- 0x00800100 PROVIDE (__data_end, .)
+ 0x00800104 . = ALIGN (0x2)
+ *fill* 0x00800103 0x1
+ 0x00800104 _edata = .
+ 0x00800104 PROVIDE (__data_end, .)
-.bss 0x00800100 0x0
- 0x00800100 PROVIDE (__bss_start, .)
+.bss 0x00800104 0x0
+ 0x00800104 PROVIDE (__bss_start, .)
*(.bss)
*(.bss*)
*(COMMON)
- 0x00800100 PROVIDE (__bss_end, .)
- 0x00000122 __data_load_start = LOADADDR (.data)
- 0x00000122 __data_load_end = (__data_load_start + SIZEOF (.data))
+ 0x00800104 PROVIDE (__bss_end, .)
+ 0x0000083c __data_load_start = LOADADDR (.data)
+ 0x00000840 __data_load_end = (__data_load_start + SIZEOF (.data))
-.noinit 0x00800100 0x0
- 0x00800100 PROVIDE (__noinit_start, .)
+.noinit 0x00800104 0x0
+ 0x00800104 PROVIDE (__noinit_start, .)
*(.noinit*)
- 0x00800100 PROVIDE (__noinit_end, .)
- 0x00800100 _end = .
- 0x00800100 PROVIDE (__heap_start, .)
+ 0x00800104 PROVIDE (__noinit_end, .)
+ 0x00800104 _end = .
+ 0x00800104 PROVIDE (__heap_start, .)
.eeprom 0x00810000 0x0
*(.eeprom*)
@@ -368,15 +465,20 @@ END GROUP
.stab.indexstr
*(.stab.indexstr)
-.comment 0x00000000 0x30
+.comment 0x00000000 0x5c
*(.comment)
- .comment 0x00000000 0x30 main.o
+ .comment 0x00000000 0x30 lcd.o
0x31 (size before relaxing)
+ .comment 0x00000030 0x31 main.o
+ .comment 0x00000030 0x31 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(sprintf.o)
+ .comment 0x00000030 0x2c c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(vfprintf_std.o)
+ 0x2d (size before relaxing)
+ .comment 0x0000005c 0x31 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr51\libc.a(fputc.o)
.note.gnu.avr.deviceinfo
0x00000000 0x3c
.note.gnu.avr.deviceinfo
- 0x00000000 0x3c C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.0.90/gcc/dev/atmega128/avr51/crtatmega128.o
+ 0x00000000 0x3c C:/Program Files (x86)/Atmel/Studio/7.0/Packs/Atmel/ATmega_DFP/1.0.91/gcc/dev/atmega128/avr51/crtatmega128.o
.note.gnu.build-id
*(.note.gnu.build-id)
@@ -393,38 +495,47 @@ END GROUP
.debug_sfnames
*(.debug_sfnames)
-.debug_aranges 0x00000000 0x68
+.debug_aranges 0x00000000 0xc8
*(.debug_aranges)
.debug_aranges
- 0x00000000 0x68 main.o
+ 0x00000000 0x50 lcd.o
+ .debug_aranges
+ 0x00000050 0x78 main.o
.debug_pubnames
*(.debug_pubnames)
-.debug_info 0x00000000 0xb91
+.debug_info 0x00000000 0x12f5
*(.debug_info .gnu.linkonce.wi.*)
- .debug_info 0x00000000 0xb91 main.o
+ .debug_info 0x00000000 0x5ff lcd.o
+ .debug_info 0x000005ff 0xcf6 main.o
-.debug_abbrev 0x00000000 0x253
+.debug_abbrev 0x00000000 0x48c
*(.debug_abbrev)
- .debug_abbrev 0x00000000 0x253 main.o
+ .debug_abbrev 0x00000000 0x1ac lcd.o
+ .debug_abbrev 0x000001ac 0x2e0 main.o
-.debug_line 0x00000000 0x654
+.debug_line 0x00000000 0x9cf
*(.debug_line .debug_line.* .debug_line_end)
- .debug_line 0x00000000 0x654 main.o
+ .debug_line 0x00000000 0x2df lcd.o
+ .debug_line 0x000002df 0x6f0 main.o
-.debug_frame 0x00000000 0xb4
+.debug_frame 0x00000000 0x190
*(.debug_frame)
- .debug_frame 0x00000000 0xb4 main.o
+ .debug_frame 0x00000000 0xac lcd.o
+ .debug_frame 0x000000ac 0xe4 main.o
-.debug_str 0x00000000 0x222
+.debug_str 0x00000000 0x2bb
*(.debug_str)
- .debug_str 0x00000000 0x222 main.o
- 0x256 (size before relaxing)
+ .debug_str 0x00000000 0x1e5 lcd.o
+ 0x223 (size before relaxing)
+ .debug_str 0x000001e5 0xd6 main.o
+ 0x2a3 (size before relaxing)
-.debug_loc 0x00000000 0x4be
+.debug_loc 0x00000000 0x7e6
*(.debug_loc)
- .debug_loc 0x00000000 0x4be main.o
+ .debug_loc 0x00000000 0x2e1 lcd.o
+ .debug_loc 0x000002e1 0x505 main.o
.debug_macinfo
*(.debug_macinfo)
@@ -444,9 +555,10 @@ END GROUP
.debug_pubtypes
*(.debug_pubtypes)
-.debug_ranges 0x00000000 0x138
+.debug_ranges 0x00000000 0x188
*(.debug_ranges)
- .debug_ranges 0x00000000 0x138 main.o
+ .debug_ranges 0x00000000 0x40 lcd.o
+ .debug_ranges 0x00000040 0x148 main.o
.debug_macro
*(.debug_macro)
diff --git a/MIC-Week4/Debug/MIC-Week4.srec b/MIC-Week4/Debug/MIC-Week4.srec
index 0b81bda..90fbe8c 100644
--- a/MIC-Week4/Debug/MIC-Week4.srec
+++ b/MIC-Week4/Debug/MIC-Week4.srec
@@ -1,21 +1,135 @@
S01100004D49432D5765656B342E737265634D
-S113000045C0000053C0000051C000004FC00000B4
-S11300104DC000004BC0000049C0000047C00000B4
-S113002045C0000043C0000041C000003FC00000C4
-S11300303DC000003BC0000039C0000037C00000D4
-S113004035C0000033C0000031C000002FC00000E4
-S11300502DC000002BC0000029C0000027C00000F4
-S113006025C0000023C0000021C000001FC0000004
-S11300701DC000001BC0000019C0000017C0000014
-S113008015C0000013C0000011C0000011241FBEE1
-S1130090CFEFD0E1DEBFCDBF21E0A0E0B1E001C0F1
-S11300A01D92A030B207E1F728D039C0A9CF1816A5
-S11300B019066CF420E030E0EFECF7E03197F1F74B
-S11300C000C000002F5F3F4F28173907A9F7089594
-S11300D01BBC1ABC19BC18BC109279001092780091
-S11300E089EA8FBD8BE08EBD089581EE87B986E8DD
-S11300F086B908959899369A08958FEF87BB109220
-S113010061008ABBF2DFE4DF3699FECF85B190E06F
-S11301109BBD8ABD84E690E0CADFECDFF5CFF8949E
-S1050120FFCF0B
+S113000045C0000060C000005EC000005CC000008D
+S11300105AC0000058C0000056C0000054C0000080
+S113002052C0000050C000004EC000004CC0000090
+S11300304AC0000048C0000046C0000044C00000A0
+S113004042C0000040C000003EC000003CC00000B0
+S11300503AC0000038C0000036C0000034C00000C0
+S113006032C0000030C000002EC000002CC00000D0
+S11300702AC0000028C0000026C0000024C00000E0
+S113008022C0000020C000001EC0000011241FBEBA
+S1130090CFEFD0E1DEBFCDBF11E0A0E0B1E0ECE3F3
+S11300A0F8E000E00BBF02C007900D92A430B10746
+S11300B0D9F721E0A4E0B1E001C01D92A430B20759
+S11300C0E1F7BED0B9C39CCF982F907F95BB95B371
+S11300D09C6095BBEFE9FFE03197F1F700C00000A9
+S11300E094E095BBEFE9FFE03197F1F700C0000021
+S11300F0F0E18F9FC001112485BB85B38C6085BB63
+S11301008FE99FE00197F1F700C0000015BA089548
+S1130110982F907F95BBAB9AEFE9FFE03197F1F709
+S113012000C0000094E095BBEFE9FFE03197F1F7E0
+S113013000C00000F0E18F9FC001112485BBAB9A81
+S11301408FE99FE00197F1F700C0000015BA089508
+S1130150CF93DF93EB01892B19F080ECD9DF02C038
+S113016080E8D6DF8881882359F02196ADDF8FE9B6
+S11301709FE00197F1F700C0000089918111F6CF4B
+S1130180DF91CF91089581E0C3DF80E8C1CF089566
+S11301908FEF84BB2FEF80E792E0215080409040A6
+S11301A0E1F700C0000082E0B3DF2FE788E391E0CD
+S11301B0215080409040E1F700C0000088E2A8DFB1
+S11301C02FE788E391E0215080409040E1F700C0A0
+S11301D000008CE09DDF2FE788E391E02150804010
+S11301E09040E1F700C0000086E092DF2FE788E34B
+S11301F091E0215080409040E1F700C00000C3DF4F
+S11302002FEF80E792E0215080409040E1F700C05A
+S113021000000895181619066CF420E030E0EFECA5
+S1130220F7E03197F1F700C000002F5F3F4F281728
+S11302303907A9F7089581E687B986E886B908954C
+S1130240CF93DF93CDB7DEB728970FB6F894DEBF10
+S11302500FBECDBF10926100EEDF9ADF0F2EF0E0EB
+S1130260EF2EF1E0FF2EF02D8E010F5F1F4F369A17
+S11302703699FECF85B184B185B11F928F93FF92D9
+S1130280EF921F930F930FD0B80180E090E060DFEE
+S113029088EB9BE0BFDF77DF0F900F900F900F90FC
+S11302A00F900F90E4CF0F931F93CF93DF93CDB7AD
+S11302B0DEB72E970FB6F894DEBF0FBECDBF0D8903
+S11302C01E8986E08C831A8309838FEF9FE79E83C0
+S11302D08D83AE01475E5F4F6F89788DCE010196A5
+S11302E011D02F813885F801E20FF31F10822E966A
+S11302F00FB6F894DEBF0FBECDBFDF91CF911F9133
+S11303000F9108952F923F924F925F926F927F9236
+S11303108F929F92AF92BF92CF92DF92EF92FF9211
+S11303200F931F93CF93DF93CDB7DEB72C970FB600
+S1130330F894DEBF0FBECDBF7C016B018A01FC01C6
+S113034017821682838181FFB0C1CE0101964C01D0
+S1130350F7019381F60193FD859193FF81916F01DC
+S1130360882309F49EC1853239F493FD859193FF66
+S113037081916F01853221F4B70190E0C7D1E8CFB4
+S1130380512C312C20E02032A0F48B3269F030F46F
+S1130390803259F0833269F420612CC08D3239F0F7
+S11303A0803339F4216026C02260246023C0286091
+S11303B021C027FD27C030ED380F3A3078F426FFEE
+S11303C006C0FAE05F9E300D1124532E13C08AE05C
+S11303D0389E300D1124332E20620CC08E3221F44D
+S11303E026FD5FC1206406C08C3611F4206802C06B
+S11303F0883641F4F60193FD859193FF81916F0155
+S11304008111C1CF982F9F7D9554933028F40C5FB0
+S11304101F4FFFE3F9830DC0833631F0833771F04A
+S1130420833509F057C021C0F801808189830E5FAC
+S11304301F4F44244394512C540114C03801F2E05A
+S11304406F0E711CF801A080B18026FF03C0652DDA
+S113045070E002C06FEF7FEFC5012C874CD12C01F7
+S113046083012C852F77222E16C03801F2E06F0EFF
+S1130470711CF801A080B18026FF03C0652D70E0D7
+S113048002C06FEF7FEFC5012C872AD12C012C8588
+S11304902068222E830123FC19C0832D90E0481686
+S11304A05906A0F4B70180E290E030D13A94F5CF38
+S11304B0F50127FC859127FE81915F01B70190E04A
+S11304C025D131103A94F1E04F1A510841145104E6
+S11304D079F7DEC0843611F0893631F5F80127FF4B
+S11304E007C060817181828193810C5F1F4F08C0B6
+S11304F060817181072E000C880B990B0E5F1F4FD2
+S11305002F76722E97FF09C090958095709561950E
+S11305107F4F8F4F9F4F2068722E2AE030E0A40156
+S11305202DD1A82EA81843C0853729F42F7EB22ECA
+S11305302AE030E025C0F22FF97FBF2E8F36C1F0BC
+S113054018F4883579F0ADC0803719F0883721F078
+S1130550A8C02F2F2061B22EB4FE0DC08B2D846055
+S1130560B82E09C024FF0AC09F2F9660B92E06C07A
+S113057028E030E005C020E130E002C020E132E0B4
+S1130580F801B7FE07C060817181828193810C5F9D
+S11305901F4F06C06081718180E090E00E5F1F4FA5
+S11305A0A401ECD0A82EA818FB2DFF777F2E76FE91
+S11305B00BC0372D3E7FA51450F474FE0AC072FCA4
+S11305C008C0372D3E7E05C0BA2C372D03C0BA2C87
+S11305D001C0B52C34FF0DC0FE01EA0DF11D808170
+S11305E0803311F4397E09C032FF06C0B394B3944A
+S11305F004C0832F867809F0B39433FD12C030FF12
+S113060006C05A2CB31418F4530C5B18B32CB3144F
+S113061060F4B70180E290E03C8778D0B3943C85E5
+S1130620F6CFB31410F43B1801C0312C34FF11C0C1
+S1130630B70180E390E03C8769D03C8532FF16C067
+S113064031FD03C088E790E002C088E590E0B7017F
+S11306500CC0832F867851F031FF02C08BE201C0B9
+S113066080E237FD8DE2B70190E050D0A51430F45C
+S1130670B70180E390E04AD05A94F8CFAA94F401E9
+S1130680EA0DF11D8081B70190E040D0A110F6CFB2
+S1130690332009F45DCEB70180E290E037D03A947C
+S11306A0F7CFF7018681978102C08FEF9FEF2C96D9
+S11306B00FB6F894DEBF0FBECDBFDF91CF911F916F
+S11306C00F91FF90EF90DF90CF90BF90AF909F90ED
+S11306D08F907F906F905F904F903F902F900895F0
+S11306E0FC010590615070400110D8F780959095F9
+S11306F08E0F9F1F0895FC016150704001900110FE
+S1130700D8F7809590958E0F9F1F08950F931F9390
+S1130710CF93DF93FB01238121FD03C08FEF9FEF74
+S113072028C022FF16C04681578124813581421793
+S1130730530744F4A081B1819D012F5F3F4F318362
+S113074020838C93268137812F5F3F4F3783268305
+S113075010C0EB01092F182F0084F185E02D0995B5
+S1130760892BE1F68E819F8101969F838E83812F51
+S1130770902FDF91CF911F910F910895FA01AA272D
+S1130780283051F1203181F1E8946F936E7F6E5FD0
+S11307907F4F8F4F9F4FAF4FB1E03ED0B4E03CD07E
+S11307A0670F781F891F9A1FA11D680F791F8A1F61
+S11307B0911DA11D6A0F711D811D911DA11D20D0C8
+S11307C009F468943F912AE0269F11243019305D82
+S11307D03193DEF6CF010895462F4770405D419373
+S11307E0B3E00FD0C9F7F6CF462F4F70405D4A33C0
+S11307F018F0495D31FD4052419302D0A9F7EACF88
+S1130800B4E0A6959795879577956795BA95C9F7B6
+S113081000976105710508959B01AC010A2E0694A9
+S11308205795479537952795BA95C9F7620F731F62
+S10F0830841F951FA01D0895F894FFCFAD
+S107083C256400002B
S9030000FC
diff --git a/MIC-Week4/Debug/Makefile b/MIC-Week4/Debug/Makefile
index a21b641..c84d839 100644
--- a/MIC-Week4/Debug/Makefile
+++ b/MIC-Week4/Debug/Makefile
@@ -37,6 +37,7 @@ SUBDIRS :=
# Add inputs and outputs from these tool invocations to the build variables
C_SRCS += \
+../lcd.c \
../main.c
@@ -47,15 +48,19 @@ ASM_SRCS +=
OBJS += \
+lcd.o \
main.o
OBJS_AS_ARGS += \
+lcd.o \
main.o
C_DEPS += \
+lcd.d \
main.d
C_DEPS_AS_ARGS += \
+lcd.d \
main.d
OUTPUT_FILE_PATH +=MIC-Week4.elf
@@ -75,10 +80,12 @@ LINKER_SCRIPT_DEP+=
+
+
./%.o: .././%.c
@echo Building file: $<
@echo Invoking: AVR/GNU C Compiler : 4.9.2
- $(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.0.90\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -mrelax -g2 -Wall -mmcu=atmega128 -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.0.90\gcc\dev\atmega128" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
+ $(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"C:\Program Files (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\1.0.91\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -mrelax -g2 -Wall -mmcu=atmega128 -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\1.0.91\gcc\dev\atmega128" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
@echo Finished building: $<
@@ -107,7 +114,7 @@ all: $(OUTPUT_FILE_PATH) $(ADDITIONAL_DEPENDENCIES)
$(OUTPUT_FILE_PATH): $(OBJS) $(USER_OBJS) $(OUTPUT_FILE_DEP) $(LIB_DEP) $(LINKER_SCRIPT_DEP)
@echo Building target: $@
@echo Invoking: AVR/GNU Linker : 4.9.2
- $(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -o$(OUTPUT_FILE_PATH_AS_ARGS) $(OBJS_AS_ARGS) $(USER_OBJS) $(LIBS) -Wl,-Map="MIC-Week4.map" -Wl,--start-group -Wl,-lm -Wl,--end-group -Wl,--gc-sections -mrelax -mmcu=atmega128 -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.0.90\gcc\dev\atmega128"
+ $(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -o$(OUTPUT_FILE_PATH_AS_ARGS) $(OBJS_AS_ARGS) $(USER_OBJS) $(LIBS) -Wl,-Map="MIC-Week4.map" -Wl,--start-group -Wl,-lm -Wl,--end-group -Wl,--gc-sections -mrelax -mmcu=atmega128 -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\1.0.91\gcc\dev\atmega128"
@echo Finished building target: $@
"C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O ihex -R .eeprom -R .fuse -R .lock -R .signature -R .user_signatures "MIC-Week4.elf" "MIC-Week4.hex"
"C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy.exe" -j .eeprom --set-section-flags=.eeprom=alloc,load --change-section-lma .eeprom=0 --no-change-warnings -O ihex "MIC-Week4.elf" "MIC-Week4.eep" || exit 0
diff --git a/MIC-Week4/Debug/lcd.d b/MIC-Week4/Debug/lcd.d
new file mode 100644
index 0000000..10d8e1d
--- /dev/null
+++ b/MIC-Week4/Debug/lcd.d
@@ -0,0 +1,52 @@
+lcd.d lcd.o: .././lcd.c \
+ c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h \
+ c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
+ c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h \
+ c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\4.9.2\include\stdint.h \
+ c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \
+ C:\Program\ Files\ (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\1.0.91\include/avr/iom128.h \
+ c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h \
+ c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h \
+ c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h \
+ c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h \
+ c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h \
+ c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h \
+ c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
+ c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h \
+ c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h \
+ c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\4.9.2\include\stddef.h \
+ .././lcd.h
+
+c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h:
+
+c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
+
+c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h:
+
+c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\4.9.2\include\stdint.h:
+
+c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h:
+
+C:\Program\ Files\ (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\1.0.91\include/avr/iom128.h:
+
+c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h:
+
+c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h:
+
+c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h:
+
+c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h:
+
+c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h:
+
+c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h:
+
+c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h:
+
+c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h:
+
+c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h:
+
+c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\4.9.2\include\stddef.h:
+
+.././lcd.h:
diff --git a/MIC-Week4/Debug/main.d b/MIC-Week4/Debug/main.d
index f45a877..d259ff0 100644
--- a/MIC-Week4/Debug/main.d
+++ b/MIC-Week4/Debug/main.d
@@ -4,7 +4,7 @@ main.d main.o: .././main.c \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\4.9.2\include\stdint.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \
- C:\Program\ Files\ (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.0.90\include/avr/iom128.h \
+ C:\Program\ Files\ (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\1.0.91\include/avr/iom128.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h \
@@ -13,7 +13,8 @@ main.d main.o: .././main.c \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h \
- c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h
+ c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h \
+ .././lcd.h
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h:
@@ -25,7 +26,7 @@ c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h:
-C:\Program\ Files\ (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.0.90\include/avr/iom128.h:
+C:\Program\ Files\ (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\1.0.91\include/avr/iom128.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h:
@@ -44,3 +45,5 @@ c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h:
+
+.././lcd.h:
diff --git a/MIC-Week4/Debug/makedep.mk b/MIC-Week4/Debug/makedep.mk
index 6a14fde..2b654d5 100644
--- a/MIC-Week4/Debug/makedep.mk
+++ b/MIC-Week4/Debug/makedep.mk
@@ -2,5 +2,7 @@
# Automatically-generated file. Do not edit or delete the file
################################################################################
+lcd.c
+
main.c
diff --git a/MIC-Week4/MIC-Week4.componentinfo.xml b/MIC-Week4/MIC-Week4.componentinfo.xml
index 5ceaf94..5b64613 100644
--- a/MIC-Week4/MIC-Week4.componentinfo.xml
+++ b/MIC-Week4/MIC-Week4.componentinfo.xml
@@ -15,7 +15,7 @@
- C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.0.90\include
+ C:/Program Files (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\1.0.91\include
include
C
@@ -26,7 +26,7 @@
- C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.0.90\include\avr\iom128.h
+ C:/Program Files (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\1.0.91\include\avr\iom128.h
header
C
@@ -37,7 +37,7 @@
- C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.0.90\templates\main.c
+ C:/Program Files (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\1.0.91\templates\main.c
template
source
C Exe
@@ -48,7 +48,7 @@
- C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.0.90\templates\main.cpp
+ C:/Program Files (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\1.0.91\templates\main.cpp
template
source
C Exe
@@ -59,7 +59,7 @@
- C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.0.90\gcc\dev\atmega128
+ C:/Program Files (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\1.0.91\gcc\dev\atmega128
libraryPrefix
GCC
@@ -71,8 +71,8 @@
ATmega_DFP
- C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.0.90/Atmel.ATmega_DFP.pdsc
- 1.0.90
+ C:/Program Files (x86)/Atmel/Studio/7.0/Packs/Atmel/ATmega_DFP/1.0.91/Atmel.ATmega_DFP.pdsc
+ 1.0.91
true
ATmega128
diff --git a/MIC-Week4/MIC-Week4.cproj b/MIC-Week4/MIC-Week4.cproj
index 9e44ec6..f0841bc 100644
--- a/MIC-Week4/MIC-Week4.cproj
+++ b/MIC-Week4/MIC-Week4.cproj
@@ -42,7 +42,7 @@
- -mmcu=atmega128 -B "%24(PackRepoDir)\atmel\ATmega_DFP\1.0.90\gcc\dev\atmega128"
+ -mmcu=atmega128 -B "%24(PackRepoDir)\Atmel\ATmega_DFP\1.0.91\gcc\dev\atmega128"
True
True
True
@@ -58,7 +58,7 @@
- %24(PackRepoDir)\atmel\ATmega_DFP\1.0.90\include
+ %24(PackRepoDir)\Atmel\ATmega_DFP\1.0.91\include
Optimize for size (-Os)
@@ -76,7 +76,7 @@
- -mmcu=atmega128 -B "%24(PackRepoDir)\atmel\ATmega_DFP\1.0.90\gcc\dev\atmega128"
+ -mmcu=atmega128 -B "%24(PackRepoDir)\Atmel\ATmega_DFP\1.0.91\gcc\dev\atmega128"
True
True
True
@@ -92,7 +92,7 @@
- %24(PackRepoDir)\atmel\ATmega_DFP\1.0.90\include
+ %24(PackRepoDir)\Atmel\ATmega_DFP\1.0.91\include
Optimize (-O1)
@@ -110,6 +110,12 @@
+
+ compile
+
+
+ compile
+
compile
diff --git a/MIC-Week4/lcd.c b/MIC-Week4/lcd.c
new file mode 100644
index 0000000..dae1df7
--- /dev/null
+++ b/MIC-Week4/lcd.c
@@ -0,0 +1,124 @@
+/*
+ * lcd.c
+ *
+ * Created: 23-2-2016 14:06:31
+ * Author: kenny
+ */
+ #define F_CPU 8000000UL //CPU op 8MHz
+
+ #include
+ #include
+ #include
+
+ #include "lcd.h"
+
+ //LOCAL
+ void display_char(unsigned char dat);
+ void lcd_command(unsigned char dat);
+
+ void lcd_init()
+ {
+ DDRC = 0b11111111;
+
+ _delay_ms(100);
+
+ // return home
+ lcd_command( 0x02 );
+ // mode: 4 bits interface data, 2 lines, 5x8 dots
+ _delay_ms(50);
+ lcd_command( 0x28 );
+ // display: on, cursor off, blinking off
+ _delay_ms(50);
+ lcd_command( 0x0C );
+ // entry mode: cursor to right, no shift
+ _delay_ms(50);
+ lcd_command( 0x06 );
+ // RAM address: 0, first position, line 1
+ _delay_ms(50);
+ clear_display();
+
+ _delay_ms(100);
+ }
+
+void display_text( int line, char *text )
+{
+ // eerst de eerste 8 karakters = regel 1
+
+ if(line)
+ {
+ // eerste pos regel 1
+ lcd_command(0xC0);
+ }
+ else
+ {
+ // regel 0
+ lcd_command(0x80);
+ }
+
+ int count = 0;
+
+ while (text[count] != '\0') {
+ display_char( text[count] );
+ count++;
+
+ _delay_ms(2);
+ }
+}
+
+void clear_display()
+{
+ lcd_command(0b00000001);
+ lcd_command(0b10000000);
+}
+
+ void set_cursor(int position)
+ {
+ position = position | (1<<7);
+
+ lcd_command(position);
+ }
+
+ void shift_display(int left, int count)
+ {
+ unsigned char data = left ? 0b00011100 : 0b00011000;
+
+ for (int i=0; i
#include
+#include "lcd.h"
+
#define BIT(x) (1 << (x))
unsigned int sCount=0, minutes=0, hours=0;
@@ -69,20 +71,55 @@ void setBlue( unsigned char blue )
// void setBlue( unsigned char blue)
// Initialize ADC:
-void adcInit( void )
+void adcInitFree( void )
{
- ADMUX = 0b11100001; // AREF=2,56 V, result left adjusted, channel1 at pin PF1
+ ADMUX = 0b01100001; // AREF=VCC, result left adjusted, channel1 at pin PF1
+ ADCSRA = 0b11100110; // ADC-enable, no interrupt, start, free running, division by 64
+}
+
+void adcInitPoll( void )
+{
+ ADMUX = 0b01100001; // AREF=2,56 V, result left adjusted, channel1 at pin PF1
ADCSRA = 0b10000110; // ADC-enable, no interrupt, no free running, division by 64
}
+int main( void )
+{
+ DDRF = 0x00;
+ adcInitPoll();
+ lcd_init();
+
+
+ unsigned char data;
+
+ char l1[8];
+
+ while(1)
+ {
+ ADCSRA |= BIT(6); // Start ADC
+ while ( ADCSRA & BIT(6) ) ; // Wait for completion
+
+ data = ADCH;
+ data = (data<<2) | ADCL;
+
+ sprintf(l1, "%d", ADCH);
+ display_text(0, l1);
+
+ wait(3000);
+
+ clear_display();
+ }
+
+}
+
// Main program: Counting on T1
-int main( void )
+int somemain( void )
{
DDRB = 0xFF;
DDRF = 0x00; // set PORTF for input (ADC)
DDRA = 0xFF; // set PORTA for output
- adcInit(); // initialize ADC
+ adcInitPoll(); // initialize ADC
timer1Init();
while (1)