first commit
This commit is contained in:
commit
f37d007971
|
@ -0,0 +1,222 @@
|
||||||
|
################################################################################
|
||||||
|
# Automatically-generated file. Do not edit!
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
SHELL := cmd.exe
|
||||||
|
RM := rm -rf
|
||||||
|
|
||||||
|
USER_OBJS :=
|
||||||
|
|
||||||
|
LIBS :=
|
||||||
|
PROJ :=
|
||||||
|
|
||||||
|
O_SRCS :=
|
||||||
|
C_SRCS :=
|
||||||
|
S_SRCS :=
|
||||||
|
S_UPPER_SRCS :=
|
||||||
|
OBJ_SRCS :=
|
||||||
|
ASM_SRCS :=
|
||||||
|
PREPROCESSING_SRCS :=
|
||||||
|
OBJS :=
|
||||||
|
OBJS_AS_ARGS :=
|
||||||
|
C_DEPS :=
|
||||||
|
C_DEPS_AS_ARGS :=
|
||||||
|
EXECUTABLES :=
|
||||||
|
OUTPUT_FILE_PATH :=
|
||||||
|
OUTPUT_FILE_PATH_AS_ARGS :=
|
||||||
|
AVR_APP_PATH :=$$$AVR_APP_PATH$$$
|
||||||
|
QUOTE := "
|
||||||
|
ADDITIONAL_DEPENDENCIES:=
|
||||||
|
OUTPUT_FILE_DEP:=
|
||||||
|
LIB_DEP:=
|
||||||
|
|
||||||
|
# Every subdirectory with source files must be described here
|
||||||
|
SUBDIRS := \
|
||||||
|
../lib
|
||||||
|
|
||||||
|
|
||||||
|
# Add inputs and outputs from these tool invocations to the build variables
|
||||||
|
C_SRCS += \
|
||||||
|
../fonction.cpp \
|
||||||
|
../lib/LCD.cpp \
|
||||||
|
../lib/hc74595.cpp \
|
||||||
|
../lib/DCF77.cpp \
|
||||||
|
../lib/DS1307.cpp \
|
||||||
|
../lib/timer.cpp \
|
||||||
|
../lib/UART.cpp \
|
||||||
|
../Nixie\ clock.cpp
|
||||||
|
|
||||||
|
|
||||||
|
PREPROCESSING_SRCS +=
|
||||||
|
|
||||||
|
|
||||||
|
ASM_SRCS +=
|
||||||
|
|
||||||
|
|
||||||
|
OBJS += \
|
||||||
|
fonction.o \
|
||||||
|
lib/LCD.o \
|
||||||
|
lib/hc74595.o \
|
||||||
|
lib/DCF77.o \
|
||||||
|
lib/DS1307.o \
|
||||||
|
lib/timer.o \
|
||||||
|
lib/UART.o \
|
||||||
|
Nixie\ clock.o
|
||||||
|
|
||||||
|
OBJS_AS_ARGS += \
|
||||||
|
fonction.o \
|
||||||
|
lib/LCD.o \
|
||||||
|
lib/hc74595.o \
|
||||||
|
lib/DCF77.o \
|
||||||
|
lib/DS1307.o \
|
||||||
|
lib/timer.o \
|
||||||
|
lib/UART.o \
|
||||||
|
"Nixie clock.o"
|
||||||
|
|
||||||
|
C_DEPS += \
|
||||||
|
fonction.d \
|
||||||
|
lib/LCD.d \
|
||||||
|
lib/hc74595.d \
|
||||||
|
lib/DCF77.d \
|
||||||
|
lib/DS1307.d \
|
||||||
|
lib/timer.d \
|
||||||
|
lib/UART.d \
|
||||||
|
Nixie\ clock.d
|
||||||
|
|
||||||
|
C_DEPS_AS_ARGS += \
|
||||||
|
fonction.d \
|
||||||
|
lib/LCD.d \
|
||||||
|
lib/hc74595.d \
|
||||||
|
lib/DCF77.d \
|
||||||
|
lib/DS1307.d \
|
||||||
|
lib/timer.d \
|
||||||
|
lib/UART.d \
|
||||||
|
"Nixie clock.d"
|
||||||
|
|
||||||
|
OUTPUT_FILE_PATH +=Nixie\ clock.elf
|
||||||
|
|
||||||
|
OUTPUT_FILE_PATH_AS_ARGS +="Nixie clock.elf"
|
||||||
|
|
||||||
|
ADDITIONAL_DEPENDENCIES:=
|
||||||
|
|
||||||
|
OUTPUT_FILE_DEP:= ./makedep.mk
|
||||||
|
|
||||||
|
LIB_DEP+=
|
||||||
|
|
||||||
|
# AVR32/GNU C Compiler
|
||||||
|
./fonction.o: .././fonction.cpp
|
||||||
|
@echo Building file: $<
|
||||||
|
@echo Invoking: AVR8/GNU C Compiler : 3.4.4
|
||||||
|
$(QUOTE)C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1056\avr8-gnu-toolchain\bin\avr-g++.exe$(QUOTE) -funsigned-char -funsigned-bitfields -DDEBUG -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -c -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
|
||||||
|
@echo Finished building: $<
|
||||||
|
|
||||||
|
|
||||||
|
lib/LCD.o: ../lib/LCD.cpp
|
||||||
|
@echo Building file: $<
|
||||||
|
@echo Invoking: AVR8/GNU C Compiler : 3.4.4
|
||||||
|
$(QUOTE)C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1056\avr8-gnu-toolchain\bin\avr-g++.exe$(QUOTE) -funsigned-char -funsigned-bitfields -DDEBUG -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -c -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
|
||||||
|
@echo Finished building: $<
|
||||||
|
|
||||||
|
|
||||||
|
lib/hc74595.o: ../lib/hc74595.cpp
|
||||||
|
@echo Building file: $<
|
||||||
|
@echo Invoking: AVR8/GNU C Compiler : 3.4.4
|
||||||
|
$(QUOTE)C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1056\avr8-gnu-toolchain\bin\avr-g++.exe$(QUOTE) -funsigned-char -funsigned-bitfields -DDEBUG -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -c -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
|
||||||
|
@echo Finished building: $<
|
||||||
|
|
||||||
|
|
||||||
|
lib/DCF77.o: ../lib/DCF77.cpp
|
||||||
|
@echo Building file: $<
|
||||||
|
@echo Invoking: AVR8/GNU C Compiler : 3.4.4
|
||||||
|
$(QUOTE)C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1056\avr8-gnu-toolchain\bin\avr-g++.exe$(QUOTE) -funsigned-char -funsigned-bitfields -DDEBUG -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -c -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
|
||||||
|
@echo Finished building: $<
|
||||||
|
|
||||||
|
|
||||||
|
lib/DS1307.o: ../lib/DS1307.cpp
|
||||||
|
@echo Building file: $<
|
||||||
|
@echo Invoking: AVR8/GNU C Compiler : 3.4.4
|
||||||
|
$(QUOTE)C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1056\avr8-gnu-toolchain\bin\avr-g++.exe$(QUOTE) -funsigned-char -funsigned-bitfields -DDEBUG -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -c -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
|
||||||
|
@echo Finished building: $<
|
||||||
|
|
||||||
|
|
||||||
|
lib/timer.o: ../lib/timer.cpp
|
||||||
|
@echo Building file: $<
|
||||||
|
@echo Invoking: AVR8/GNU C Compiler : 3.4.4
|
||||||
|
$(QUOTE)C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1056\avr8-gnu-toolchain\bin\avr-g++.exe$(QUOTE) -funsigned-char -funsigned-bitfields -DDEBUG -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -c -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
|
||||||
|
@echo Finished building: $<
|
||||||
|
|
||||||
|
|
||||||
|
lib/UART.o: ../lib/UART.cpp
|
||||||
|
@echo Building file: $<
|
||||||
|
@echo Invoking: AVR8/GNU C Compiler : 3.4.4
|
||||||
|
$(QUOTE)C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1056\avr8-gnu-toolchain\bin\avr-g++.exe$(QUOTE) -funsigned-char -funsigned-bitfields -DDEBUG -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -c -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
|
||||||
|
@echo Finished building: $<
|
||||||
|
|
||||||
|
|
||||||
|
./Nixie\ clock.o: .././Nixie\ clock.cpp
|
||||||
|
@echo Building file: $<
|
||||||
|
@echo Invoking: AVR8/GNU C Compiler : 3.4.4
|
||||||
|
$(QUOTE)C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1056\avr8-gnu-toolchain\bin\avr-g++.exe$(QUOTE) -funsigned-char -funsigned-bitfields -DDEBUG -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -c -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
|
||||||
|
@echo Finished building: $<
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
./%.o: .././%.cpp
|
||||||
|
@echo Building file: $<
|
||||||
|
@echo Invoking: AVR8/GNU C Compiler : 3.4.4
|
||||||
|
$(QUOTE)C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1056\avr8-gnu-toolchain\bin\avr-g++.exe$(QUOTE) -funsigned-char -funsigned-bitfields -DDEBUG -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -c -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
|
||||||
|
@echo Finished building: $<
|
||||||
|
|
||||||
|
|
||||||
|
lib/%.o: ../lib/%.cpp
|
||||||
|
@echo Building file: $<
|
||||||
|
@echo Invoking: AVR8/GNU C Compiler : 3.4.4
|
||||||
|
$(QUOTE)C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1056\avr8-gnu-toolchain\bin\avr-g++.exe$(QUOTE) -funsigned-char -funsigned-bitfields -DDEBUG -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -c -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
|
||||||
|
@echo Finished building: $<
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# AVR32/GNU Preprocessing Assembler
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# AVR32/GNU Assembler
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ifneq ($(MAKECMDGOALS),clean)
|
||||||
|
ifneq ($(strip $(C_DEPS)),)
|
||||||
|
-include $(C_DEPS)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Add inputs and outputs from these tool invocations to the build variables
|
||||||
|
|
||||||
|
# All Target
|
||||||
|
all: $(OUTPUT_FILE_PATH) $(ADDITIONAL_DEPENDENCIES)
|
||||||
|
|
||||||
|
$(OUTPUT_FILE_PATH): $(OBJS) $(USER_OBJS) $(OUTPUT_FILE_DEP) $(LIB_DEP)
|
||||||
|
@echo Building target: $@
|
||||||
|
@echo Invoking: AVR8/GNU Linker : 3.4.4
|
||||||
|
$(QUOTE)C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1056\avr8-gnu-toolchain\bin\avr-g++.exe$(QUOTE) -o$(OUTPUT_FILE_PATH_AS_ARGS) $(OBJS_AS_ARGS) $(USER_OBJS) $(LIBS) -Wl,-Map="Nixie clock.map" -Wl,--start-group -Wl,-lm -Wl,--end-group -Wl,--gc-sections -mmcu=atmega328p
|
||||||
|
@echo Finished building target: $@
|
||||||
|
"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1056\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O ihex -R .eeprom -R .fuse -R .lock -R .signature "Nixie clock.elf" "Nixie clock.hex"
|
||||||
|
"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1056\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 "Nixie clock.elf" "Nixie clock.eep" || exit 0
|
||||||
|
"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1056\avr8-gnu-toolchain\bin\avr-objdump.exe" -h -S "Nixie clock.elf" > "Nixie clock.lss"
|
||||||
|
"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1056\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O srec -R .eeprom -R .fuse -R .lock -R .signature "Nixie clock.elf" "Nixie clock.srec"
|
||||||
|
"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1056\avr8-gnu-toolchain\bin\avr-size.exe" "Nixie clock.elf"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Other Targets
|
||||||
|
clean:
|
||||||
|
-$(RM) $(OBJS_AS_ARGS) $(EXECUTABLES)
|
||||||
|
-$(RM) $(C_DEPS_AS_ARGS)
|
||||||
|
rm -rf "Nixie clock.elf" "Nixie clock.a" "Nixie clock.hex" "Nixie clock.lss" "Nixie clock.eep" "Nixie clock.map" "Nixie clock.srec"
|
||||||
|
|
|
@ -0,0 +1,49 @@
|
||||||
|
Nixie clock.d Nixie clock.o: .././Nixie\ clock.cpp \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\io.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\inttypes.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\stdint.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\iom328p.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\portpins.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\common.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\version.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\fuse.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\lock.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\util\delay.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\math.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\interrupt.h \
|
||||||
|
../././fonction.h
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\io.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\inttypes.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\stdint.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\iom328p.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\portpins.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\common.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\version.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\fuse.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\lock.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\util\delay.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\util\delay_basic.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\math.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\interrupt.h:
|
||||||
|
|
||||||
|
../././fonction.h:
|
|
@ -0,0 +1 @@
|
||||||
|
:00000001FF
|
Binary file not shown.
|
@ -0,0 +1,364 @@
|
||||||
|
:100000000C9436000C94BE090C945E000C945E00B7
|
||||||
|
:100010000C945E000C945E000C945E000C945E00E8
|
||||||
|
:100020000C945E000C945E000C945E000C94FD0A2F
|
||||||
|
:100030000C945E000C945E000C945E000C945E00C8
|
||||||
|
:100040000C945E000C945E000C945E000C945E00B8
|
||||||
|
:100050000C945E000C945E000C945E000C945E00A8
|
||||||
|
:100060000C945E000C945E00C806ED0911241FBEBE
|
||||||
|
:10007000CFEFD8E0DEBFCDBF11E0A0E0B1E0E4EA11
|
||||||
|
:10008000F6E102C005900D92A030B107D9F721E04A
|
||||||
|
:10009000A0E0B1E001C01D92AB32B207E1F710E081
|
||||||
|
:1000A000CCE6D0E004C02297FE010E944C0BC8367B
|
||||||
|
:1000B000D107C9F70E943F0B0C94500B0C94000021
|
||||||
|
:1000C0008A3091054CF020E030E02F5F3F4F0A97D7
|
||||||
|
:1000D0008A309105D4F702C020E030E022953295B5
|
||||||
|
:1000E000307F3227207F3227822B932B08950E9466
|
||||||
|
:1000F000220B529887B18F7C87B984B1887F84B9ED
|
||||||
|
:1001000087B1876087B988B1887F88B984B18863EF
|
||||||
|
:1001100084B985B1877C85B98DE091E00E94B00AF1
|
||||||
|
:10012000803829F460E08DE091E00E94C80A0895CB
|
||||||
|
:100130008DE091E00E94B80A90E0BC016295729552
|
||||||
|
:10014000707F7627607F762795958795959587951B
|
||||||
|
:100150009595879595958795682B40E083E091E08C
|
||||||
|
:100160000E9409078DE091E00E94B40A90E0BC0172
|
||||||
|
:1001700062957295707F7627607F76279595879533
|
||||||
|
:10018000959587959595879595958795682B40E0EA
|
||||||
|
:1001900083E091E00E9409078DE091E00E94B00A9F
|
||||||
|
:1001A00090E0BC0162957295707F7627607F76271C
|
||||||
|
:1001B0009595879595958795959587959595879527
|
||||||
|
:1001C000682B40E083E091E00E94090783E091E022
|
||||||
|
:1001D0000E949C0708958DE091E00E94BC0A90E087
|
||||||
|
:1001E000BC0162957295707F7627607F7627959522
|
||||||
|
:1001F0008795959587959595879595958795682B7E
|
||||||
|
:1002000040E083E091E00E9409078DE091E00E94C8
|
||||||
|
:10021000C00A90E0BC0162957295707F7627607F7E
|
||||||
|
:100220007627959587959595879595958795959535
|
||||||
|
:100230008795682B40E083E091E00E9409078DE0FC
|
||||||
|
:1002400091E00E94C40A90E0BC0162957295707FB3
|
||||||
|
:100250007627607F762795958795959587959595CF
|
||||||
|
:10026000879595958795682B40E083E091E00E9403
|
||||||
|
:10027000090783E091E00E949C0708958DE091E0DA
|
||||||
|
:100280000E94B00A0E94980008950196662309F41E
|
||||||
|
:10029000C8C08230910509F446C08330910509F445
|
||||||
|
:1002A00081C0019709F084C140E06FEF83E091E0E5
|
||||||
|
:1002B0000E9409078DE091E00E94C00A90E0BC0115
|
||||||
|
:1002C00062957295707F7627607F762795958795E2
|
||||||
|
:1002D000959587959595879595958795682B40E099
|
||||||
|
:1002E00083E091E00E9409078DE091E00E94C40A3A
|
||||||
|
:1002F00090E0BC0162957295707F7627607F7627CB
|
||||||
|
:1003000095958795959587959595879595958795D5
|
||||||
|
:10031000682B40E083E091E00E94090783E091E0D0
|
||||||
|
:100320000E949C0708958DE091E00E94BC0A90E035
|
||||||
|
:10033000BC0162957295707F7627607F76279595D0
|
||||||
|
:100340008795959587959595879595958795682B2C
|
||||||
|
:1003500040E083E091E00E94090740E06FEF83E016
|
||||||
|
:1003600091E00E9409078DE091E00E94C40A90E0AC
|
||||||
|
:10037000BC0162957295707F7627607F7627959590
|
||||||
|
:100380008795959587959595879595958795682BEC
|
||||||
|
:1003900040E083E091E00E94090783E091E00E9441
|
||||||
|
:1003A0009C0708958DE091E00E94BC0A90E0BC019A
|
||||||
|
:1003B00062957295707F7627607F762795958795F1
|
||||||
|
:1003C000959587959595879595958795682B40E0A8
|
||||||
|
:1003D00083E091E00E9409078DE091E00E94C00A4D
|
||||||
|
:1003E00090E0BC0162957295707F7627607F7627DA
|
||||||
|
:1003F00095958795959587959595879595958795E5
|
||||||
|
:10040000682B40E083E091E00E94090740E06FEF35
|
||||||
|
:1004100083E091E00E94090783E091E00E949C073D
|
||||||
|
:1004200008958230910509F446C08330910509F49E
|
||||||
|
:1004300081C0019709F0BCC040E06FEF83E091E01C
|
||||||
|
:100440000E9409078DE091E00E94B40A90E0BC018F
|
||||||
|
:1004500062957295707F7627607F76279595879550
|
||||||
|
:10046000959587959595879595958795682B40E007
|
||||||
|
:1004700083E091E00E9409078DE091E00E94B00ABC
|
||||||
|
:1004800090E0BC0162957295707F7627607F762739
|
||||||
|
:100490009595879595958795959587959595879544
|
||||||
|
:1004A000682B40E083E091E00E94090783E091E03F
|
||||||
|
:1004B0000E949C0708958DE091E00E94B80A90E0A8
|
||||||
|
:1004C000BC0162957295707F7627607F762795953F
|
||||||
|
:1004D0008795959587959595879595958795682B9B
|
||||||
|
:1004E00040E083E091E00E94090740E06FEF83E085
|
||||||
|
:1004F00091E00E9409078DE091E00E94B00A90E02F
|
||||||
|
:10050000BC0162957295707F7627607F76279595FE
|
||||||
|
:100510008795959587959595879595958795682B5A
|
||||||
|
:1005200040E083E091E00E94090783E091E00E94AF
|
||||||
|
:100530009C0708958DE091E00E94B80A90E0BC010C
|
||||||
|
:1005400062957295707F7627607F7627959587955F
|
||||||
|
:10055000959587959595879595958795682B40E016
|
||||||
|
:1005600083E091E00E9409078DE091E00E94B40AC7
|
||||||
|
:1005700090E0BC0162957295707F7627607F762748
|
||||||
|
:100580009595879595958795959587959595879553
|
||||||
|
:10059000682B40E083E091E00E94090740E06FEFA4
|
||||||
|
:1005A00083E091E00E94090783E091E00E949C07AC
|
||||||
|
:1005B00008950E94360B809302011A9B03C088EEB7
|
||||||
|
:1005C00093E003C0813CF9F4FACF1A9949C040C0C6
|
||||||
|
:1005D00083B1109201011092000183B18873885F8A
|
||||||
|
:1005E000893320F485FF03C02D9A02C080E02D9846
|
||||||
|
:1005F00084FF02C02C9A01C02C9883FF02C02B9A62
|
||||||
|
:1006000008952B980895199B03C088EE93E004C0C9
|
||||||
|
:10061000803C09F03FC0F9CF19992CC034C083B198
|
||||||
|
:10062000109201011092000183B183B18873885048
|
||||||
|
:1006300085FF02C02D9A01C02D9884FF02C02C9A1C
|
||||||
|
:1006400001C02C9883FF02C02B9A08952B9808951F
|
||||||
|
:100650008091000190910101892B09F4B9CFB9CFA4
|
||||||
|
:10066000EFE9FFE03197F1F700C000000197009734
|
||||||
|
:1006700079F3ABCFEFE9FFE03197F1F700C000006D
|
||||||
|
:100680000197009749F68091000190910101892B13
|
||||||
|
:1006900031F2C6CF0895BF92CF92DF92EF92FF92D0
|
||||||
|
:1006A0000F931F93CF93DF93189B95C2189BAEC1F6
|
||||||
|
:1006B0008FE99FE00197F1F700C000001899F8CF8B
|
||||||
|
:1006C000A5C10F5F1F4F083C110514F000E010E0BA
|
||||||
|
:1006D000189B0BC0189B08C0EFE9FFE03197F1F7BA
|
||||||
|
:1006E00000C000001899F8CF2196C330D10509F455
|
||||||
|
:1006F0006CC03CF4C130D10579F0C230D10509F1AC
|
||||||
|
:1007000077C1C530D10509F4EAC00CF4A5C0C630E4
|
||||||
|
:10071000D10509F426C16CC10536110534F060E03D
|
||||||
|
:1007200082E090E00E94450102C00E9498001A9960
|
||||||
|
:1007300002C0199B44C260E08DE091E00E94C80AAB
|
||||||
|
:100740003EC20536110534F060E081E090E00E9481
|
||||||
|
:10075000450102C00E9498001A9B13C08E2D9F2D48
|
||||||
|
:100760001A9975C16AC1807F60E1680F02C061E0BB
|
||||||
|
:10077000680F603608F060E08DE091E00E94CE0ADC
|
||||||
|
:100780001EC2199B1CC28E2D9F2D199973C169C160
|
||||||
|
:1007900082958F70682F70E0615071096295729533
|
||||||
|
:1007A000707F7627607F7627696004C0882329F0F0
|
||||||
|
:1007B0006FEF680F613618F403C069E501C069E5A1
|
||||||
|
:1007C0008DE091E00E94CE0AFAC10536110534F0A1
|
||||||
|
:1007D00060E080E090E00E94450102C00E94980025
|
||||||
|
:1007E0001A9B17C08E2D9F2D1A9958C14DC1807F1D
|
||||||
|
:1007F00060E1680F08C0833228F49F5F807F692F13
|
||||||
|
:10080000682B01C060E040E08DE091E00E94D40AD6
|
||||||
|
:10081000D6C1199BD4C18E2D9F2D199951C148C1A4
|
||||||
|
:10082000982F9F7069F482958F7090E00197829560
|
||||||
|
:100830009295907F9827807F9827682F696006C0DF
|
||||||
|
:100840009150807F692F682B01C063E240E08DE00A
|
||||||
|
:1008500091E00E94D40AB3C140980536110534F0E6
|
||||||
|
:100860006D2D80E090E00E94450102C00E94EB00E7
|
||||||
|
:100870001A9B15C08E2D9F2D1A9936C12BC1807FD2
|
||||||
|
:1008800060E1680F04C09F5F807F692F682B62332F
|
||||||
|
:1008900008F060E08DE091E00E94E00A90C1199BB1
|
||||||
|
:1008A0008EC18E2D9F2D199932C128C182958F70CE
|
||||||
|
:1008B00090E0019782959295907F9827807F982766
|
||||||
|
:1008C000682F696004C09150807F692F682B611187
|
||||||
|
:1008D00001C061E38DE091E00E94E00A70C105363D
|
||||||
|
:1008E000110534F06D2D81E090E00E94450102C0B9
|
||||||
|
:1008F0000E94EB001A9B15C08E2D9F2D1A991BC1CB
|
||||||
|
:1009000010C1807F60E1680F04C09F5F807F692F06
|
||||||
|
:10091000682B633108F06D2D8DE091E00E94E60AAE
|
||||||
|
:100920004EC1199B4CC18E2D9F2D199917C10DC118
|
||||||
|
:1009300082958F7090E0019782959295907F98278D
|
||||||
|
:10094000807F9827682F696004C09150807F692F4D
|
||||||
|
:10095000682B611101C06C2D8DE091E00E94E60AC8
|
||||||
|
:100960002EC10536110534F06D2D82E090E00E9415
|
||||||
|
:10097000450102C00E94EB001A9B15C08E2D9F2DD1
|
||||||
|
:100980001A99F6C0FFC0807F60E1680F04C09F5FC6
|
||||||
|
:10099000807F692F682B6A3908F060E08DE091E074
|
||||||
|
:1009A0000E94EC0A0CC1199B0AC18E2D9F2D19992A
|
||||||
|
:1009B000FCC0F2C08823A1F082958F7090E001976F
|
||||||
|
:1009C00082959295907F9827807F9827682F6960FD
|
||||||
|
:1009D0000AC0882339F09150807F692F682B03C0AB
|
||||||
|
:1009E0006B2D01C06B2D8DE091E00E94EC0AE7C0F9
|
||||||
|
:1009F00088B1887F88B98FE99FE00197F1F700C03F
|
||||||
|
:100A00000000C730D1050CF0E6C05BCEC1E0D0E0FD
|
||||||
|
:100A100000E010E00F2EF8EEEF2EF02D0F2EF3E099
|
||||||
|
:100A2000FF2EF02D0F2EF2E1CF2EF02DDD24D394EA
|
||||||
|
:100A30000F2EF9E9BF2EF02D4BCE8DE091E00E94F4
|
||||||
|
:100A4000B40A982F9F70993009F091CE8CCEEFE9BF
|
||||||
|
:100A5000FFE03197F1F700C000000197009769F3BC
|
||||||
|
:100A60007FCE8DE091E00E94B40A982F9F7009F428
|
||||||
|
:100A70008FCE9CCEEFE9FFE03197F1F700C0000088
|
||||||
|
:100A80000197009771F381CE8DE091E00E94B80A42
|
||||||
|
:100A9000982F9F70993009F0AECEA9CEEFE9FFE014
|
||||||
|
:100AA0003197F1F700C000000197009769F39CCEE1
|
||||||
|
:100AB0008DE091E00E94B80A882309F4C6CEB0CE3A
|
||||||
|
:100AC000EFE9FFE03197F1F700C0000001970097D0
|
||||||
|
:100AD00079F3A3CE8DE091E00E94BC0A982F9F701D
|
||||||
|
:100AE000993009F0D0CECBCEEFE9FFE03197F1F7A6
|
||||||
|
:100AF00000C000000197009769F3BECE8DE091E041
|
||||||
|
:100B00000E94BC0A982F9F7009F4D0CEDCCEEFE98A
|
||||||
|
:100B1000FFE03197F1F700C000000197009771F3F3
|
||||||
|
:100B2000C2CE8DE091E00E94C00A982F9F7099304C
|
||||||
|
:100B300009F0EBCEE6CEEFE9FFE03197F1F700C028
|
||||||
|
:100B400000000197009769F3D9CE8DE091E00E94F3
|
||||||
|
:100B5000C00A982F9F7009F4EBCEF7CEEFE9FFE0C3
|
||||||
|
:100B60003197F1F700C000000197009771F3DDCED7
|
||||||
|
:100B7000EFE9FFE03197F1F700C00000019700971F
|
||||||
|
:100B800009F0FECE8DE091E00E94C40A982F9F707C
|
||||||
|
:100B9000993009F0FCCEF7CE8DE091E00E94C40AB6
|
||||||
|
:100BA000982F9F7009F406CF14CFEFE9FFE031973B
|
||||||
|
:100BB000F1F700C000000197009771F3F8CE88B1FB
|
||||||
|
:100BC000887F88B98FE99FE00197F1F700C00000A6
|
||||||
|
:100BD0000F5F1F4F78CDDF91CF911F910F91FF9045
|
||||||
|
:100BE000EF90DF90CF90BF900895CF92DF92EF9279
|
||||||
|
:100BF000FF920F931F93CF93DF93809102018F3C5D
|
||||||
|
:100C000009F0BDC0B1C00C2D1D2D813C49F50E94DD
|
||||||
|
:100C1000360B80930201882309F49DC016C00E9400
|
||||||
|
:100C2000360B809302010E949800C536D10514F05E
|
||||||
|
:100C3000CE2DDF2D8FE99FE00197F1F700C0000076
|
||||||
|
:100C4000219680910201882351F390E00E94600078
|
||||||
|
:100C5000682F8DE091E00E94C80A81EC0E942E0B63
|
||||||
|
:100C600080910201823C49F50E94360B809302017B
|
||||||
|
:100C7000882309F467C016C00E94360B80930201D6
|
||||||
|
:100C80000E949800C536D10514F0CE2DDF2D8FE9D6
|
||||||
|
:100C90009FE00197F1F700C00000219680910201CA
|
||||||
|
:100CA000882351F390E00E946000682F8DE091E06E
|
||||||
|
:100CB0000E94CE0A82EC0E942E0B80910201833C9E
|
||||||
|
:100CC00049F50E94360B80930201882391F116C0EA
|
||||||
|
:100CD0000E94360B809302010E949800C536D10510
|
||||||
|
:100CE00014F0CE2DDF2D8FE99FE00197F1F700C0C2
|
||||||
|
:100CF0000000219680910201882351F390E00E9428
|
||||||
|
:100D0000600040E0682F8DE091E00E94D40A83ECFF
|
||||||
|
:100D10000E942E0B80910201843C89F10F5F1F4FCE
|
||||||
|
:100D20000E94360B80930201053611050CF06BCF43
|
||||||
|
:100D30006CCF0E94360B809302010E949800CC2D4C
|
||||||
|
:100D4000DD2DD1CF0E94360B809302010E949800C6
|
||||||
|
:100D5000CC2DDD2D9CCF0E94360B809302010E948A
|
||||||
|
:100D60009800CC2DDD2D66CF0E94360B80930201BA
|
||||||
|
:100D700000E010E0C12CD12CEC2CFD2C46CFDF91F3
|
||||||
|
:100D8000CF911F910F91FF90EF90DF90CF9008953A
|
||||||
|
:100D90000F931F938DE091E00E941E0A0BE210E07A
|
||||||
|
:100DA00025E030E047E050E066E070E083E091E06D
|
||||||
|
:100DB0000E94DD061F910F9108950F931F93FC0170
|
||||||
|
:100DC000608371834283538324833583178306832F
|
||||||
|
:100DD000D8011197B187A0875C9181E090E0FC0178
|
||||||
|
:100DE00002C0EE0FFF1F2A95E2F79F01252BFC01A1
|
||||||
|
:100DF00002C0EE0FFF1F4A95E2F7AF01422B02C07F
|
||||||
|
:100E0000880F991F6A95E2F7842B8C931F910F919D
|
||||||
|
:100E100008950F931F93CF93DF93FC0180E090E040
|
||||||
|
:100E200021E030E000E810E070E041113DC0A68113
|
||||||
|
:100E3000B7815C91E901028002C0CC0FDD1F0A94EA
|
||||||
|
:100E4000E2F7C095C523CC93DB01082E02C0B5950F
|
||||||
|
:100E5000A7950A94E2F7A0FF0DC0A681B7815C9127
|
||||||
|
:100E6000E901008002C0CC0FDD1F0A94E2F7C52B18
|
||||||
|
:100E7000CC930DC0A681B7815C91E901008002C0CE
|
||||||
|
:100E8000CC0FDD1F0A94E2F7C095C523CC93A68151
|
||||||
|
:100E9000B7815C91E901028002C0CC0FDD1F0A948A
|
||||||
|
:100EA000E2F7C52BCC933EC0A681B7815C91E901E6
|
||||||
|
:100EB000028002C0CC0FDD1F0A94E2F7C095C52363
|
||||||
|
:100EC000CC93D801082E02C0B595A7950A94E2F7F5
|
||||||
|
:100ED000A623B723AB2B69F0A681B7815C91E9010A
|
||||||
|
:100EE000008002C0CC0FDD1F0A94E2F7C52BCC9323
|
||||||
|
:100EF0000DC0A681B7815C91E901008002C0CC0FD2
|
||||||
|
:100F0000DD1F0A94E2F7C095C523CC93A681B78173
|
||||||
|
:100F10005C91E901028002C0CC0FDD1F0A94E2F768
|
||||||
|
:100F2000C52BCC9301968830910509F07ECFDF91D7
|
||||||
|
:100F3000CF911F910F910895FC01A681B7814C912B
|
||||||
|
:100F400021E030E0C901048002C0880F991F0A9493
|
||||||
|
:100F5000E2F7842B8C9385E08A95F1F70000A68157
|
||||||
|
:100F6000B7814C91C901048002C0880F991F0A946F
|
||||||
|
:100F7000E2F7809584238C930895CF92DF92EF92CD
|
||||||
|
:100F8000FF920F931F93CF93DF93EC010E94F20A1D
|
||||||
|
:100F9000CC80DD80EE80FF808B010C191D091F8B3A
|
||||||
|
:100FA0000E8B043F114020F4CD28CE28CF2871F5B8
|
||||||
|
:100FB0002D981D8A0E94F20A0C811D812E813F818D
|
||||||
|
:100FC000AB01BC01401B510B620B730B4C835D8367
|
||||||
|
:100FD0006E837F830E94F20A688379838A839B836E
|
||||||
|
:100FE00081E04C815D816E817F81493E5340610586
|
||||||
|
:100FF000710508F480E0811103C08885882319F009
|
||||||
|
:1010000081E0888705C01A8A198A02C081E08D8B29
|
||||||
|
:10101000DF91CF911F910F91FF90EF90DF90CF90D4
|
||||||
|
:101020000895FC01238934892115310531F46623A3
|
||||||
|
:1010300009F4F4C040E050E03CC0A901C9010197A7
|
||||||
|
:10104000439708F4EDC02431310519F46111FCC057
|
||||||
|
:10105000E9C0C9014597079718F5662381F0C901D2
|
||||||
|
:10106000459741E050E0BA0102C0660F771F8A95AC
|
||||||
|
:10107000E2F7CB019385892B838781E0E0C0C9012A
|
||||||
|
:10108000459741E050E0BA0102C0660F771F8A958C
|
||||||
|
:10109000E2F7CB01809593858923838781E0CFC0D8
|
||||||
|
:1010A0002C31310531F4838580FFE0C06111D2C05D
|
||||||
|
:1010B000BBC0CA014D97069718F5662381F0C90198
|
||||||
|
:1010C0004D9741E050E0BA0102C0660F771F8A9544
|
||||||
|
:1010D000E2F7CB019485892B848781E0B0C0C901F8
|
||||||
|
:1010E0004D9741E050E0BA0102C0660F771F8A9524
|
||||||
|
:1010F000E2F7CB01809594858923848781E09FC0A6
|
||||||
|
:101100002332310581F4848580FF09C061110BC051
|
||||||
|
:101110008DC02332310539F4848580FD04C06623F7
|
||||||
|
:1011200009F49EC085C0CA018497069718F5662306
|
||||||
|
:1011300081F0C901849741E050E0BA0102C0660F16
|
||||||
|
:10114000771F8A95E2F7CB019585892B858781E00A
|
||||||
|
:1011500076C0C901849741E050E0BA0102C0660F31
|
||||||
|
:10116000771F8A95E2F7CB0180959585892385873E
|
||||||
|
:1011700081E065C0CA018A978330910508F45AC09E
|
||||||
|
:101180000397059718F5662381F0C9018D9741E013
|
||||||
|
:1011900050E0BA0102C0660F771F8A95E2F7CB01D3
|
||||||
|
:1011A0009785892B878781E04AC0C9018D9741E0E7
|
||||||
|
:1011B00050E0BA0102C0660F771F8A95E2F7CB01B3
|
||||||
|
:1011C000809597858923878781E039C042535109EB
|
||||||
|
:1011D0004830510588F5662381F0C901C29741E086
|
||||||
|
:1011E00050E0BA0102C0660F771F8A95E2F7CB0183
|
||||||
|
:1011F0009089892B808B81E022C0C901C29741E090
|
||||||
|
:1012000050E0BA0102C0660F771F8A95E2F7CB0162
|
||||||
|
:10121000809590898923808B81E011C080E00FC088
|
||||||
|
:1012200081E00DC080E00BC080E009C080E007C015
|
||||||
|
:1012300080E005C081E003C081E001C080E02F5F55
|
||||||
|
:101240003F4F348B238B0895C9014597079708F4C6
|
||||||
|
:1012500006CF0FC0C9014D97069708F42ECF59CF7E
|
||||||
|
:10126000CA018497069708F474CF84CF662391F35C
|
||||||
|
:10127000E5CFC9014D97069708F41FCF54CF8F9241
|
||||||
|
:101280009F92AF92BF92FF920F931F93CF93DF93E2
|
||||||
|
:10129000EC010E94F20A88809980AA80BB808B01B1
|
||||||
|
:1012A000081919091F8B0E8B0431110528F48928A0
|
||||||
|
:1012B0008A288B2809F056C02D9A1D8A0E94F20AAE
|
||||||
|
:1012C0006C837D838E839F830E94F20A088119813B
|
||||||
|
:1012D0002A813B81AB01BC01401B510B620B730B9C
|
||||||
|
:1012E000488359836A837B838885882379F189853C
|
||||||
|
:1012F0009A85CB977CF581E090E09A8B898BDB0116
|
||||||
|
:10130000CA0180559109A109B1098997A105B105C3
|
||||||
|
:1013100050F0445B51096109710949325105610579
|
||||||
|
:10132000710518F004C0F12C02C0FF24F3946F2D56
|
||||||
|
:10133000CE010E941108882319F01A861986188692
|
||||||
|
:1013400089859A8501969A8789870EC089859A85AD
|
||||||
|
:10135000CB9754F018861A86198682E090E09A8B13
|
||||||
|
:10136000898B02C081E08D8BDF91CF911F910F910E
|
||||||
|
:10137000FF90BF90AF909F908F9008951F920F9213
|
||||||
|
:101380000FB60F9211242F933F934F935F936F9358
|
||||||
|
:101390007F938F939F93AF93BF93EF93FF93F894B3
|
||||||
|
:1013A0004A9B05C08FE091E00E943F0904C08FE096
|
||||||
|
:1013B00091E00E94BD077894FF91EF91BF91AF91AA
|
||||||
|
:1013C0009F918F917F916F915F914F913F912F915D
|
||||||
|
:1013D0000F900FBE0F901F90189510920F01109252
|
||||||
|
:1013E000100110921101109212011092130110922B
|
||||||
|
:1013F000140110921501109216011092170110920B
|
||||||
|
:1014000019011092180110921A0110921B011092EA
|
||||||
|
:101410001C0110921D0110921E0110921F011092CA
|
||||||
|
:1014200021011092200110922301109222011092AA
|
||||||
|
:10143000240110922601109225010895FC011182C9
|
||||||
|
:1014400008958CE58093B800E9EBF0E080818C7F13
|
||||||
|
:101450008083ECEBF0E084E0808384EA8083808109
|
||||||
|
:101460008823ECF780ED8093BB0084E88093BC0078
|
||||||
|
:10147000ECEBF0E080818823ECF76093BB0084E81C
|
||||||
|
:101480008093BC00ECEBF0E080818823ECF7409384
|
||||||
|
:10149000BB0084E88093BC00ECEBF0E08081882303
|
||||||
|
:1014A000ECF784E98093BC00ECEBF0E0808184FDF4
|
||||||
|
:1014B000FDCFECEBF0E080818B7F808308958CE59D
|
||||||
|
:1014C0008093B800E9EBF0E080818C7F8083ECEBC7
|
||||||
|
:1014D000F0E084E0808384EA808380818823ECF7D5
|
||||||
|
:1014E00080ED8093BB0084E88093BC00ECEBF0E0DF
|
||||||
|
:1014F00080818823ECF76093BB0084E88093BC0074
|
||||||
|
:10150000ECEBF0E080818823ECF784EA8093BC0068
|
||||||
|
:10151000ECEBF0E080818823ECF781ED8093BB0059
|
||||||
|
:1015200084E88093BC00ECEBF0E080818823ECF74A
|
||||||
|
:1015300084E88093BC00ECEBF0E080818823ECF73A
|
||||||
|
:101540008091BB0094E99093BC00ECEBF0E09081BB
|
||||||
|
:1015500094FDFDCFECEBF0E090819B7F90830895AC
|
||||||
|
:1015600060E00E945F0A089561E00E945F0A0895AA
|
||||||
|
:1015700062E00E945F0A089564E00E945F0A089595
|
||||||
|
:1015800065E00E945F0A089566E00E945F0A089580
|
||||||
|
:10159000462F60E070E00E94210A0895462F61E026
|
||||||
|
:1015A00070E00E94210A0895442319F0462F4064F8
|
||||||
|
:1015B00002C0462F4F7B62E070E00E94210A08952E
|
||||||
|
:1015C000462F64E070E00E94210A0895462F65E0EE
|
||||||
|
:1015D00070E00E94210A0895462F66E070E00E94A4
|
||||||
|
:1015E000210A0895F8946091270170912801809153
|
||||||
|
:1015F000290190912A01789408951F920F920FB6B5
|
||||||
|
:101600000F9211248F939F93AF93BF9380912701E3
|
||||||
|
:1016100090912801A0912901B0912A010196A11D64
|
||||||
|
:10162000B11D8093270190932801A0932901B093C5
|
||||||
|
:101630002A01BF91AF919F918F910F900FBE0F9094
|
||||||
|
:101640001F9018951092C50087E68093C40088E12A
|
||||||
|
:101650008093C10086E08093C2000895E0ECF0E042
|
||||||
|
:10166000908195FFFDCF8093C60008958091C000C2
|
||||||
|
:1016700088231CF48091C600089580E008950E949C
|
||||||
|
:1016800077000E943E010E944B030E94D9020E94F3
|
||||||
|
:10169000F505F7CFEE0FFF1F0590F491E02D0994AB
|
||||||
|
:0416A000F894FFCFEC
|
||||||
|
:00000001FF
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,844 @@
|
||||||
|
Archive member included because of file (symbol)
|
||||||
|
|
||||||
|
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_exit.o)
|
||||||
|
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5/crtm328p.o (exit)
|
||||||
|
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_copy_data.o)
|
||||||
|
lib/LCD.o (__do_copy_data)
|
||||||
|
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_clear_bss.o)
|
||||||
|
fonction.o (__do_clear_bss)
|
||||||
|
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_ctors.o)
|
||||||
|
fonction.o (__do_global_ctors)
|
||||||
|
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_tablejump.o)
|
||||||
|
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_ctors.o) (__tablejump__)
|
||||||
|
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(sprintf.o)
|
||||||
|
lib/LCD.o (sprintf)
|
||||||
|
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(vfprintf_std.o)
|
||||||
|
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(sprintf.o) (vfprintf)
|
||||||
|
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(strnlen_P.o)
|
||||||
|
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(vfprintf_std.o) (strnlen_P)
|
||||||
|
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(strnlen.o)
|
||||||
|
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(vfprintf_std.o) (strnlen)
|
||||||
|
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(fputc.o)
|
||||||
|
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(vfprintf_std.o) (fputc)
|
||||||
|
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(ultoa_invert.o)
|
||||||
|
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(vfprintf_std.o) (__ultoa_invert)
|
||||||
|
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_prologue.o)
|
||||||
|
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(sprintf.o) (__prologue_saves__)
|
||||||
|
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_epilogue.o)
|
||||||
|
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(sprintf.o) (__epilogue_restores__)
|
||||||
|
|
||||||
|
Discarded input sections
|
||||||
|
|
||||||
|
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5/crtm328p.o
|
||||||
|
.text 0x00000000 0x0 fonction.o
|
||||||
|
.bss 0x00000000 0x0 fonction.o
|
||||||
|
.text._Z13init_interuptv
|
||||||
|
0x00000000 0x18 fonction.o
|
||||||
|
.text._Z18affichage_shutdwonv
|
||||||
|
0x00000000 0x2e fonction.o
|
||||||
|
.bss.abc 0x00000000 0x2 fonction.o
|
||||||
|
.bss.bcm_blue 0x00000000 0x2 fonction.o
|
||||||
|
.bss.bcm_green
|
||||||
|
0x00000000 0x2 fonction.o
|
||||||
|
.bss.bcm_red 0x00000000 0x2 fonction.o
|
||||||
|
.text 0x00000000 0x0 lib/LCD.o
|
||||||
|
.bss 0x00000000 0x0 lib/LCD.o
|
||||||
|
.text._ZN7PCF85744sendEhh
|
||||||
|
0x00000000 0x86 lib/LCD.o
|
||||||
|
.text._ZN3LCD15check_busy_flagEv
|
||||||
|
0x00000000 0x14 lib/LCD.o
|
||||||
|
.text._ZN3LCD4sendEhb
|
||||||
|
0x00000000 0x5a lib/LCD.o
|
||||||
|
.text._ZN3LCD12display_initEv
|
||||||
|
0x00000000 0x6e lib/LCD.o
|
||||||
|
.text._ZN3LCD10send_leterEh
|
||||||
|
0x00000000 0x2c lib/LCD.o
|
||||||
|
.text._ZN3LCD5clearEv
|
||||||
|
0x00000000 0x32 lib/LCD.o
|
||||||
|
.text._ZN3LCD10set_cursorEii
|
||||||
|
0x00000000 0x48 lib/LCD.o
|
||||||
|
.text._ZN3LCD10print_textEPc
|
||||||
|
0x00000000 0x50 lib/LCD.o
|
||||||
|
.rodata.str1.1
|
||||||
|
0x00000000 0x3 lib/LCD.o
|
||||||
|
.text._ZN3LCD12print_numberEi
|
||||||
|
0x00000000 0x6a lib/LCD.o
|
||||||
|
.text 0x00000000 0x0 lib/hc74595.o
|
||||||
|
.bss 0x00000000 0x0 lib/hc74595.o
|
||||||
|
.text 0x00000000 0x0 lib/DCF77.o
|
||||||
|
.bss 0x00000000 0x0 lib/DCF77.o
|
||||||
|
.text._ZN5dcf7713start_captureEv
|
||||||
|
0x00000000 0x20 lib/DCF77.o
|
||||||
|
.text._ZN5dcf7712stop_captureEv
|
||||||
|
0x00000000 0xe lib/DCF77.o
|
||||||
|
.text._ZN5dcf776statusEv
|
||||||
|
0x00000000 0x8 lib/DCF77.o
|
||||||
|
.text._ZN5dcf777minutesEv
|
||||||
|
0x00000000 0x6 lib/DCF77.o
|
||||||
|
.text._ZN5dcf775heureEv
|
||||||
|
0x00000000 0x6 lib/DCF77.o
|
||||||
|
.text._ZN5dcf775monthEv
|
||||||
|
0x00000000 0x6 lib/DCF77.o
|
||||||
|
.text._ZN5dcf779day_monthEv
|
||||||
|
0x00000000 0x6 lib/DCF77.o
|
||||||
|
.text._ZN5dcf774yearEv
|
||||||
|
0x00000000 0x6 lib/DCF77.o
|
||||||
|
.bss.lcd1 0x00000000 0x1 lib/DCF77.o
|
||||||
|
.text 0x00000000 0x0 lib/DS1307.o
|
||||||
|
.bss 0x00000000 0x0 lib/DS1307.o
|
||||||
|
.text 0x00000000 0x0 lib/timer.o
|
||||||
|
.bss 0x00000000 0x0 lib/timer.o
|
||||||
|
.text._Z11timer1_initv
|
||||||
|
0x00000000 0x24 lib/timer.o
|
||||||
|
.text._Z16interup_1hz_initv
|
||||||
|
0x00000000 0x10 lib/timer.o
|
||||||
|
.text 0x00000000 0x0 lib/UART.o
|
||||||
|
.bss 0x00000000 0x0 lib/UART.o
|
||||||
|
.text 0x00000000 0x0 Nixie clock.o
|
||||||
|
.bss 0x00000000 0x0 Nixie clock.o
|
||||||
|
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_exit.o)
|
||||||
|
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_exit.o)
|
||||||
|
.text.libgcc.mul
|
||||||
|
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_exit.o)
|
||||||
|
.text.libgcc.div
|
||||||
|
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_exit.o)
|
||||||
|
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_exit.o)
|
||||||
|
.text.libgcc.prologue
|
||||||
|
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_exit.o)
|
||||||
|
.text.libgcc.builtins
|
||||||
|
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_exit.o)
|
||||||
|
.text.libgcc.fmul
|
||||||
|
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_exit.o)
|
||||||
|
.text.libgcc.fixed
|
||||||
|
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_exit.o)
|
||||||
|
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_copy_data.o)
|
||||||
|
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_copy_data.o)
|
||||||
|
.text.libgcc.mul
|
||||||
|
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_copy_data.o)
|
||||||
|
.text.libgcc.div
|
||||||
|
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_copy_data.o)
|
||||||
|
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_copy_data.o)
|
||||||
|
.text.libgcc.prologue
|
||||||
|
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_copy_data.o)
|
||||||
|
.text.libgcc.builtins
|
||||||
|
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_copy_data.o)
|
||||||
|
.text.libgcc.fmul
|
||||||
|
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_copy_data.o)
|
||||||
|
.text.libgcc.fixed
|
||||||
|
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_copy_data.o)
|
||||||
|
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_clear_bss.o)
|
||||||
|
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_clear_bss.o)
|
||||||
|
.text.libgcc.mul
|
||||||
|
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_clear_bss.o)
|
||||||
|
.text.libgcc.div
|
||||||
|
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_clear_bss.o)
|
||||||
|
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_clear_bss.o)
|
||||||
|
.text.libgcc.prologue
|
||||||
|
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_clear_bss.o)
|
||||||
|
.text.libgcc.builtins
|
||||||
|
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_clear_bss.o)
|
||||||
|
.text.libgcc.fmul
|
||||||
|
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_clear_bss.o)
|
||||||
|
.text.libgcc.fixed
|
||||||
|
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_clear_bss.o)
|
||||||
|
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_ctors.o)
|
||||||
|
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_ctors.o)
|
||||||
|
.text.libgcc.mul
|
||||||
|
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_ctors.o)
|
||||||
|
.text.libgcc.div
|
||||||
|
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_ctors.o)
|
||||||
|
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_ctors.o)
|
||||||
|
.text.libgcc.prologue
|
||||||
|
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_ctors.o)
|
||||||
|
.text.libgcc.builtins
|
||||||
|
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_ctors.o)
|
||||||
|
.text.libgcc.fmul
|
||||||
|
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_ctors.o)
|
||||||
|
.text.libgcc.fixed
|
||||||
|
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_ctors.o)
|
||||||
|
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_tablejump.o)
|
||||||
|
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_tablejump.o)
|
||||||
|
.text.libgcc.mul
|
||||||
|
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_tablejump.o)
|
||||||
|
.text.libgcc.div
|
||||||
|
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_tablejump.o)
|
||||||
|
.text.libgcc.prologue
|
||||||
|
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_tablejump.o)
|
||||||
|
.text.libgcc.builtins
|
||||||
|
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_tablejump.o)
|
||||||
|
.text.libgcc.fmul
|
||||||
|
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_tablejump.o)
|
||||||
|
.text.libgcc.fixed
|
||||||
|
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_tablejump.o)
|
||||||
|
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(sprintf.o)
|
||||||
|
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(sprintf.o)
|
||||||
|
.text.avr-libc
|
||||||
|
0x00000000 0x44 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(sprintf.o)
|
||||||
|
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(vfprintf_std.o)
|
||||||
|
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(vfprintf_std.o)
|
||||||
|
.text.avr-libc
|
||||||
|
0x00000000 0x3a4 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(vfprintf_std.o)
|
||||||
|
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(strnlen_P.o)
|
||||||
|
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(strnlen_P.o)
|
||||||
|
.text.avr-libc
|
||||||
|
0x00000000 0x16 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(strnlen_P.o)
|
||||||
|
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(strnlen.o)
|
||||||
|
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(strnlen.o)
|
||||||
|
.text.avr-libc
|
||||||
|
0x00000000 0x16 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(strnlen.o)
|
||||||
|
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(fputc.o)
|
||||||
|
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(fputc.o)
|
||||||
|
.text.avr-libc
|
||||||
|
0x00000000 0x64 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(fputc.o)
|
||||||
|
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(ultoa_invert.o)
|
||||||
|
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(ultoa_invert.o)
|
||||||
|
.text.avr-libc
|
||||||
|
0x00000000 0xbc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(ultoa_invert.o)
|
||||||
|
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_prologue.o)
|
||||||
|
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_prologue.o)
|
||||||
|
.text.libgcc.mul
|
||||||
|
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_prologue.o)
|
||||||
|
.text.libgcc.div
|
||||||
|
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_prologue.o)
|
||||||
|
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_prologue.o)
|
||||||
|
.text.libgcc.prologue
|
||||||
|
0x00000000 0x38 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_prologue.o)
|
||||||
|
.text.libgcc.builtins
|
||||||
|
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_prologue.o)
|
||||||
|
.text.libgcc.fmul
|
||||||
|
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_prologue.o)
|
||||||
|
.text.libgcc.fixed
|
||||||
|
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_prologue.o)
|
||||||
|
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_epilogue.o)
|
||||||
|
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_epilogue.o)
|
||||||
|
.text.libgcc.mul
|
||||||
|
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_epilogue.o)
|
||||||
|
.text.libgcc.div
|
||||||
|
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_epilogue.o)
|
||||||
|
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_epilogue.o)
|
||||||
|
.text.libgcc.prologue
|
||||||
|
0x00000000 0x36 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_epilogue.o)
|
||||||
|
.text.libgcc.builtins
|
||||||
|
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_epilogue.o)
|
||||||
|
.text.libgcc.fmul
|
||||||
|
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_epilogue.o)
|
||||||
|
.text.libgcc.fixed
|
||||||
|
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_epilogue.o)
|
||||||
|
|
||||||
|
Memory Configuration
|
||||||
|
|
||||||
|
Name Origin Length Attributes
|
||||||
|
text 0x00000000 0x00020000 xr
|
||||||
|
data 0x00800060 0x0000ffa0 rw !x
|
||||||
|
eeprom 0x00810000 0x00010000 rw !x
|
||||||
|
fuse 0x00820000 0x00000400 rw !x
|
||||||
|
lock 0x00830000 0x00000400 rw !x
|
||||||
|
signature 0x00840000 0x00000400 rw !x
|
||||||
|
user_signatures 0x00850000 0x00000400 rw !x
|
||||||
|
*default* 0x00000000 0xffffffff
|
||||||
|
|
||||||
|
Linker script and memory map
|
||||||
|
|
||||||
|
Address of section .data set to 0x800100
|
||||||
|
LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5/crtm328p.o
|
||||||
|
LOAD fonction.o
|
||||||
|
LOAD lib/LCD.o
|
||||||
|
LOAD lib/hc74595.o
|
||||||
|
LOAD lib/DCF77.o
|
||||||
|
LOAD lib/DS1307.o
|
||||||
|
LOAD lib/timer.o
|
||||||
|
LOAD lib/UART.o
|
||||||
|
LOAD Nixie clock.o
|
||||||
|
START GROUP
|
||||||
|
LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a
|
||||||
|
END GROUP
|
||||||
|
LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a
|
||||||
|
LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a
|
||||||
|
START GROUP
|
||||||
|
LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a
|
||||||
|
LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libm.a
|
||||||
|
LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a
|
||||||
|
END GROUP
|
||||||
|
|
||||||
|
.hash
|
||||||
|
*(.hash)
|
||||||
|
|
||||||
|
.dynsym
|
||||||
|
*(.dynsym)
|
||||||
|
|
||||||
|
.dynstr
|
||||||
|
*(.dynstr)
|
||||||
|
|
||||||
|
.gnu.version
|
||||||
|
*(.gnu.version)
|
||||||
|
|
||||||
|
.gnu.version_d
|
||||||
|
*(.gnu.version_d)
|
||||||
|
|
||||||
|
.gnu.version_r
|
||||||
|
*(.gnu.version_r)
|
||||||
|
|
||||||
|
.rel.init
|
||||||
|
*(.rel.init)
|
||||||
|
|
||||||
|
.rela.init
|
||||||
|
*(.rela.init)
|
||||||
|
|
||||||
|
.rel.text
|
||||||
|
*(.rel.text)
|
||||||
|
*(.rel.text.*)
|
||||||
|
*(.rel.gnu.linkonce.t*)
|
||||||
|
|
||||||
|
.rela.text
|
||||||
|
*(.rela.text)
|
||||||
|
*(.rela.text.*)
|
||||||
|
*(.rela.gnu.linkonce.t*)
|
||||||
|
|
||||||
|
.rel.fini
|
||||||
|
*(.rel.fini)
|
||||||
|
|
||||||
|
.rela.fini
|
||||||
|
*(.rela.fini)
|
||||||
|
|
||||||
|
.rel.rodata
|
||||||
|
*(.rel.rodata)
|
||||||
|
*(.rel.rodata.*)
|
||||||
|
*(.rel.gnu.linkonce.r*)
|
||||||
|
|
||||||
|
.rela.rodata
|
||||||
|
*(.rela.rodata)
|
||||||
|
*(.rela.rodata.*)
|
||||||
|
*(.rela.gnu.linkonce.r*)
|
||||||
|
|
||||||
|
.rel.data
|
||||||
|
*(.rel.data)
|
||||||
|
*(.rel.data.*)
|
||||||
|
*(.rel.gnu.linkonce.d*)
|
||||||
|
|
||||||
|
.rela.data
|
||||||
|
*(.rela.data)
|
||||||
|
*(.rela.data.*)
|
||||||
|
*(.rela.gnu.linkonce.d*)
|
||||||
|
|
||||||
|
.rel.ctors
|
||||||
|
*(.rel.ctors)
|
||||||
|
|
||||||
|
.rela.ctors
|
||||||
|
*(.rela.ctors)
|
||||||
|
|
||||||
|
.rel.dtors
|
||||||
|
*(.rel.dtors)
|
||||||
|
|
||||||
|
.rela.dtors
|
||||||
|
*(.rela.dtors)
|
||||||
|
|
||||||
|
.rel.got
|
||||||
|
*(.rel.got)
|
||||||
|
|
||||||
|
.rela.got
|
||||||
|
*(.rela.got)
|
||||||
|
|
||||||
|
.rel.bss
|
||||||
|
*(.rel.bss)
|
||||||
|
|
||||||
|
.rela.bss
|
||||||
|
*(.rela.bss)
|
||||||
|
|
||||||
|
.rel.plt
|
||||||
|
*(.rel.plt)
|
||||||
|
|
||||||
|
.rela.plt
|
||||||
|
*(.rela.plt)
|
||||||
|
|
||||||
|
.text 0x00000000 0x16a4
|
||||||
|
*(.vectors)
|
||||||
|
.vectors 0x00000000 0x68 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5/crtm328p.o
|
||||||
|
0x00000000 __vector_default
|
||||||
|
0x00000000 __vectors
|
||||||
|
*(.vectors)
|
||||||
|
*(.progmem.gcc*)
|
||||||
|
0x00000068 . = ALIGN (0x2)
|
||||||
|
0x00000068 __trampolines_start = .
|
||||||
|
*(.trampolines)
|
||||||
|
.trampolines 0x00000068 0x0 linker stubs
|
||||||
|
*(.trampolines*)
|
||||||
|
0x00000068 __trampolines_end = .
|
||||||
|
*(.progmem*)
|
||||||
|
0x00000068 . = ALIGN (0x2)
|
||||||
|
*(.jumptables)
|
||||||
|
*(.jumptables*)
|
||||||
|
*(.lowtext)
|
||||||
|
*(.lowtext*)
|
||||||
|
0x00000068 __ctors_start = .
|
||||||
|
*(.ctors)
|
||||||
|
.ctors 0x00000068 0x2 fonction.o
|
||||||
|
.ctors 0x0000006a 0x2 lib/DCF77.o
|
||||||
|
0x0000006c __ctors_end = .
|
||||||
|
0x0000006c __dtors_start = .
|
||||||
|
*(.dtors)
|
||||||
|
0x0000006c __dtors_end = .
|
||||||
|
SORT(*)(.ctors)
|
||||||
|
SORT(*)(.dtors)
|
||||||
|
*(.init0)
|
||||||
|
.init0 0x0000006c 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5/crtm328p.o
|
||||||
|
0x0000006c __init
|
||||||
|
*(.init0)
|
||||||
|
*(.init1)
|
||||||
|
*(.init1)
|
||||||
|
*(.init2)
|
||||||
|
.init2 0x0000006c 0xc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5/crtm328p.o
|
||||||
|
*(.init2)
|
||||||
|
*(.init3)
|
||||||
|
*(.init3)
|
||||||
|
*(.init4)
|
||||||
|
.init4 0x00000078 0x16 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_copy_data.o)
|
||||||
|
0x00000078 __do_copy_data
|
||||||
|
.init4 0x0000008e 0x10 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_clear_bss.o)
|
||||||
|
0x0000008e __do_clear_bss
|
||||||
|
*(.init4)
|
||||||
|
*(.init5)
|
||||||
|
*(.init5)
|
||||||
|
*(.init6)
|
||||||
|
.init6 0x0000009e 0x16 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_ctors.o)
|
||||||
|
0x0000009e __do_global_ctors
|
||||||
|
*(.init6)
|
||||||
|
*(.init7)
|
||||||
|
*(.init7)
|
||||||
|
*(.init8)
|
||||||
|
*(.init8)
|
||||||
|
*(.init9)
|
||||||
|
.init9 0x000000b4 0x8 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5/crtm328p.o
|
||||||
|
*(.init9)
|
||||||
|
*(.text)
|
||||||
|
.text 0x000000bc 0x4 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5/crtm328p.o
|
||||||
|
0x000000bc __vector_22
|
||||||
|
0x000000bc __vector_24
|
||||||
|
0x000000bc __vector_12
|
||||||
|
0x000000bc __bad_interrupt
|
||||||
|
0x000000bc __vector_6
|
||||||
|
0x000000bc __vector_3
|
||||||
|
0x000000bc __vector_23
|
||||||
|
0x000000bc __vector_25
|
||||||
|
0x000000bc __vector_13
|
||||||
|
0x000000bc __vector_17
|
||||||
|
0x000000bc __vector_19
|
||||||
|
0x000000bc __vector_7
|
||||||
|
0x000000bc __vector_5
|
||||||
|
0x000000bc __vector_4
|
||||||
|
0x000000bc __vector_9
|
||||||
|
0x000000bc __vector_2
|
||||||
|
0x000000bc __vector_21
|
||||||
|
0x000000bc __vector_15
|
||||||
|
0x000000bc __vector_8
|
||||||
|
0x000000bc __vector_14
|
||||||
|
0x000000bc __vector_10
|
||||||
|
0x000000bc __vector_16
|
||||||
|
0x000000bc __vector_18
|
||||||
|
0x000000bc __vector_20
|
||||||
|
0x000000c0 . = ALIGN (0x2)
|
||||||
|
*(.text.*)
|
||||||
|
.text._Z10int_to_bcdi
|
||||||
|
0x000000c0 0x2e fonction.o
|
||||||
|
0x000000c0 _Z10int_to_bcdi
|
||||||
|
.text._Z10setup_pinsv
|
||||||
|
0x000000ee 0x42 fonction.o
|
||||||
|
0x000000ee _Z10setup_pinsv
|
||||||
|
.text._Z14affichage_heurv
|
||||||
|
0x00000130 0xa6 fonction.o
|
||||||
|
0x00000130 _Z14affichage_heurv
|
||||||
|
.text._Z14affichage_datev
|
||||||
|
0x000001d6 0xa6 fonction.o
|
||||||
|
0x000001d6 _Z14affichage_datev
|
||||||
|
.text._Z17routine_affichagev
|
||||||
|
0x0000027c 0xe fonction.o
|
||||||
|
0x0000027c _Z17routine_affichagev
|
||||||
|
.text._Z12clignotementib
|
||||||
|
0x0000028a 0x328 fonction.o
|
||||||
|
0x0000028a _Z12clignotementib
|
||||||
|
.text._Z7couleurv
|
||||||
|
0x000005b2 0xe4 fonction.o
|
||||||
|
0x000005b2 _Z7couleurv
|
||||||
|
.text._Z6boutonv
|
||||||
|
0x00000696 0x554 fonction.o
|
||||||
|
0x00000696 _Z6boutonv
|
||||||
|
.text._Z11uart_ds1307v
|
||||||
|
0x00000bea 0x1a6 fonction.o
|
||||||
|
0x00000bea _Z11uart_ds1307v
|
||||||
|
.text._GLOBAL__sub_I_rtc
|
||||||
|
0x00000d90 0x2a fonction.o
|
||||||
|
.text._ZN7hc74595C2EiiiPVh
|
||||||
|
0x00000dba 0x58 lib/hc74595.o
|
||||||
|
0x00000dba _ZN7hc74595C2EiiiPVh
|
||||||
|
0x00000dba _ZN7hc74595C1EiiiPVh
|
||||||
|
.text._ZN7hc745954sendEhb
|
||||||
|
0x00000e12 0x126 lib/hc74595.o
|
||||||
|
0x00000e12 _ZN7hc745954sendEhb
|
||||||
|
.text._ZN7hc745957confirmEv
|
||||||
|
0x00000f38 0x42 lib/hc74595.o
|
||||||
|
0x00000f38 _ZN7hc745957confirmEv
|
||||||
|
.text._ZN5dcf772loEv
|
||||||
|
0x00000f7a 0xa8 lib/DCF77.o
|
||||||
|
0x00000f7a _ZN5dcf772loEv
|
||||||
|
.text._ZN5dcf776decodeEh
|
||||||
|
0x00001022 0x25c lib/DCF77.o
|
||||||
|
0x00001022 _ZN5dcf776decodeEh
|
||||||
|
.text._ZN5dcf772hiEv
|
||||||
|
0x0000127e 0xfe lib/DCF77.o
|
||||||
|
0x0000127e _ZN5dcf772hiEv
|
||||||
|
.text.__vector_1
|
||||||
|
0x0000137c 0x5e lib/DCF77.o
|
||||||
|
0x0000137c __vector_1
|
||||||
|
.text._GLOBAL__sub_I_atc_
|
||||||
|
0x000013da 0x62 lib/DCF77.o
|
||||||
|
.text._ZN6ds1307C2Ev
|
||||||
|
0x0000143c 0x6 lib/DS1307.o
|
||||||
|
0x0000143c _ZN6ds1307C2Ev
|
||||||
|
0x0000143c _ZN6ds1307C1Ev
|
||||||
|
.text._ZN6ds13075writeEih
|
||||||
|
0x00001442 0x7c lib/DS1307.o
|
||||||
|
0x00001442 _ZN6ds13075writeEih
|
||||||
|
.text._ZN6ds13074readEh
|
||||||
|
0x000014be 0xa2 lib/DS1307.o
|
||||||
|
0x000014be _ZN6ds13074readEh
|
||||||
|
.text._ZN6ds13079r_secondeEv
|
||||||
|
0x00001560 0x8 lib/DS1307.o
|
||||||
|
0x00001560 _ZN6ds13079r_secondeEv
|
||||||
|
.text._ZN6ds13078r_minuteEv
|
||||||
|
0x00001568 0x8 lib/DS1307.o
|
||||||
|
0x00001568 _ZN6ds13078r_minuteEv
|
||||||
|
.text._ZN6ds13076r_heurEv
|
||||||
|
0x00001570 0x8 lib/DS1307.o
|
||||||
|
0x00001570 _ZN6ds13076r_heurEv
|
||||||
|
.text._ZN6ds13076r_jourEv
|
||||||
|
0x00001578 0x8 lib/DS1307.o
|
||||||
|
0x00001578 _ZN6ds13076r_jourEv
|
||||||
|
.text._ZN6ds13075r_moiEv
|
||||||
|
0x00001580 0x8 lib/DS1307.o
|
||||||
|
0x00001580 _ZN6ds13075r_moiEv
|
||||||
|
.text._ZN6ds13076r_yearEv
|
||||||
|
0x00001588 0x8 lib/DS1307.o
|
||||||
|
0x00001588 _ZN6ds13076r_yearEv
|
||||||
|
.text._ZN6ds13079w_secondeEh
|
||||||
|
0x00001590 0xc lib/DS1307.o
|
||||||
|
0x00001590 _ZN6ds13079w_secondeEh
|
||||||
|
.text._ZN6ds13078w_minuteEh
|
||||||
|
0x0000159c 0xc lib/DS1307.o
|
||||||
|
0x0000159c _ZN6ds13078w_minuteEh
|
||||||
|
.text._ZN6ds13076w_heurEhh
|
||||||
|
0x000015a8 0x18 lib/DS1307.o
|
||||||
|
0x000015a8 _ZN6ds13076w_heurEhh
|
||||||
|
.text._ZN6ds13076w_dateEh
|
||||||
|
0x000015c0 0xc lib/DS1307.o
|
||||||
|
0x000015c0 _ZN6ds13076w_dateEh
|
||||||
|
.text._ZN6ds13075w_moiEh
|
||||||
|
0x000015cc 0xc lib/DS1307.o
|
||||||
|
0x000015cc _ZN6ds13075w_moiEh
|
||||||
|
.text._ZN6ds13076w_yearEh
|
||||||
|
0x000015d8 0xc lib/DS1307.o
|
||||||
|
0x000015d8 _ZN6ds13076w_yearEh
|
||||||
|
.text._Z6millisv
|
||||||
|
0x000015e4 0x16 lib/timer.o
|
||||||
|
0x000015e4 _Z6millisv
|
||||||
|
.text.__vector_11
|
||||||
|
0x000015fa 0x4a lib/timer.o
|
||||||
|
0x000015fa __vector_11
|
||||||
|
.text._Z9USART_iniv
|
||||||
|
0x00001644 0x18 lib/UART.o
|
||||||
|
0x00001644 _Z9USART_iniv
|
||||||
|
.text._Z14USART_Transmith
|
||||||
|
0x0000165c 0x10 lib/UART.o
|
||||||
|
0x0000165c _Z14USART_Transmith
|
||||||
|
.text._Z13USART_Receivev
|
||||||
|
0x0000166c 0x12 lib/UART.o
|
||||||
|
0x0000166c _Z13USART_Receivev
|
||||||
|
.text.main 0x0000167e 0x16 Nixie clock.o
|
||||||
|
0x0000167e main
|
||||||
|
.text.libgcc 0x00001694 0xc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_tablejump.o)
|
||||||
|
0x00001694 __tablejump2__
|
||||||
|
0x00001698 __tablejump__
|
||||||
|
0x000016a0 . = ALIGN (0x2)
|
||||||
|
*(.fini9)
|
||||||
|
.fini9 0x000016a0 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_exit.o)
|
||||||
|
0x000016a0 _exit
|
||||||
|
0x000016a0 exit
|
||||||
|
*(.fini9)
|
||||||
|
*(.fini8)
|
||||||
|
*(.fini8)
|
||||||
|
*(.fini7)
|
||||||
|
*(.fini7)
|
||||||
|
*(.fini6)
|
||||||
|
*(.fini6)
|
||||||
|
*(.fini5)
|
||||||
|
*(.fini5)
|
||||||
|
*(.fini4)
|
||||||
|
*(.fini4)
|
||||||
|
*(.fini3)
|
||||||
|
*(.fini3)
|
||||||
|
*(.fini2)
|
||||||
|
*(.fini2)
|
||||||
|
*(.fini1)
|
||||||
|
*(.fini1)
|
||||||
|
*(.fini0)
|
||||||
|
.fini0 0x000016a0 0x4 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_exit.o)
|
||||||
|
*(.fini0)
|
||||||
|
0x000016a4 _etext = .
|
||||||
|
|
||||||
|
.data 0x00800100 0x0 load address 0x000016a4
|
||||||
|
0x00800100 PROVIDE (__data_start, .)
|
||||||
|
*(.data)
|
||||||
|
.data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5/crtm328p.o
|
||||||
|
.data 0x00800100 0x0 fonction.o
|
||||||
|
.data 0x00800100 0x0 lib/LCD.o
|
||||||
|
.data 0x00800100 0x0 lib/hc74595.o
|
||||||
|
.data 0x00800100 0x0 lib/DCF77.o
|
||||||
|
.data 0x00800100 0x0 lib/DS1307.o
|
||||||
|
.data 0x00800100 0x0 lib/timer.o
|
||||||
|
.data 0x00800100 0x0 lib/UART.o
|
||||||
|
.data 0x00800100 0x0 Nixie clock.o
|
||||||
|
.data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_exit.o)
|
||||||
|
.data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_copy_data.o)
|
||||||
|
.data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_clear_bss.o)
|
||||||
|
.data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_ctors.o)
|
||||||
|
.data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_tablejump.o)
|
||||||
|
.data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(sprintf.o)
|
||||||
|
.data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(vfprintf_std.o)
|
||||||
|
.data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(strnlen_P.o)
|
||||||
|
.data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(strnlen.o)
|
||||||
|
.data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(fputc.o)
|
||||||
|
.data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(ultoa_invert.o)
|
||||||
|
.data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_prologue.o)
|
||||||
|
.data 0x00800100 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr5\libgcc.a(_epilogue.o)
|
||||||
|
*(.data*)
|
||||||
|
*(.rodata)
|
||||||
|
*(.rodata*)
|
||||||
|
*(.gnu.linkonce.d*)
|
||||||
|
0x00800100 . = ALIGN (0x2)
|
||||||
|
0x00800100 _edata = .
|
||||||
|
0x00800100 PROVIDE (__data_end, .)
|
||||||
|
|
||||||
|
.bss 0x00800100 0x2b
|
||||||
|
0x00800100 PROVIDE (__bss_start, .)
|
||||||
|
*(.bss)
|
||||||
|
*(.bss*)
|
||||||
|
.bss.bcm_rgb_actif
|
||||||
|
0x00800100 0x2 fonction.o
|
||||||
|
0x00800100 bcm_rgb_actif
|
||||||
|
.bss.usart 0x00800102 0x1 fonction.o
|
||||||
|
0x00800102 usart
|
||||||
|
.bss.shiftRegister
|
||||||
|
0x00800103 0xa fonction.o
|
||||||
|
0x00800103 shiftRegister
|
||||||
|
.bss.rtc 0x0080010d 0x2 fonction.o
|
||||||
|
0x0080010d rtc
|
||||||
|
.bss.atc_ 0x0080010f 0x18 lib/DCF77.o
|
||||||
|
0x0080010f atc_
|
||||||
|
.bss.timer1_millis
|
||||||
|
0x00800127 0x4 lib/timer.o
|
||||||
|
0x00800127 timer1_millis
|
||||||
|
*(COMMON)
|
||||||
|
0x0080012b PROVIDE (__bss_end, .)
|
||||||
|
0x000016a4 __data_load_start = LOADADDR (.data)
|
||||||
|
0x000016a4 __data_load_end = (__data_load_start + SIZEOF (.data))
|
||||||
|
|
||||||
|
.noinit 0x0080012b 0x0
|
||||||
|
0x0080012b PROVIDE (__noinit_start, .)
|
||||||
|
*(.noinit*)
|
||||||
|
0x0080012b PROVIDE (__noinit_end, .)
|
||||||
|
0x0080012b _end = .
|
||||||
|
0x0080012b PROVIDE (__heap_start, .)
|
||||||
|
|
||||||
|
.eeprom 0x00810000 0x0
|
||||||
|
*(.eeprom*)
|
||||||
|
0x00810000 __eeprom_end = .
|
||||||
|
|
||||||
|
.fuse
|
||||||
|
*(.fuse)
|
||||||
|
*(.lfuse)
|
||||||
|
*(.hfuse)
|
||||||
|
*(.efuse)
|
||||||
|
|
||||||
|
.lock
|
||||||
|
*(.lock*)
|
||||||
|
|
||||||
|
.signature
|
||||||
|
*(.signature*)
|
||||||
|
|
||||||
|
.user_signatures
|
||||||
|
*(.user_signatures*)
|
||||||
|
|
||||||
|
.stab
|
||||||
|
*(.stab)
|
||||||
|
|
||||||
|
.stabstr
|
||||||
|
*(.stabstr)
|
||||||
|
|
||||||
|
.stab.excl
|
||||||
|
*(.stab.excl)
|
||||||
|
|
||||||
|
.stab.exclstr
|
||||||
|
*(.stab.exclstr)
|
||||||
|
|
||||||
|
.stab.index
|
||||||
|
*(.stab.index)
|
||||||
|
|
||||||
|
.stab.indexstr
|
||||||
|
*(.stab.indexstr)
|
||||||
|
|
||||||
|
.comment 0x00000000 0x5c
|
||||||
|
*(.comment)
|
||||||
|
.comment 0x00000000 0x30 fonction.o
|
||||||
|
0x31 (size before relaxing)
|
||||||
|
.comment 0x00000000 0x31 lib/LCD.o
|
||||||
|
.comment 0x00000000 0x31 lib/hc74595.o
|
||||||
|
.comment 0x00000000 0x31 lib/DCF77.o
|
||||||
|
.comment 0x00000000 0x31 lib/DS1307.o
|
||||||
|
.comment 0x00000000 0x31 lib/timer.o
|
||||||
|
.comment 0x00000000 0x31 lib/UART.o
|
||||||
|
.comment 0x00000000 0x31 Nixie clock.o
|
||||||
|
.comment 0x00000000 0x31 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(sprintf.o)
|
||||||
|
.comment 0x00000030 0x2c c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(vfprintf_std.o)
|
||||||
|
0x2d (size before relaxing)
|
||||||
|
.comment 0x00000000 0x31 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1056/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr5\libc.a(fputc.o)
|
||||||
|
|
||||||
|
.note.gnu.build-id
|
||||||
|
*(.note.gnu.build-id)
|
||||||
|
|
||||||
|
.debug
|
||||||
|
*(.debug)
|
||||||
|
|
||||||
|
.line
|
||||||
|
*(.line)
|
||||||
|
|
||||||
|
.debug_srcinfo
|
||||||
|
*(.debug_srcinfo)
|
||||||
|
|
||||||
|
.debug_sfnames
|
||||||
|
*(.debug_sfnames)
|
||||||
|
|
||||||
|
.debug_aranges 0x00000000 0x2a0
|
||||||
|
*(.debug_aranges)
|
||||||
|
.debug_aranges
|
||||||
|
0x00000000 0x78 fonction.o
|
||||||
|
.debug_aranges
|
||||||
|
0x00000078 0x60 lib/LCD.o
|
||||||
|
.debug_aranges
|
||||||
|
0x000000d8 0x30 lib/hc74595.o
|
||||||
|
.debug_aranges
|
||||||
|
0x00000108 0x80 lib/DCF77.o
|
||||||
|
.debug_aranges
|
||||||
|
0x00000188 0x90 lib/DS1307.o
|
||||||
|
.debug_aranges
|
||||||
|
0x00000218 0x38 lib/timer.o
|
||||||
|
.debug_aranges
|
||||||
|
0x00000250 0x30 lib/UART.o
|
||||||
|
.debug_aranges
|
||||||
|
0x00000280 0x20 Nixie clock.o
|
||||||
|
|
||||||
|
.debug_pubnames
|
||||||
|
*(.debug_pubnames)
|
||||||
|
|
||||||
|
.debug_info 0x00000000 0x391a
|
||||||
|
*(.debug_info .gnu.linkonce.wi.*)
|
||||||
|
.debug_info 0x00000000 0x1957 fonction.o
|
||||||
|
.debug_info 0x00001957 0x9d8 lib/LCD.o
|
||||||
|
.debug_info 0x0000232f 0x2fa lib/hc74595.o
|
||||||
|
.debug_info 0x00002629 0x85e lib/DCF77.o
|
||||||
|
.debug_info 0x00002e87 0x754 lib/DS1307.o
|
||||||
|
.debug_info 0x000035db 0x18e lib/timer.o
|
||||||
|
.debug_info 0x00003769 0xc3 lib/UART.o
|
||||||
|
.debug_info 0x0000382c 0xee Nixie clock.o
|
||||||
|
|
||||||
|
.debug_abbrev 0x00000000 0xe5f
|
||||||
|
*(.debug_abbrev)
|
||||||
|
.debug_abbrev 0x00000000 0x344 fonction.o
|
||||||
|
.debug_abbrev 0x00000344 0x286 lib/LCD.o
|
||||||
|
.debug_abbrev 0x000005ca 0x1f4 lib/hc74595.o
|
||||||
|
.debug_abbrev 0x000007be 0x2de lib/DCF77.o
|
||||||
|
.debug_abbrev 0x00000a9c 0x1a1 lib/DS1307.o
|
||||||
|
.debug_abbrev 0x00000c3d 0x135 lib/timer.o
|
||||||
|
.debug_abbrev 0x00000d72 0x8a lib/UART.o
|
||||||
|
.debug_abbrev 0x00000dfc 0x63 Nixie clock.o
|
||||||
|
|
||||||
|
.debug_line 0x00000000 0x101d
|
||||||
|
*(.debug_line .debug_line.* .debug_line_end)
|
||||||
|
.debug_line 0x00000000 0x4ee fonction.o
|
||||||
|
.debug_line 0x000004ee 0x247 lib/LCD.o
|
||||||
|
.debug_line 0x00000735 0x181 lib/hc74595.o
|
||||||
|
.debug_line 0x000008b6 0x2fa lib/DCF77.o
|
||||||
|
.debug_line 0x00000bb0 0x226 lib/DS1307.o
|
||||||
|
.debug_line 0x00000dd6 0x171 lib/timer.o
|
||||||
|
.debug_line 0x00000f47 0x6b lib/UART.o
|
||||||
|
.debug_line 0x00000fb2 0x6b Nixie clock.o
|
||||||
|
|
||||||
|
.debug_frame 0x00000000 0x648
|
||||||
|
*(.debug_frame)
|
||||||
|
.debug_frame 0x00000000 0x138 fonction.o
|
||||||
|
.debug_frame 0x00000138 0x13c lib/LCD.o
|
||||||
|
.debug_frame 0x00000274 0x64 lib/hc74595.o
|
||||||
|
.debug_frame 0x000002d8 0x190 lib/DCF77.o
|
||||||
|
.debug_frame 0x00000468 0x104 lib/DS1307.o
|
||||||
|
.debug_frame 0x0000056c 0x74 lib/timer.o
|
||||||
|
.debug_frame 0x000005e0 0x44 lib/UART.o
|
||||||
|
.debug_frame 0x00000624 0x24 Nixie clock.o
|
||||||
|
|
||||||
|
.debug_str 0x00000000 0xb41
|
||||||
|
*(.debug_str)
|
||||||
|
.debug_str 0x00000000 0x63d fonction.o
|
||||||
|
0x685 (size before relaxing)
|
||||||
|
.debug_str 0x0000063d 0x18e lib/LCD.o
|
||||||
|
0x365 (size before relaxing)
|
||||||
|
.debug_str 0x000007cb 0x3e lib/hc74595.o
|
||||||
|
0x269 (size before relaxing)
|
||||||
|
.debug_str 0x00000809 0x283 lib/DCF77.o
|
||||||
|
0x58e (size before relaxing)
|
||||||
|
.debug_str 0x00000a8c 0x2b lib/DS1307.o
|
||||||
|
0x353 (size before relaxing)
|
||||||
|
.debug_str 0x00000ab7 0x60 lib/timer.o
|
||||||
|
0x22c (size before relaxing)
|
||||||
|
.debug_str 0x00000b17 0x10 lib/UART.o
|
||||||
|
0x1dc (size before relaxing)
|
||||||
|
.debug_str 0x00000b27 0x1a Nixie clock.o
|
||||||
|
0x20c (size before relaxing)
|
||||||
|
|
||||||
|
.debug_loc 0x00000000 0x23d5
|
||||||
|
*(.debug_loc)
|
||||||
|
.debug_loc 0x00000000 0x12f6 fonction.o
|
||||||
|
.debug_loc 0x000012f6 0x60f lib/LCD.o
|
||||||
|
.debug_loc 0x00001905 0x1a3 lib/hc74595.o
|
||||||
|
.debug_loc 0x00001aa8 0x54c lib/DCF77.o
|
||||||
|
.debug_loc 0x00001ff4 0x35e lib/DS1307.o
|
||||||
|
.debug_loc 0x00002352 0x83 lib/timer.o
|
||||||
|
|
||||||
|
.debug_macinfo
|
||||||
|
*(.debug_macinfo)
|
||||||
|
|
||||||
|
.debug_weaknames
|
||||||
|
*(.debug_weaknames)
|
||||||
|
|
||||||
|
.debug_funcnames
|
||||||
|
*(.debug_funcnames)
|
||||||
|
|
||||||
|
.debug_typenames
|
||||||
|
*(.debug_typenames)
|
||||||
|
|
||||||
|
.debug_varnames
|
||||||
|
*(.debug_varnames)
|
||||||
|
|
||||||
|
.debug_pubtypes
|
||||||
|
*(.debug_pubtypes)
|
||||||
|
|
||||||
|
.debug_ranges 0x00000000 0x4c8
|
||||||
|
*(.debug_ranges)
|
||||||
|
.debug_ranges 0x00000000 0x310 fonction.o
|
||||||
|
.debug_ranges 0x00000310 0x50 lib/LCD.o
|
||||||
|
.debug_ranges 0x00000360 0x20 lib/hc74595.o
|
||||||
|
.debug_ranges 0x00000380 0x70 lib/DCF77.o
|
||||||
|
.debug_ranges 0x000003f0 0x80 lib/DS1307.o
|
||||||
|
.debug_ranges 0x00000470 0x28 lib/timer.o
|
||||||
|
.debug_ranges 0x00000498 0x20 lib/UART.o
|
||||||
|
.debug_ranges 0x000004b8 0x10 Nixie clock.o
|
||||||
|
|
||||||
|
.debug_macro
|
||||||
|
*(.debug_macro)
|
||||||
|
OUTPUT(Nixie clock.elf elf32-avr)
|
||||||
|
LOAD linker stubs
|
Binary file not shown.
|
@ -0,0 +1,365 @@
|
||||||
|
S01300004E6978696520636C6F636B2E73726563E8
|
||||||
|
S11300000C9436000C94BE090C945E000C945E00B3
|
||||||
|
S11300100C945E000C945E000C945E000C945E00E4
|
||||||
|
S11300200C945E000C945E000C945E000C94FD0A2B
|
||||||
|
S11300300C945E000C945E000C945E000C945E00C4
|
||||||
|
S11300400C945E000C945E000C945E000C945E00B4
|
||||||
|
S11300500C945E000C945E000C945E000C945E00A4
|
||||||
|
S11300600C945E000C945E00C806ED0911241FBEBA
|
||||||
|
S1130070CFEFD8E0DEBFCDBF11E0A0E0B1E0E4EA0D
|
||||||
|
S1130080F6E102C005900D92A030B107D9F721E046
|
||||||
|
S1130090A0E0B1E001C01D92AB32B207E1F710E07D
|
||||||
|
S11300A0CCE6D0E004C02297FE010E944C0BC83677
|
||||||
|
S11300B0D107C9F70E943F0B0C94500B0C9400001D
|
||||||
|
S11300C08A3091054CF020E030E02F5F3F4F0A97D3
|
||||||
|
S11300D08A309105D4F702C020E030E022953295B1
|
||||||
|
S11300E0307F3227207F3227822B932B08950E9462
|
||||||
|
S11300F0220B529887B18F7C87B984B1887F84B9E9
|
||||||
|
S113010087B1876087B988B1887F88B984B18863EB
|
||||||
|
S113011084B985B1877C85B98DE091E00E94B00AED
|
||||||
|
S1130120803829F460E08DE091E00E94C80A0895C7
|
||||||
|
S11301308DE091E00E94B80A90E0BC01629572954E
|
||||||
|
S1130140707F7627607F7627959587959595879517
|
||||||
|
S11301509595879595958795682B40E083E091E088
|
||||||
|
S11301600E9409078DE091E00E94B40A90E0BC016E
|
||||||
|
S113017062957295707F7627607F7627959587952F
|
||||||
|
S1130180959587959595879595958795682B40E0E6
|
||||||
|
S113019083E091E00E9409078DE091E00E94B00A9B
|
||||||
|
S11301A090E0BC0162957295707F7627607F762718
|
||||||
|
S11301B09595879595958795959587959595879523
|
||||||
|
S11301C0682B40E083E091E00E94090783E091E01E
|
||||||
|
S11301D00E949C0708958DE091E00E94BC0A90E083
|
||||||
|
S11301E0BC0162957295707F7627607F762795951E
|
||||||
|
S11301F08795959587959595879595958795682B7A
|
||||||
|
S113020040E083E091E00E9409078DE091E00E94C4
|
||||||
|
S1130210C00A90E0BC0162957295707F7627607F7A
|
||||||
|
S11302207627959587959595879595958795959531
|
||||||
|
S11302308795682B40E083E091E00E9409078DE0F8
|
||||||
|
S113024091E00E94C40A90E0BC0162957295707FAF
|
||||||
|
S11302507627607F762795958795959587959595CB
|
||||||
|
S1130260879595958795682B40E083E091E00E94FF
|
||||||
|
S1130270090783E091E00E949C0708958DE091E0D6
|
||||||
|
S11302800E94B00A0E94980008950196662309F41A
|
||||||
|
S1130290C8C08230910509F446C08330910509F441
|
||||||
|
S11302A081C0019709F084C140E06FEF83E091E0E1
|
||||||
|
S11302B00E9409078DE091E00E94C00A90E0BC0111
|
||||||
|
S11302C062957295707F7627607F762795958795DE
|
||||||
|
S11302D0959587959595879595958795682B40E095
|
||||||
|
S11302E083E091E00E9409078DE091E00E94C40A36
|
||||||
|
S11302F090E0BC0162957295707F7627607F7627C7
|
||||||
|
S113030095958795959587959595879595958795D1
|
||||||
|
S1130310682B40E083E091E00E94090783E091E0CC
|
||||||
|
S11303200E949C0708958DE091E00E94BC0A90E031
|
||||||
|
S1130330BC0162957295707F7627607F76279595CC
|
||||||
|
S11303408795959587959595879595958795682B28
|
||||||
|
S113035040E083E091E00E94090740E06FEF83E012
|
||||||
|
S113036091E00E9409078DE091E00E94C40A90E0A8
|
||||||
|
S1130370BC0162957295707F7627607F762795958C
|
||||||
|
S11303808795959587959595879595958795682BE8
|
||||||
|
S113039040E083E091E00E94090783E091E00E943D
|
||||||
|
S11303A09C0708958DE091E00E94BC0A90E0BC0196
|
||||||
|
S11303B062957295707F7627607F762795958795ED
|
||||||
|
S11303C0959587959595879595958795682B40E0A4
|
||||||
|
S11303D083E091E00E9409078DE091E00E94C00A49
|
||||||
|
S11303E090E0BC0162957295707F7627607F7627D6
|
||||||
|
S11303F095958795959587959595879595958795E1
|
||||||
|
S1130400682B40E083E091E00E94090740E06FEF31
|
||||||
|
S113041083E091E00E94090783E091E00E949C0739
|
||||||
|
S113042008958230910509F446C08330910509F49A
|
||||||
|
S113043081C0019709F0BCC040E06FEF83E091E018
|
||||||
|
S11304400E9409078DE091E00E94B40A90E0BC018B
|
||||||
|
S113045062957295707F7627607F7627959587954C
|
||||||
|
S1130460959587959595879595958795682B40E003
|
||||||
|
S113047083E091E00E9409078DE091E00E94B00AB8
|
||||||
|
S113048090E0BC0162957295707F7627607F762735
|
||||||
|
S11304909595879595958795959587959595879540
|
||||||
|
S11304A0682B40E083E091E00E94090783E091E03B
|
||||||
|
S11304B00E949C0708958DE091E00E94B80A90E0A4
|
||||||
|
S11304C0BC0162957295707F7627607F762795953B
|
||||||
|
S11304D08795959587959595879595958795682B97
|
||||||
|
S11304E040E083E091E00E94090740E06FEF83E081
|
||||||
|
S11304F091E00E9409078DE091E00E94B00A90E02B
|
||||||
|
S1130500BC0162957295707F7627607F76279595FA
|
||||||
|
S11305108795959587959595879595958795682B56
|
||||||
|
S113052040E083E091E00E94090783E091E00E94AB
|
||||||
|
S11305309C0708958DE091E00E94B80A90E0BC0108
|
||||||
|
S113054062957295707F7627607F7627959587955B
|
||||||
|
S1130550959587959595879595958795682B40E012
|
||||||
|
S113056083E091E00E9409078DE091E00E94B40AC3
|
||||||
|
S113057090E0BC0162957295707F7627607F762744
|
||||||
|
S1130580959587959595879595958795959587954F
|
||||||
|
S1130590682B40E083E091E00E94090740E06FEFA0
|
||||||
|
S11305A083E091E00E94090783E091E00E949C07A8
|
||||||
|
S11305B008950E94360B809302011A9B03C088EEB3
|
||||||
|
S11305C093E003C0813CF9F4FACF1A9949C040C0C2
|
||||||
|
S11305D083B1109201011092000183B18873885F86
|
||||||
|
S11305E0893320F485FF03C02D9A02C080E02D9842
|
||||||
|
S11305F084FF02C02C9A01C02C9883FF02C02B9A5E
|
||||||
|
S113060008952B980895199B03C088EE93E004C0C5
|
||||||
|
S1130610803C09F03FC0F9CF19992CC034C083B194
|
||||||
|
S1130620109201011092000183B183B18873885044
|
||||||
|
S113063085FF02C02D9A01C02D9884FF02C02C9A18
|
||||||
|
S113064001C02C9883FF02C02B9A08952B9808951B
|
||||||
|
S11306508091000190910101892B09F4B9CFB9CFA0
|
||||||
|
S1130660EFE9FFE03197F1F700C000000197009730
|
||||||
|
S113067079F3ABCFEFE9FFE03197F1F700C0000069
|
||||||
|
S11306800197009749F68091000190910101892B0F
|
||||||
|
S113069031F2C6CF0895BF92CF92DF92EF92FF92CC
|
||||||
|
S11306A00F931F93CF93DF93189B95C2189BAEC1F2
|
||||||
|
S11306B08FE99FE00197F1F700C000001899F8CF87
|
||||||
|
S11306C0A5C10F5F1F4F083C110514F000E010E0B6
|
||||||
|
S11306D0189B0BC0189B08C0EFE9FFE03197F1F7B6
|
||||||
|
S11306E000C000001899F8CF2196C330D10509F451
|
||||||
|
S11306F06CC03CF4C130D10579F0C230D10509F1A8
|
||||||
|
S113070077C1C530D10509F4EAC00CF4A5C0C630E0
|
||||||
|
S1130710D10509F426C16CC10536110534F060E039
|
||||||
|
S113072082E090E00E94450102C00E9498001A995C
|
||||||
|
S113073002C0199B44C260E08DE091E00E94C80AA7
|
||||||
|
S11307403EC20536110534F060E081E090E00E947D
|
||||||
|
S1130750450102C00E9498001A9B13C08E2D9F2D44
|
||||||
|
S11307601A9975C16AC1807F60E1680F02C061E0B7
|
||||||
|
S1130770680F603608F060E08DE091E00E94CE0AD8
|
||||||
|
S11307801EC2199B1CC28E2D9F2D199973C169C15C
|
||||||
|
S113079082958F70682F70E061507109629572952F
|
||||||
|
S11307A0707F7627607F7627696004C0882329F0EC
|
||||||
|
S11307B06FEF680F613618F403C069E501C069E59D
|
||||||
|
S11307C08DE091E00E94CE0AFAC10536110534F09D
|
||||||
|
S11307D060E080E090E00E94450102C00E94980021
|
||||||
|
S11307E01A9B17C08E2D9F2D1A9958C14DC1807F19
|
||||||
|
S11307F060E1680F08C0833228F49F5F807F692F0F
|
||||||
|
S1130800682B01C060E040E08DE091E00E94D40AD2
|
||||||
|
S1130810D6C1199BD4C18E2D9F2D199951C148C1A0
|
||||||
|
S1130820982F9F7069F482958F7090E0019782955C
|
||||||
|
S11308309295907F9827807F9827682F696006C0DB
|
||||||
|
S11308409150807F692F682B01C063E240E08DE006
|
||||||
|
S113085091E00E94D40AB3C140980536110534F0E2
|
||||||
|
S11308606D2D80E090E00E94450102C00E94EB00E3
|
||||||
|
S11308701A9B15C08E2D9F2D1A9936C12BC1807FCE
|
||||||
|
S113088060E1680F04C09F5F807F692F682B62332B
|
||||||
|
S113089008F060E08DE091E00E94E00A90C1199BAD
|
||||||
|
S11308A08EC18E2D9F2D199932C128C182958F70CA
|
||||||
|
S11308B090E0019782959295907F9827807F982762
|
||||||
|
S11308C0682F696004C09150807F692F682B611183
|
||||||
|
S11308D001C061E38DE091E00E94E00A70C1053639
|
||||||
|
S11308E0110534F06D2D81E090E00E94450102C0B5
|
||||||
|
S11308F00E94EB001A9B15C08E2D9F2D1A991BC1C7
|
||||||
|
S113090010C1807F60E1680F04C09F5F807F692F02
|
||||||
|
S1130910682B633108F06D2D8DE091E00E94E60AAA
|
||||||
|
S11309204EC1199B4CC18E2D9F2D199917C10DC114
|
||||||
|
S113093082958F7090E0019782959295907F982789
|
||||||
|
S1130940807F9827682F696004C09150807F692F49
|
||||||
|
S1130950682B611101C06C2D8DE091E00E94E60AC4
|
||||||
|
S11309602EC10536110534F06D2D82E090E00E9411
|
||||||
|
S1130970450102C00E94EB001A9B15C08E2D9F2DCD
|
||||||
|
S11309801A99F6C0FFC0807F60E1680F04C09F5FC2
|
||||||
|
S1130990807F692F682B6A3908F060E08DE091E070
|
||||||
|
S11309A00E94EC0A0CC1199B0AC18E2D9F2D199926
|
||||||
|
S11309B0FCC0F2C08823A1F082958F7090E001976B
|
||||||
|
S11309C082959295907F9827807F9827682F6960F9
|
||||||
|
S11309D00AC0882339F09150807F692F682B03C0A7
|
||||||
|
S11309E06B2D01C06B2D8DE091E00E94EC0AE7C0F5
|
||||||
|
S11309F088B1887F88B98FE99FE00197F1F700C03B
|
||||||
|
S1130A000000C730D1050CF0E6C05BCEC1E0D0E0F9
|
||||||
|
S1130A1000E010E00F2EF8EEEF2EF02D0F2EF3E095
|
||||||
|
S1130A20FF2EF02D0F2EF2E1CF2EF02DDD24D394E6
|
||||||
|
S1130A300F2EF9E9BF2EF02D4BCE8DE091E00E94F0
|
||||||
|
S1130A40B40A982F9F70993009F091CE8CCEEFE9BB
|
||||||
|
S1130A50FFE03197F1F700C000000197009769F3B8
|
||||||
|
S1130A607FCE8DE091E00E94B40A982F9F7009F424
|
||||||
|
S1130A708FCE9CCEEFE9FFE03197F1F700C0000084
|
||||||
|
S1130A800197009771F381CE8DE091E00E94B80A3E
|
||||||
|
S1130A90982F9F70993009F0AECEA9CEEFE9FFE010
|
||||||
|
S1130AA03197F1F700C000000197009769F39CCEDD
|
||||||
|
S1130AB08DE091E00E94B80A882309F4C6CEB0CE36
|
||||||
|
S1130AC0EFE9FFE03197F1F700C0000001970097CC
|
||||||
|
S1130AD079F3A3CE8DE091E00E94BC0A982F9F7019
|
||||||
|
S1130AE0993009F0D0CECBCEEFE9FFE03197F1F7A2
|
||||||
|
S1130AF000C000000197009769F3BECE8DE091E03D
|
||||||
|
S1130B000E94BC0A982F9F7009F4D0CEDCCEEFE986
|
||||||
|
S1130B10FFE03197F1F700C000000197009771F3EF
|
||||||
|
S1130B20C2CE8DE091E00E94C00A982F9F70993048
|
||||||
|
S1130B3009F0EBCEE6CEEFE9FFE03197F1F700C024
|
||||||
|
S1130B4000000197009769F3D9CE8DE091E00E94EF
|
||||||
|
S1130B50C00A982F9F7009F4EBCEF7CEEFE9FFE0BF
|
||||||
|
S1130B603197F1F700C000000197009771F3DDCED3
|
||||||
|
S1130B70EFE9FFE03197F1F700C00000019700971B
|
||||||
|
S1130B8009F0FECE8DE091E00E94C40A982F9F7078
|
||||||
|
S1130B90993009F0FCCEF7CE8DE091E00E94C40AB2
|
||||||
|
S1130BA0982F9F7009F406CF14CFEFE9FFE0319737
|
||||||
|
S1130BB0F1F700C000000197009771F3F8CE88B1F7
|
||||||
|
S1130BC0887F88B98FE99FE00197F1F700C00000A2
|
||||||
|
S1130BD00F5F1F4F78CDDF91CF911F910F91FF9041
|
||||||
|
S1130BE0EF90DF90CF90BF900895CF92DF92EF9275
|
||||||
|
S1130BF0FF920F931F93CF93DF93809102018F3C59
|
||||||
|
S1130C0009F0BDC0B1C00C2D1D2D813C49F50E94D9
|
||||||
|
S1130C10360B80930201882309F49DC016C00E94FC
|
||||||
|
S1130C20360B809302010E949800C536D10514F05A
|
||||||
|
S1130C30CE2DDF2D8FE99FE00197F1F700C0000072
|
||||||
|
S1130C40219680910201882351F390E00E94600074
|
||||||
|
S1130C50682F8DE091E00E94C80A81EC0E942E0B5F
|
||||||
|
S1130C6080910201823C49F50E94360B8093020177
|
||||||
|
S1130C70882309F467C016C00E94360B80930201D2
|
||||||
|
S1130C800E949800C536D10514F0CE2DDF2D8FE9D2
|
||||||
|
S1130C909FE00197F1F700C00000219680910201C6
|
||||||
|
S1130CA0882351F390E00E946000682F8DE091E06A
|
||||||
|
S1130CB00E94CE0A82EC0E942E0B80910201833C9A
|
||||||
|
S1130CC049F50E94360B80930201882391F116C0E6
|
||||||
|
S1130CD00E94360B809302010E949800C536D1050C
|
||||||
|
S1130CE014F0CE2DDF2D8FE99FE00197F1F700C0BE
|
||||||
|
S1130CF00000219680910201882351F390E00E9424
|
||||||
|
S1130D00600040E0682F8DE091E00E94D40A83ECFB
|
||||||
|
S1130D100E942E0B80910201843C89F10F5F1F4FCA
|
||||||
|
S1130D200E94360B80930201053611050CF06BCF3F
|
||||||
|
S1130D306CCF0E94360B809302010E949800CC2D48
|
||||||
|
S1130D40DD2DD1CF0E94360B809302010E949800C2
|
||||||
|
S1130D50CC2DDD2D9CCF0E94360B809302010E9486
|
||||||
|
S1130D609800CC2DDD2D66CF0E94360B80930201B6
|
||||||
|
S1130D7000E010E0C12CD12CEC2CFD2C46CFDF91EF
|
||||||
|
S1130D80CF911F910F91FF90EF90DF90CF90089536
|
||||||
|
S1130D900F931F938DE091E00E941E0A0BE210E076
|
||||||
|
S1130DA025E030E047E050E066E070E083E091E069
|
||||||
|
S1130DB00E94DD061F910F9108950F931F93FC016C
|
||||||
|
S1130DC0608371834283538324833583178306832B
|
||||||
|
S1130DD0D8011197B187A0875C9181E090E0FC0174
|
||||||
|
S1130DE002C0EE0FFF1F2A95E2F79F01252BFC019D
|
||||||
|
S1130DF002C0EE0FFF1F4A95E2F7AF01422B02C07B
|
||||||
|
S1130E00880F991F6A95E2F7842B8C931F910F9199
|
||||||
|
S1130E1008950F931F93CF93DF93FC0180E090E03C
|
||||||
|
S1130E2021E030E000E810E070E041113DC0A6810F
|
||||||
|
S1130E30B7815C91E901028002C0CC0FDD1F0A94E6
|
||||||
|
S1130E40E2F7C095C523CC93DB01082E02C0B5950B
|
||||||
|
S1130E50A7950A94E2F7A0FF0DC0A681B7815C9123
|
||||||
|
S1130E60E901008002C0CC0FDD1F0A94E2F7C52B14
|
||||||
|
S1130E70CC930DC0A681B7815C91E901008002C0CA
|
||||||
|
S1130E80CC0FDD1F0A94E2F7C095C523CC93A6814D
|
||||||
|
S1130E90B7815C91E901028002C0CC0FDD1F0A9486
|
||||||
|
S1130EA0E2F7C52BCC933EC0A681B7815C91E901E2
|
||||||
|
S1130EB0028002C0CC0FDD1F0A94E2F7C095C5235F
|
||||||
|
S1130EC0CC93D801082E02C0B595A7950A94E2F7F1
|
||||||
|
S1130ED0A623B723AB2B69F0A681B7815C91E90106
|
||||||
|
S1130EE0008002C0CC0FDD1F0A94E2F7C52BCC931F
|
||||||
|
S1130EF00DC0A681B7815C91E901008002C0CC0FCE
|
||||||
|
S1130F00DD1F0A94E2F7C095C523CC93A681B7816F
|
||||||
|
S1130F105C91E901028002C0CC0FDD1F0A94E2F764
|
||||||
|
S1130F20C52BCC9301968830910509F07ECFDF91D3
|
||||||
|
S1130F30CF911F910F910895FC01A681B7814C9127
|
||||||
|
S1130F4021E030E0C901048002C0880F991F0A948F
|
||||||
|
S1130F50E2F7842B8C9385E08A95F1F70000A68153
|
||||||
|
S1130F60B7814C91C901048002C0880F991F0A946B
|
||||||
|
S1130F70E2F7809584238C930895CF92DF92EF92C9
|
||||||
|
S1130F80FF920F931F93CF93DF93EC010E94F20A19
|
||||||
|
S1130F90CC80DD80EE80FF808B010C191D091F8B36
|
||||||
|
S1130FA00E8B043F114020F4CD28CE28CF2871F5B4
|
||||||
|
S1130FB02D981D8A0E94F20A0C811D812E813F8189
|
||||||
|
S1130FC0AB01BC01401B510B620B730B4C835D8363
|
||||||
|
S1130FD06E837F830E94F20A688379838A839B836A
|
||||||
|
S1130FE081E04C815D816E817F81493E5340610582
|
||||||
|
S1130FF0710508F480E0811103C08885882319F005
|
||||||
|
S113100081E0888705C01A8A198A02C081E08D8B25
|
||||||
|
S1131010DF91CF911F910F91FF90EF90DF90CF90D0
|
||||||
|
S11310200895FC01238934892115310531F466239F
|
||||||
|
S113103009F4F4C040E050E03CC0A901C9010197A3
|
||||||
|
S1131040439708F4EDC02431310519F46111FCC053
|
||||||
|
S1131050E9C0C9014597079718F5662381F0C901CE
|
||||||
|
S1131060459741E050E0BA0102C0660F771F8A95A8
|
||||||
|
S1131070E2F7CB019385892B838781E0E0C0C90126
|
||||||
|
S1131080459741E050E0BA0102C0660F771F8A9588
|
||||||
|
S1131090E2F7CB01809593858923838781E0CFC0D4
|
||||||
|
S11310A02C31310531F4838580FFE0C06111D2C059
|
||||||
|
S11310B0BBC0CA014D97069718F5662381F0C90194
|
||||||
|
S11310C04D9741E050E0BA0102C0660F771F8A9540
|
||||||
|
S11310D0E2F7CB019485892B848781E0B0C0C901F4
|
||||||
|
S11310E04D9741E050E0BA0102C0660F771F8A9520
|
||||||
|
S11310F0E2F7CB01809594858923848781E09FC0A2
|
||||||
|
S11311002332310581F4848580FF09C061110BC04D
|
||||||
|
S11311108DC02332310539F4848580FD04C06623F3
|
||||||
|
S113112009F49EC085C0CA018497069718F5662302
|
||||||
|
S113113081F0C901849741E050E0BA0102C0660F12
|
||||||
|
S1131140771F8A95E2F7CB019585892B858781E006
|
||||||
|
S113115076C0C901849741E050E0BA0102C0660F2D
|
||||||
|
S1131160771F8A95E2F7CB0180959585892385873A
|
||||||
|
S113117081E065C0CA018A978330910508F45AC09A
|
||||||
|
S11311800397059718F5662381F0C9018D9741E00F
|
||||||
|
S113119050E0BA0102C0660F771F8A95E2F7CB01CF
|
||||||
|
S11311A09785892B878781E04AC0C9018D9741E0E3
|
||||||
|
S11311B050E0BA0102C0660F771F8A95E2F7CB01AF
|
||||||
|
S11311C0809597858923878781E039C042535109E7
|
||||||
|
S11311D04830510588F5662381F0C901C29741E082
|
||||||
|
S11311E050E0BA0102C0660F771F8A95E2F7CB017F
|
||||||
|
S11311F09089892B808B81E022C0C901C29741E08C
|
||||||
|
S113120050E0BA0102C0660F771F8A95E2F7CB015E
|
||||||
|
S1131210809590898923808B81E011C080E00FC084
|
||||||
|
S113122081E00DC080E00BC080E009C080E007C011
|
||||||
|
S113123080E005C081E003C081E001C080E02F5F51
|
||||||
|
S11312403F4F348B238B0895C9014597079708F4C2
|
||||||
|
S113125006CF0FC0C9014D97069708F42ECF59CF7A
|
||||||
|
S1131260CA018497069708F474CF84CF662391F358
|
||||||
|
S1131270E5CFC9014D97069708F41FCF54CF8F923D
|
||||||
|
S11312809F92AF92BF92FF920F931F93CF93DF93DE
|
||||||
|
S1131290EC010E94F20A88809980AA80BB808B01AD
|
||||||
|
S11312A0081919091F8B0E8B0431110528F489289C
|
||||||
|
S11312B08A288B2809F056C02D9A1D8A0E94F20AAA
|
||||||
|
S11312C06C837D838E839F830E94F20A0881198137
|
||||||
|
S11312D02A813B81AB01BC01401B510B620B730B98
|
||||||
|
S11312E0488359836A837B838885882379F1898538
|
||||||
|
S11312F09A85CB977CF581E090E09A8B898BDB0112
|
||||||
|
S1131300CA0180559109A109B1098997A105B105BF
|
||||||
|
S113131050F0445B51096109710949325105610575
|
||||||
|
S1131320710518F004C0F12C02C0FF24F3946F2D52
|
||||||
|
S1131330CE010E941108882319F01A86198618868E
|
||||||
|
S113134089859A8501969A8789870EC089859A85A9
|
||||||
|
S1131350CB9754F018861A86198682E090E09A8B0F
|
||||||
|
S1131360898B02C081E08D8BDF91CF911F910F910A
|
||||||
|
S1131370FF90BF90AF909F908F9008951F920F920F
|
||||||
|
S11313800FB60F9211242F933F934F935F936F9354
|
||||||
|
S11313907F938F939F93AF93BF93EF93FF93F894AF
|
||||||
|
S11313A04A9B05C08FE091E00E943F0904C08FE092
|
||||||
|
S11313B091E00E94BD077894FF91EF91BF91AF91A6
|
||||||
|
S11313C09F918F917F916F915F914F913F912F9159
|
||||||
|
S11313D00F900FBE0F901F90189510920F0110924E
|
||||||
|
S11313E01001109211011092120110921301109227
|
||||||
|
S11313F01401109215011092160110921701109207
|
||||||
|
S113140019011092180110921A0110921B011092E6
|
||||||
|
S11314101C0110921D0110921E0110921F011092C6
|
||||||
|
S113142021011092200110922301109222011092A6
|
||||||
|
S1131430240110922601109225010895FC011182C5
|
||||||
|
S113144008958CE58093B800E9EBF0E080818C7F0F
|
||||||
|
S11314508083ECEBF0E084E0808384EA8083808105
|
||||||
|
S11314608823ECF780ED8093BB0084E88093BC0074
|
||||||
|
S1131470ECEBF0E080818823ECF76093BB0084E818
|
||||||
|
S11314808093BC00ECEBF0E080818823ECF7409380
|
||||||
|
S1131490BB0084E88093BC00ECEBF0E080818823FF
|
||||||
|
S11314A0ECF784E98093BC00ECEBF0E0808184FDF0
|
||||||
|
S11314B0FDCFECEBF0E080818B7F808308958CE599
|
||||||
|
S11314C08093B800E9EBF0E080818C7F8083ECEBC3
|
||||||
|
S11314D0F0E084E0808384EA808380818823ECF7D1
|
||||||
|
S11314E080ED8093BB0084E88093BC00ECEBF0E0DB
|
||||||
|
S11314F080818823ECF76093BB0084E88093BC0070
|
||||||
|
S1131500ECEBF0E080818823ECF784EA8093BC0064
|
||||||
|
S1131510ECEBF0E080818823ECF781ED8093BB0055
|
||||||
|
S113152084E88093BC00ECEBF0E080818823ECF746
|
||||||
|
S113153084E88093BC00ECEBF0E080818823ECF736
|
||||||
|
S11315408091BB0094E99093BC00ECEBF0E09081B7
|
||||||
|
S113155094FDFDCFECEBF0E090819B7F90830895A8
|
||||||
|
S113156060E00E945F0A089561E00E945F0A0895A6
|
||||||
|
S113157062E00E945F0A089564E00E945F0A089591
|
||||||
|
S113158065E00E945F0A089566E00E945F0A08957C
|
||||||
|
S1131590462F60E070E00E94210A0895462F61E022
|
||||||
|
S11315A070E00E94210A0895442319F0462F4064F4
|
||||||
|
S11315B002C0462F4F7B62E070E00E94210A08952A
|
||||||
|
S11315C0462F64E070E00E94210A0895462F65E0EA
|
||||||
|
S11315D070E00E94210A0895462F66E070E00E94A0
|
||||||
|
S11315E0210A0895F894609127017091280180914F
|
||||||
|
S11315F0290190912A01789408951F920F920FB6B1
|
||||||
|
S11316000F9211248F939F93AF93BF9380912701DF
|
||||||
|
S113161090912801A0912901B0912A010196A11D60
|
||||||
|
S1131620B11D8093270190932801A0932901B093C1
|
||||||
|
S11316302A01BF91AF919F918F910F900FBE0F9090
|
||||||
|
S11316401F9018951092C50087E68093C40088E126
|
||||||
|
S11316508093C10086E08093C2000895E0ECF0E03E
|
||||||
|
S1131660908195FFFDCF8093C60008958091C000BE
|
||||||
|
S113167088231CF48091C600089580E008950E9498
|
||||||
|
S113168077000E943E010E944B030E94D9020E94EF
|
||||||
|
S1131690F505F7CFEE0FFF1F0590F491E02D0994A7
|
||||||
|
S10716A0F894FFCFE8
|
||||||
|
S9030000FC
|
|
@ -0,0 +1,53 @@
|
||||||
|
fonction.d fonction.o: .././fonction.cpp \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\io.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\inttypes.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\stdint.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\iom328p.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\portpins.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\common.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\version.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\fuse.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\lock.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\interrupt.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\util\delay.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\math.h \
|
||||||
|
../././lib/hc74595.h ../././lib/DS1307.h .././lib/UART.h
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\io.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\inttypes.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\stdint.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\iom328p.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\portpins.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\common.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\version.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\fuse.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\lock.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\interrupt.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\util\delay.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\util\delay_basic.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\math.h:
|
||||||
|
|
||||||
|
../././lib/hc74595.h:
|
||||||
|
|
||||||
|
../././lib/DS1307.h:
|
||||||
|
|
||||||
|
.././lib/UART.h:
|
Binary file not shown.
|
@ -0,0 +1,63 @@
|
||||||
|
lib/DCF77.d lib/DCF77.o: ../lib/DCF77.cpp ../lib/DCF77.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\stdint.h \
|
||||||
|
../lib/timer.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\io.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\inttypes.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\iom328p.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\portpins.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\common.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\version.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\fuse.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\lock.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\interrupt.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\util\atomic.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\util\delay.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\math.h \
|
||||||
|
../lib/LCD.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\string.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h
|
||||||
|
|
||||||
|
../lib/DCF77.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\stdint.h:
|
||||||
|
|
||||||
|
../lib/timer.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\io.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\inttypes.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\iom328p.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\portpins.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\common.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\version.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\fuse.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\lock.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\interrupt.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\util\atomic.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\util\delay.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\util\delay_basic.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\math.h:
|
||||||
|
|
||||||
|
../lib/LCD.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\string.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h:
|
Binary file not shown.
|
@ -0,0 +1,46 @@
|
||||||
|
lib/DS1307.d lib/DS1307.o: ../lib/DS1307.cpp \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\io.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\inttypes.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\stdint.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\iom328p.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\portpins.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\common.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\version.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\fuse.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\lock.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\util\delay.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\math.h \
|
||||||
|
../lib/DS1307.h
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\io.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\inttypes.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\stdint.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\iom328p.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\portpins.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\common.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\version.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\fuse.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\lock.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\util\delay.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\util\delay_basic.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\math.h:
|
||||||
|
|
||||||
|
../lib/DS1307.h:
|
Binary file not shown.
|
@ -0,0 +1,64 @@
|
||||||
|
lib/LCD.d lib/LCD.o: ../lib/LCD.cpp \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\stdlib.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\stdio.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\inttypes.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\stdint.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdarg.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\delay.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\util\delay.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\math.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\io.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\iom328p.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\portpins.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\common.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\version.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\fuse.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\lock.h \
|
||||||
|
../lib/LCD.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\string.h
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\stdlib.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\stdio.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\inttypes.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\stdint.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdarg.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\delay.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\util\delay.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\util\delay_basic.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\math.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\io.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\iom328p.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\portpins.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\common.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\version.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\fuse.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\lock.h:
|
||||||
|
|
||||||
|
../lib/LCD.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\string.h:
|
Binary file not shown.
|
@ -0,0 +1,46 @@
|
||||||
|
lib/UART.d lib/UART.o: ../lib/UART.cpp \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\io.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\inttypes.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\stdint.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\iom328p.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\portpins.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\common.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\version.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\fuse.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\lock.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\util\delay.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\math.h \
|
||||||
|
../lib/UART.h
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\io.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\inttypes.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\stdint.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\iom328p.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\portpins.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\common.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\version.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\fuse.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\lock.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\util\delay.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\util\delay_basic.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\math.h:
|
||||||
|
|
||||||
|
../lib/UART.h:
|
Binary file not shown.
|
@ -0,0 +1,46 @@
|
||||||
|
lib/hc74595.d lib/hc74595.o: ../lib/hc74595.cpp \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\io.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\inttypes.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\stdint.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\iom328p.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\portpins.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\common.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\version.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\fuse.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\lock.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\util\delay.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\math.h \
|
||||||
|
../lib/hc74595.h
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\io.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\inttypes.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\stdint.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\iom328p.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\portpins.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\common.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\version.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\fuse.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\lock.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\util\delay.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\util\delay_basic.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\math.h:
|
||||||
|
|
||||||
|
../lib/hc74595.h:
|
Binary file not shown.
|
@ -0,0 +1,40 @@
|
||||||
|
lib/timer.d lib/timer.o: ../lib/timer.cpp \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\io.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\inttypes.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\stdint.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\iom328p.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\portpins.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\common.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\version.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\fuse.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\lock.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\interrupt.h \
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\util\atomic.h
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\io.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\inttypes.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\stdint.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\iom328p.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\portpins.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\common.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\version.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\fuse.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\lock.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\avr\interrupt.h:
|
||||||
|
|
||||||
|
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1056\avr8-gnu-toolchain\avr\include\util\atomic.h:
|
Binary file not shown.
|
@ -0,0 +1,2 @@
|
||||||
|
@echo off
|
||||||
|
"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.939\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O ihex -R .eeprom -R .fuse -R .lock -R .signature "Nixie clock.elf" "Nixie clock.hex"
|
|
@ -0,0 +1,2 @@
|
||||||
|
@echo off
|
||||||
|
"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.939\avr8-gnu-toolchain\bin\avr-g++.exe" -o "Nixie clock.elf" fonction.o lib/LCD.o lib/hc74595.o lib/DCF77.o lib/DS1307.o lib/timer.o "Nixie clock.o" -Wl,-Map="Nixie clock.map" -Wl,--start-group -Wl,-lm -Wl,--end-group -Wl,--gc-sections -mmcu=atmega328p
|
|
@ -0,0 +1,2 @@
|
||||||
|
@echo off
|
||||||
|
"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.939\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 "Nixie clock.elf" "Nixie clock.eep" || exit 0
|
|
@ -0,0 +1,2 @@
|
||||||
|
@echo off
|
||||||
|
"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.939\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O ihex -R .eeprom -R .fuse -R .lock -R .signature "Nixie clock.elf" "Nixie clock.hex"
|
|
@ -0,0 +1,2 @@
|
||||||
|
@echo off
|
||||||
|
"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.939\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 "Nixie clock.elf" "Nixie clock.eep" || exit 0
|
|
@ -0,0 +1,2 @@
|
||||||
|
@echo off
|
||||||
|
"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.939\avr8-gnu-toolchain\bin\avr-objdump.exe" -h -S "Nixie clock.elf" > "Nixie clock.lss"
|
|
@ -0,0 +1,2 @@
|
||||||
|
@echo off
|
||||||
|
"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.939\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O srec -R .eeprom -R .fuse -R .lock -R .signature "Nixie clock.elf" "Nixie clock.srec"
|
|
@ -0,0 +1,20 @@
|
||||||
|
################################################################################
|
||||||
|
# Automatically-generated file. Do not edit or delete the file
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
fonction.cpp
|
||||||
|
|
||||||
|
lib\LCD.cpp
|
||||||
|
|
||||||
|
lib\hc74595.cpp
|
||||||
|
|
||||||
|
lib\DCF77.cpp
|
||||||
|
|
||||||
|
lib\DS1307.cpp
|
||||||
|
|
||||||
|
lib\timer.cpp
|
||||||
|
|
||||||
|
lib\UART.cpp
|
||||||
|
|
||||||
|
Nixie clock.cpp
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
/*
|
||||||
|
* Horloge à Tube Nixie
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* V:1.1Beta
|
||||||
|
* Dernière modification : 27.05.14
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define F_CPU 16000000UL //Fréquence horloge à 16Mhz
|
||||||
|
#include <avr/io.h>
|
||||||
|
#include <util/delay.h>
|
||||||
|
#include <avr/interrupt.h>
|
||||||
|
#include "./fonction.h" //Inclusion des fonction
|
||||||
|
int main(void) //Fonction Principale
|
||||||
|
{
|
||||||
|
setup_pins(); //Configuration des pins et du registre à décalage
|
||||||
|
while(1)//Boucle infinie
|
||||||
|
{
|
||||||
|
routine_affichage(); //Routinne d'affihage des tube nixie
|
||||||
|
bouton(); //Gestion des boutons de configuration
|
||||||
|
couleur(); //Gestion des LED RGB
|
||||||
|
uart_ds1307();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,196 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup>
|
||||||
|
<SchemaVersion>2.0</SchemaVersion>
|
||||||
|
<ProjectVersion>6.1</ProjectVersion>
|
||||||
|
<ToolchainName>com.Atmel.AVRGCC8.CPP</ToolchainName>
|
||||||
|
<ProjectGuid>{f71abc8f-40b1-4ec1-b079-ec2cf2114afb}</ProjectGuid>
|
||||||
|
<avrdevice>ATmega328P</avrdevice>
|
||||||
|
<avrdeviceseries>none</avrdeviceseries>
|
||||||
|
<OutputType>Executable</OutputType>
|
||||||
|
<Language>CPP</Language>
|
||||||
|
<OutputFileName>$(MSBuildProjectName)</OutputFileName>
|
||||||
|
<OutputFileExtension>.elf</OutputFileExtension>
|
||||||
|
<OutputDirectory>$(MSBuildProjectDirectory)\$(Configuration)</OutputDirectory>
|
||||||
|
<AssemblyName>Nixie clock</AssemblyName>
|
||||||
|
<Name>Nixie clock</Name>
|
||||||
|
<RootNamespace>Nixie clock</RootNamespace>
|
||||||
|
<ToolchainFlavour>Native</ToolchainFlavour>
|
||||||
|
<KeepTimersRunning>true</KeepTimersRunning>
|
||||||
|
<OverrideVtor>false</OverrideVtor>
|
||||||
|
<OverrideVtorValue>exception_table</OverrideVtorValue>
|
||||||
|
<eraseonlaunchrule>0</eraseonlaunchrule>
|
||||||
|
<ProgFlashFromRam>true</ProgFlashFromRam>
|
||||||
|
<RamSnippetAddress>0x20000000</RamSnippetAddress>
|
||||||
|
<CacheFlash>true</CacheFlash>
|
||||||
|
<UncachedRange />
|
||||||
|
<BootSegment>2</BootSegment>
|
||||||
|
<AsfFrameworkConfig>
|
||||||
|
<framework-data xmlns="">
|
||||||
|
<options />
|
||||||
|
<configurations />
|
||||||
|
<files />
|
||||||
|
<documentation help="" />
|
||||||
|
<offline-documentation help="" />
|
||||||
|
<dependencies>
|
||||||
|
<content-extension eid="atmel.asf" uuidref="Atmel.ASF" version="3.8.1" />
|
||||||
|
</dependencies>
|
||||||
|
</framework-data>
|
||||||
|
</AsfFrameworkConfig>
|
||||||
|
<avrtoolinterface />
|
||||||
|
<avrtool>com.atmel.avrdbg.tool.simulator</avrtool>
|
||||||
|
<com_atmel_avrdbg_tool_simulator>
|
||||||
|
<ToolType>com.atmel.avrdbg.tool.simulator</ToolType>
|
||||||
|
<ToolName>Simulator</ToolName>
|
||||||
|
<ToolNumber>
|
||||||
|
</ToolNumber>
|
||||||
|
<StimuliFile>
|
||||||
|
</StimuliFile>
|
||||||
|
<Channel>
|
||||||
|
<host>127.0.0.1</host>
|
||||||
|
<port>64002</port>
|
||||||
|
<ssl>False</ssl>
|
||||||
|
</Channel>
|
||||||
|
<ToolOptions>
|
||||||
|
<InterfaceProperties>
|
||||||
|
<JtagEnableExtResetOnStartSession>false</JtagEnableExtResetOnStartSession>
|
||||||
|
</InterfaceProperties>
|
||||||
|
<InterfaceName>
|
||||||
|
</InterfaceName>
|
||||||
|
</ToolOptions>
|
||||||
|
</com_atmel_avrdbg_tool_simulator>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
|
||||||
|
<ToolchainSettings>
|
||||||
|
<AvrGccCpp>
|
||||||
|
<avrgcc.common.outputfiles.hex>True</avrgcc.common.outputfiles.hex>
|
||||||
|
<avrgcc.common.outputfiles.lss>True</avrgcc.common.outputfiles.lss>
|
||||||
|
<avrgcc.common.outputfiles.eep>True</avrgcc.common.outputfiles.eep>
|
||||||
|
<avrgcc.common.outputfiles.srec>True</avrgcc.common.outputfiles.srec>
|
||||||
|
<avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>
|
||||||
|
<avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>
|
||||||
|
<avrgcc.compiler.symbols.DefSymbols>
|
||||||
|
<ListValues>
|
||||||
|
<Value>NDEBUG</Value>
|
||||||
|
</ListValues>
|
||||||
|
</avrgcc.compiler.symbols.DefSymbols>
|
||||||
|
<avrgcc.compiler.optimization.level>Optimize for size (-Os)</avrgcc.compiler.optimization.level>
|
||||||
|
<avrgcc.compiler.optimization.PackStructureMembers>True</avrgcc.compiler.optimization.PackStructureMembers>
|
||||||
|
<avrgcc.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcc.compiler.optimization.AllocateBytesNeededForEnum>
|
||||||
|
<avrgcc.compiler.warnings.AllWarnings>True</avrgcc.compiler.warnings.AllWarnings>
|
||||||
|
<avrgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned>
|
||||||
|
<avrgcccpp.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcccpp.compiler.general.ChangeDefaultBitFieldUnsigned>
|
||||||
|
<avrgcccpp.compiler.symbols.DefSymbols>
|
||||||
|
<ListValues>
|
||||||
|
<Value>NDEBUG</Value>
|
||||||
|
</ListValues>
|
||||||
|
</avrgcccpp.compiler.symbols.DefSymbols>
|
||||||
|
<avrgcccpp.compiler.optimization.level>Optimize for size (-Os)</avrgcccpp.compiler.optimization.level>
|
||||||
|
<avrgcccpp.compiler.optimization.PackStructureMembers>True</avrgcccpp.compiler.optimization.PackStructureMembers>
|
||||||
|
<avrgcccpp.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcccpp.compiler.optimization.AllocateBytesNeededForEnum>
|
||||||
|
<avrgcccpp.compiler.warnings.AllWarnings>True</avrgcccpp.compiler.warnings.AllWarnings>
|
||||||
|
<avrgcccpp.linker.libraries.Libraries>
|
||||||
|
<ListValues>
|
||||||
|
<Value>libm</Value>
|
||||||
|
</ListValues>
|
||||||
|
</avrgcccpp.linker.libraries.Libraries>
|
||||||
|
<avrgcccpp.linker.memorysettings.Comment><segmentname>=<address>, for example .boot=0xff</avrgcccpp.linker.memorysettings.Comment>
|
||||||
|
</AvrGccCpp>
|
||||||
|
</ToolchainSettings>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
|
||||||
|
<ToolchainSettings>
|
||||||
|
<AvrGccCpp>
|
||||||
|
<avrgcc.common.outputfiles.hex>True</avrgcc.common.outputfiles.hex>
|
||||||
|
<avrgcc.common.outputfiles.lss>True</avrgcc.common.outputfiles.lss>
|
||||||
|
<avrgcc.common.outputfiles.eep>True</avrgcc.common.outputfiles.eep>
|
||||||
|
<avrgcc.common.outputfiles.srec>True</avrgcc.common.outputfiles.srec>
|
||||||
|
<avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>
|
||||||
|
<avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>
|
||||||
|
<avrgcc.compiler.symbols.DefSymbols>
|
||||||
|
<ListValues>
|
||||||
|
<Value>DEBUG</Value>
|
||||||
|
</ListValues>
|
||||||
|
</avrgcc.compiler.symbols.DefSymbols>
|
||||||
|
<avrgcc.compiler.optimization.level>Optimize (-O1)</avrgcc.compiler.optimization.level>
|
||||||
|
<avrgcc.compiler.optimization.PackStructureMembers>True</avrgcc.compiler.optimization.PackStructureMembers>
|
||||||
|
<avrgcc.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcc.compiler.optimization.AllocateBytesNeededForEnum>
|
||||||
|
<avrgcc.compiler.optimization.DebugLevel>Default (-g2)</avrgcc.compiler.optimization.DebugLevel>
|
||||||
|
<avrgcc.compiler.warnings.AllWarnings>True</avrgcc.compiler.warnings.AllWarnings>
|
||||||
|
<avrgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned>
|
||||||
|
<avrgcccpp.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcccpp.compiler.general.ChangeDefaultBitFieldUnsigned>
|
||||||
|
<avrgcccpp.compiler.symbols.DefSymbols>
|
||||||
|
<ListValues>
|
||||||
|
<Value>DEBUG</Value>
|
||||||
|
</ListValues>
|
||||||
|
</avrgcccpp.compiler.symbols.DefSymbols>
|
||||||
|
<avrgcccpp.compiler.optimization.level>Optimize (-O1)</avrgcccpp.compiler.optimization.level>
|
||||||
|
<avrgcccpp.compiler.optimization.PackStructureMembers>True</avrgcccpp.compiler.optimization.PackStructureMembers>
|
||||||
|
<avrgcccpp.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcccpp.compiler.optimization.AllocateBytesNeededForEnum>
|
||||||
|
<avrgcccpp.compiler.optimization.DebugLevel>Default (-g2)</avrgcccpp.compiler.optimization.DebugLevel>
|
||||||
|
<avrgcccpp.compiler.warnings.AllWarnings>True</avrgcccpp.compiler.warnings.AllWarnings>
|
||||||
|
<avrgcccpp.linker.libraries.Libraries>
|
||||||
|
<ListValues>
|
||||||
|
<Value>libm</Value>
|
||||||
|
</ListValues>
|
||||||
|
</avrgcccpp.linker.libraries.Libraries>
|
||||||
|
<avrgcccpp.linker.memorysettings.Comment><segmentname>=<address>, for example .boot=0xff</avrgcccpp.linker.memorysettings.Comment>
|
||||||
|
<avrgcccpp.assembler.debugging.DebugLevel>Default (-Wa,-g)</avrgcccpp.assembler.debugging.DebugLevel>
|
||||||
|
</AvrGccCpp>
|
||||||
|
</ToolchainSettings>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="fonction.cpp">
|
||||||
|
<SubType>compile</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="fonction.h">
|
||||||
|
<SubType>compile</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="lib\LCD.h">
|
||||||
|
<SubType>compile</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="lib\LCD.cpp">
|
||||||
|
<SubType>compile</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="lib\DCF77.h">
|
||||||
|
<SubType>compile</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="lib\DS1307.h">
|
||||||
|
<SubType>compile</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="lib\hc74595.cpp">
|
||||||
|
<SubType>compile</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="lib\hc74595.h">
|
||||||
|
<SubType>compile</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="lib\DCF77.cpp">
|
||||||
|
<SubType>compile</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="lib\DS1307.cpp">
|
||||||
|
<SubType>compile</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="lib\timer.cpp">
|
||||||
|
<SubType>compile</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="lib\timer.h">
|
||||||
|
<SubType>compile</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="lib\UART.cpp">
|
||||||
|
<SubType>compile</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="lib\UART.h">
|
||||||
|
<SubType>compile</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Nixie clock.cpp">
|
||||||
|
<SubType>compile</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Nixie clock.h">
|
||||||
|
<SubType>compile</SubType>
|
||||||
|
</Compile>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Folder Include="lib" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(AVRSTUDIO_EXE_PATH)\\Vs\\Compiler.targets" />
|
||||||
|
</Project>
|
|
@ -0,0 +1,24 @@
|
||||||
|
/*
|
||||||
|
* Horloge à Tube Nixie
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* V:1.1Beta
|
||||||
|
* Dernière modification : 27.05.14
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define F_CPU 16000000UL //Fréquence horloge à 16Mhz
|
||||||
|
#include <avr/io.h>
|
||||||
|
#include <util/delay.h>
|
||||||
|
#include <avr/interrupt.h>
|
||||||
|
#include "./fonction.h" //Inclusion des fonction
|
||||||
|
int main(void) //Fonction Principale
|
||||||
|
{
|
||||||
|
setup_pins(); //Configuration des pins et du registre à décalage
|
||||||
|
while(1)//Boucle infinie
|
||||||
|
{
|
||||||
|
routine_affichage(); //Routinne d'affihage des tube nixie
|
||||||
|
bouton(); //Gestion des boutons de configuration
|
||||||
|
couleur(); //Gestion des LED RGB
|
||||||
|
uart_ds1307();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,17 @@
|
||||||
|
/*
|
||||||
|
* Nixie_clock.h
|
||||||
|
*
|
||||||
|
* Created: 25/12/2013 14:25:40
|
||||||
|
* Author: Adrien
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef NIXIE CLOCK_H_
|
||||||
|
#define NIXIE CLOCK_H_
|
||||||
|
|
||||||
|
void affichage_heur();
|
||||||
|
void affichage_date();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* NIXIE CLOCK_H_ */
|
|
@ -0,0 +1,537 @@
|
||||||
|
/*
|
||||||
|
* fonction.cpp
|
||||||
|
*
|
||||||
|
* Created: 19/12/2013 14:18:08
|
||||||
|
* Author: Adrien
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define F_CPU 16000000UL //Fréquence horloge à 16Mhz
|
||||||
|
|
||||||
|
#include <avr/io.h>
|
||||||
|
#include <avr/interrupt.h>
|
||||||
|
#include <util/delay.h>
|
||||||
|
/* Chargement des librairie */
|
||||||
|
#include "./lib/hc74595.h"
|
||||||
|
#include "./lib/DS1307.h"
|
||||||
|
#include "lib/UART.h"
|
||||||
|
|
||||||
|
/* Config des pin */
|
||||||
|
#define LED_RED 1<<PINB3 /*Ici direct en Hex*/
|
||||||
|
#define LED_GREEN 1<<PINB4 /*Ici direct en Hex*/
|
||||||
|
#define LED_BLUE 1<<PINB5 /*Ici direct en Hex*/
|
||||||
|
|
||||||
|
#define SHIFT_REGISTER_CLK 7 /*Ici pour config donc pas en hex*/
|
||||||
|
#define SHIFT_REGISTER_CONFIRM 5 /*Ici pour config donc pas en hex*/
|
||||||
|
#define SHIFT_REGISTER_DATA 6 /*Ici pour config donc pas en hex*/
|
||||||
|
#define SHIFT_REGISTER_PORT 123
|
||||||
|
|
||||||
|
/*BP sur PORT B*/
|
||||||
|
#define BP_PLUS 2
|
||||||
|
#define BP_MOINS 1
|
||||||
|
#define BP_CONF 0
|
||||||
|
|
||||||
|
/*Pin Enable du Shift Register sur PORT C*/
|
||||||
|
#define SR_SECONDE 2
|
||||||
|
#define SR_MINUTE 1
|
||||||
|
#define SR_HEUR 0
|
||||||
|
|
||||||
|
#define SR_JOURS 0
|
||||||
|
#define SR_MOIS 1
|
||||||
|
#define SR_ANNEE 2
|
||||||
|
|
||||||
|
|
||||||
|
#define tmps_max_bp_plus_moins 1000 //Temps avent que le script continue sa route lorsque le bp reste enfoncé
|
||||||
|
#define tmps_clignotement 100 //Temps du clignotements (/!\ Eteint les registe à décalage => Passage à 0 sur les Nixie Tube ...)
|
||||||
|
#define LOW(bit) ~(bit)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* Création des objets */
|
||||||
|
|
||||||
|
ds1307 rtc;
|
||||||
|
hc74595 shiftRegister(SHIFT_REGISTER_DATA, SHIFT_REGISTER_CLK, SHIFT_REGISTER_CONFIRM, &PORTD);
|
||||||
|
uint8_t usart;
|
||||||
|
int bcm_rgb_actif = 0;
|
||||||
|
|
||||||
|
int bcm_red = 0;
|
||||||
|
int bcm_green = 0;
|
||||||
|
int bcm_blue = 0;
|
||||||
|
int abc=0;
|
||||||
|
void init_interupt()
|
||||||
|
{
|
||||||
|
TCCR0A = 0x00;
|
||||||
|
TCCR0B = (TCCR0B&(~(_BV(CS01)|_BV(CS02))))|_BV(CS00); //Prescale 8
|
||||||
|
TCNT0 = 0x00 ;
|
||||||
|
OCR0A = 0x01;
|
||||||
|
TIMSK0 = _BV(OCIE0A); //Enable interupt
|
||||||
|
}
|
||||||
|
int int_to_bcd(int val)
|
||||||
|
{
|
||||||
|
int high = 0;
|
||||||
|
while (val >= 10) // Count tens
|
||||||
|
{
|
||||||
|
high++;
|
||||||
|
val -= 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (high << 4) | val;
|
||||||
|
}
|
||||||
|
void setup_pins()
|
||||||
|
{
|
||||||
|
USART_ini();
|
||||||
|
DDRD &= LOW(1<<PIND2);
|
||||||
|
DDRC &= LOW(1<<PORTC5|1<<PORTC4);
|
||||||
|
DDRB &= LOW(1<<BP_CONF|1<<BP_MOINS|1<<BP_PLUS); //Config des entrée pour les bp
|
||||||
|
DDRC |= 1<<SR_HEUR|1<<SR_MINUTE|1<<SR_SECONDE; //Config des sortie Pour les pin enable
|
||||||
|
PORTC &= LOW(1<<SR_HEUR|1<<SR_MINUTE|1<<SR_SECONDE); //Active tous les registre a décalage
|
||||||
|
DDRB |= LED_RED | LED_GREEN | LED_BLUE ; //Config des sortie pour les LED
|
||||||
|
PORTB &= LOW(LED_RED|LED_GREEN|LED_BLUE); //Mise à 0 de toutes les LED
|
||||||
|
if(rtc.r_seconde() == 0x80)
|
||||||
|
rtc.w_seconde(0x00);
|
||||||
|
}
|
||||||
|
void affichage_heur()
|
||||||
|
{
|
||||||
|
uint8_t envoi = rtc.r_heur();
|
||||||
|
envoi = (envoi>>4)|((envoi&0x0f)<<4);
|
||||||
|
shiftRegister.send(envoi, 0);
|
||||||
|
envoi = rtc.r_minute();
|
||||||
|
envoi = (envoi>>4)|((envoi&0x0f)<<4);
|
||||||
|
shiftRegister.send(envoi, 0);
|
||||||
|
envoi = rtc.r_seconde();
|
||||||
|
envoi = (envoi>>4)|((envoi&0x0f)<<4);
|
||||||
|
shiftRegister.send(envoi, 0);
|
||||||
|
shiftRegister.confirm();
|
||||||
|
}
|
||||||
|
void affichage_date()
|
||||||
|
{
|
||||||
|
uint8_t envoi = rtc.r_jour();
|
||||||
|
envoi = (envoi>>4)|((envoi&0x0f)<<4);
|
||||||
|
shiftRegister.send(envoi, false);
|
||||||
|
envoi = rtc.r_moi();
|
||||||
|
envoi = (envoi>>4)|((envoi&0x0f)<<4);
|
||||||
|
shiftRegister.send(envoi, false);
|
||||||
|
envoi = rtc.r_year();
|
||||||
|
envoi = (envoi>>4)|((envoi&0x0f)<<4);
|
||||||
|
shiftRegister.send(envoi, false);
|
||||||
|
shiftRegister.confirm();
|
||||||
|
}
|
||||||
|
void affichage_shutdwon()
|
||||||
|
{
|
||||||
|
shiftRegister.send(0xFF, false);
|
||||||
|
shiftRegister.send(0xFF, false);
|
||||||
|
shiftRegister.send(0xFF, false);
|
||||||
|
shiftRegister.confirm();
|
||||||
|
}
|
||||||
|
void routine_affichage()
|
||||||
|
{
|
||||||
|
uint8_t secondes_var = rtc.r_seconde();
|
||||||
|
if(secondes_var >= 0x20 && secondes_var <= 0x30 && 1==2) //Affiche la date pandant 10 seconde
|
||||||
|
affichage_date();
|
||||||
|
else
|
||||||
|
affichage_heur();
|
||||||
|
}
|
||||||
|
void clignotement(int n, bool date)
|
||||||
|
{
|
||||||
|
n++;
|
||||||
|
uint8_t envoi;
|
||||||
|
if(date)
|
||||||
|
{
|
||||||
|
switch(n)
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
envoi = 0xff;
|
||||||
|
shiftRegister.send(envoi, false);
|
||||||
|
envoi = rtc.r_moi();
|
||||||
|
envoi = (envoi>>4)|((envoi&0x0f)<<4);
|
||||||
|
shiftRegister.send(envoi, false);
|
||||||
|
envoi = rtc.r_year();
|
||||||
|
envoi = (envoi>>4)|((envoi&0x0f)<<4);
|
||||||
|
shiftRegister.send(envoi, false);
|
||||||
|
shiftRegister.confirm();
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
envoi = rtc.r_jour();
|
||||||
|
envoi = (envoi>>4)|((envoi&0x0f)<<4);
|
||||||
|
shiftRegister.send(envoi, false);
|
||||||
|
envoi = 0xff;
|
||||||
|
shiftRegister.send(envoi, false);
|
||||||
|
envoi = rtc.r_year();
|
||||||
|
envoi = (envoi>>4)|((envoi&0x0f)<<4);
|
||||||
|
shiftRegister.send(envoi, false);
|
||||||
|
shiftRegister.confirm();
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
envoi = rtc.r_jour();
|
||||||
|
envoi = (envoi>>4)|((envoi&0x0f)<<4);
|
||||||
|
shiftRegister.send(envoi, false);
|
||||||
|
envoi = rtc.r_moi();
|
||||||
|
envoi = (envoi>>4)|((envoi&0x0f)<<4);
|
||||||
|
shiftRegister.send(envoi, false);
|
||||||
|
envoi = 0xff;
|
||||||
|
shiftRegister.send(envoi, false);
|
||||||
|
shiftRegister.confirm();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
switch(n)
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
envoi = 0xff;
|
||||||
|
shiftRegister.send(envoi, 0);
|
||||||
|
envoi = rtc.r_minute();
|
||||||
|
envoi = (envoi>>4)|((envoi&0x0f)<<4);
|
||||||
|
shiftRegister.send(envoi, 0);
|
||||||
|
envoi = rtc.r_seconde();
|
||||||
|
envoi = (envoi>>4)|((envoi&0x0f)<<4);
|
||||||
|
shiftRegister.send(envoi, 0);
|
||||||
|
shiftRegister.confirm();
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
envoi = rtc.r_heur();
|
||||||
|
envoi = (envoi>>4)|((envoi&0x0f)<<4);
|
||||||
|
shiftRegister.send(envoi, 0);
|
||||||
|
envoi = 0xff;
|
||||||
|
shiftRegister.send(envoi, 0);
|
||||||
|
envoi = rtc.r_seconde();
|
||||||
|
envoi = (envoi>>4)|((envoi&0x0f)<<4);
|
||||||
|
shiftRegister.send(envoi, 0);
|
||||||
|
shiftRegister.confirm();
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
envoi = rtc.r_heur();
|
||||||
|
envoi = (envoi>>4)|((envoi&0x0f)<<4);
|
||||||
|
shiftRegister.send(envoi, 0);
|
||||||
|
envoi = rtc.r_minute();
|
||||||
|
envoi = (envoi>>4)|((envoi&0x0f)<<4);
|
||||||
|
shiftRegister.send(envoi, 0);
|
||||||
|
envoi = 0xff;
|
||||||
|
shiftRegister.send(envoi, 0);
|
||||||
|
shiftRegister.confirm();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void couleur()
|
||||||
|
{
|
||||||
|
usart = USART_Receive();
|
||||||
|
uint8_t mask = LED_BLUE|LED_GREEN|LED_RED; //COnfigure le mask
|
||||||
|
uint8_t curent_couleur;
|
||||||
|
if((PINB & (1<<BP_PLUS)) || usart == 0XC1)
|
||||||
|
{
|
||||||
|
for(int b = 0 ; b < tmps_max_bp_plus_moins && (PINB & (1<<BP_PLUS)); b++)
|
||||||
|
_delay_ms(1);
|
||||||
|
if(bcm_rgb_actif == 0 && (PINB&mask) == 0 && 1==2)
|
||||||
|
{
|
||||||
|
bcm_rgb_actif = 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
bcm_rgb_actif = 0;
|
||||||
|
curent_couleur = ((PINB & mask)+(LED_RED));
|
||||||
|
if(curent_couleur > mask)
|
||||||
|
curent_couleur = 0x00;
|
||||||
|
else
|
||||||
|
bcm_rgb_actif = 0;
|
||||||
|
if (curent_couleur&LED_BLUE)
|
||||||
|
PORTB |= LED_BLUE;
|
||||||
|
else
|
||||||
|
PORTB &= LOW(LED_BLUE);
|
||||||
|
if(curent_couleur&LED_GREEN)
|
||||||
|
PORTB |= LED_GREEN;
|
||||||
|
else
|
||||||
|
PORTB &= LOW(LED_GREEN);
|
||||||
|
if(curent_couleur & LED_RED)
|
||||||
|
PORTB |= LED_RED;
|
||||||
|
else
|
||||||
|
PORTB &= LOW(LED_RED);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if((PINB & (1<<BP_MOINS)) || usart == 0XC0)
|
||||||
|
{
|
||||||
|
for(int b = 0 ; b < tmps_max_bp_plus_moins && (PINB & (1<<BP_MOINS)) ; b++)
|
||||||
|
_delay_ms(1);
|
||||||
|
if(bcm_rgb_actif == 0 && (PINB&mask) == 0 && 1==2)
|
||||||
|
{
|
||||||
|
bcm_rgb_actif = 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
bcm_rgb_actif = 0;
|
||||||
|
if(PINB & mask == 0)
|
||||||
|
curent_couleur = mask;
|
||||||
|
curent_couleur = ((PINB & mask)-(LED_RED));
|
||||||
|
if (curent_couleur&LED_BLUE)
|
||||||
|
PORTB |= LED_BLUE;
|
||||||
|
else
|
||||||
|
PORTB &= LOW(LED_BLUE);
|
||||||
|
if(curent_couleur&LED_GREEN)
|
||||||
|
PORTB |= LED_GREEN;
|
||||||
|
else
|
||||||
|
PORTB &= LOW(LED_GREEN);
|
||||||
|
if(curent_couleur & LED_RED)
|
||||||
|
PORTB |= LED_RED;
|
||||||
|
else
|
||||||
|
PORTB &= LOW(LED_RED);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void bouton() //Gestion des BP pour configurer l'heur
|
||||||
|
{
|
||||||
|
if (PINB & (1<<BP_CONF)) //Si le BP Conf est activé
|
||||||
|
{
|
||||||
|
while(PINB & (1<<BP_CONF)) //Attente que le BP sois relaché
|
||||||
|
_delay_ms(1);
|
||||||
|
int pousse = 1;
|
||||||
|
for( int a = 0 ; pousse <= 6 ; a++) //Boucle infinie tant qu'on a pas poussé 6 fois sur le bp et init de la variable pour clignotement
|
||||||
|
{
|
||||||
|
if(a >= (tmps_clignotement*2))
|
||||||
|
a = 0;
|
||||||
|
if (PINB & (1<<BP_CONF))
|
||||||
|
{
|
||||||
|
while(PINB & (1<<BP_CONF))
|
||||||
|
_delay_ms(1);
|
||||||
|
pousse++;
|
||||||
|
}
|
||||||
|
switch(pousse)
|
||||||
|
{
|
||||||
|
case 1: //Config des secondes
|
||||||
|
if(a > tmps_clignotement) //Clignotement
|
||||||
|
clignotement(SR_SECONDE, false);
|
||||||
|
else
|
||||||
|
affichage_heur();
|
||||||
|
if((PINB & (1<<BP_PLUS)) || PINB & (1<<BP_MOINS))//Mise à 00 si + ou - est actionné
|
||||||
|
rtc.w_seconde(0x00);
|
||||||
|
break;
|
||||||
|
case 2: //Config des minutes
|
||||||
|
if(a > tmps_clignotement) //Clignotement
|
||||||
|
clignotement(SR_MINUTE, false);
|
||||||
|
else
|
||||||
|
affichage_heur();
|
||||||
|
if(PINB & (1<<BP_PLUS))
|
||||||
|
{
|
||||||
|
for(int b = 0 ; b < tmps_max_bp_plus_moins && (PINB & (1<<BP_PLUS)); b++)
|
||||||
|
_delay_ms(1);
|
||||||
|
uint8_t curent_minute = rtc.r_minute();//Lecture du temps DS1307
|
||||||
|
if((curent_minute&0x0F) == 0x09) // Si 1e digit = 9
|
||||||
|
curent_minute = (((curent_minute&0xF0)>>4)+1)<<4; //Incrémente de 10
|
||||||
|
else
|
||||||
|
curent_minute++; //Incrémente de 1
|
||||||
|
if(curent_minute >= 0x60) //Si supérieur à 60 retour à 00 /!\ Pas d'incrémentation de l'heur !!
|
||||||
|
curent_minute = 0x00;
|
||||||
|
rtc.w_minute(curent_minute); //Met à jour le DS1307
|
||||||
|
}
|
||||||
|
else if(PINB & (1<<BP_MOINS))
|
||||||
|
{
|
||||||
|
for(int b = 0 ; b < tmps_max_bp_plus_moins && (PINB & (1<<BP_MOINS)) ; b++)
|
||||||
|
_delay_ms(1);
|
||||||
|
uint8_t curent_minute = rtc.r_minute();//Lecture du temps DS1307
|
||||||
|
if((curent_minute&0x0F) == 0x00) // Si 1e digit = 0
|
||||||
|
curent_minute = ((((curent_minute&0xF0)>>4)-1)<<4)|0x09; //Décrémente de 10
|
||||||
|
else if(curent_minute == 0x00) // Bug en simulation ..........???????????~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
curent_minute = 0x59;
|
||||||
|
else
|
||||||
|
curent_minute--; //Décrémente de 1
|
||||||
|
if(curent_minute > 0x60)
|
||||||
|
curent_minute = 0x59;
|
||||||
|
rtc.w_minute(curent_minute); //Met à jour le DS1307
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case 3: //Config de l'heur
|
||||||
|
if(a > tmps_clignotement) //Clignotement toute les
|
||||||
|
clignotement(SR_HEUR, false);
|
||||||
|
else
|
||||||
|
affichage_heur();
|
||||||
|
if(PINB & (1<<BP_PLUS))
|
||||||
|
{
|
||||||
|
for(int b = 0 ; b < tmps_max_bp_plus_moins && (PINB & (1<<BP_PLUS)); b++)
|
||||||
|
_delay_ms(1);
|
||||||
|
uint8_t curent_heur = rtc.r_heur(); //Lecture du temps DS1307
|
||||||
|
if((curent_heur&0x0F) == 0x09) // Si 1e digit = 9
|
||||||
|
curent_heur = (((curent_heur&0xF0)>>4)+1)<<4; //Incrémente de 10
|
||||||
|
else if(curent_heur >= 0x23) //Si arrivé à 24H retour à 00H, /!\ Attention n'incrémente pas la date !!
|
||||||
|
curent_heur = 0x00;
|
||||||
|
else
|
||||||
|
curent_heur = ((curent_heur&0x0F)+1)|(curent_heur&0xF0); //Incrémente de 1
|
||||||
|
rtc.w_heur(curent_heur, 0); //Met à jour le DS1307
|
||||||
|
}
|
||||||
|
else if(PINB & (1<<BP_MOINS))
|
||||||
|
{
|
||||||
|
for(int b = 0 ; b < tmps_max_bp_plus_moins && (PINB & (1<<BP_MOINS)); b++)
|
||||||
|
_delay_ms(1);
|
||||||
|
uint8_t curent_heur = rtc.r_heur(); //Lecture du temps DS1307
|
||||||
|
if(curent_heur == 0x00) //Si arrive à 00H, /!\ Attention ne décrémente pas la date !!
|
||||||
|
curent_heur = 0x23; //Retour à 24H
|
||||||
|
else if((curent_heur&0x0F) == 0) // Si 1e digit = 0
|
||||||
|
curent_heur = ((((curent_heur&0xF0)>>4)-1)<<4)|0x09; //Décrémente de 10
|
||||||
|
else
|
||||||
|
curent_heur = ((curent_heur&0x0f)-1)|(curent_heur&0xf0); //Décrémente de 1
|
||||||
|
rtc.w_heur(curent_heur, 0); //Met à jour le DS1307
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 4: //Config du jour
|
||||||
|
PORTC &= LOW(1<<SR_HEUR);
|
||||||
|
if(a > tmps_clignotement) //Clignotement
|
||||||
|
clignotement(SR_JOURS, true);
|
||||||
|
else
|
||||||
|
affichage_date();
|
||||||
|
if(PINB & (1<<BP_PLUS))
|
||||||
|
{
|
||||||
|
for(int b = 0 ; b < tmps_max_bp_plus_moins && (PINB & (1<<BP_PLUS)); b++)
|
||||||
|
_delay_ms(1);
|
||||||
|
uint8_t curent_day = rtc.r_jour(); //Lecture du temps DS1307
|
||||||
|
if((curent_day&0x0F) == 0x09) // Si 1e digit = 9
|
||||||
|
curent_day = (((curent_day&0xF0)>>4)+1)<<4; //Incrémente de 10
|
||||||
|
else
|
||||||
|
curent_day = ((curent_day&0x0F)+1)|(curent_day&0xF0); //Incrémente de 1
|
||||||
|
if(curent_day > 0x31)
|
||||||
|
curent_day = 0x00;
|
||||||
|
rtc.w_date(curent_day); //Met à jour le DS1307
|
||||||
|
}
|
||||||
|
else if(PINB & (1<<BP_MOINS))
|
||||||
|
{
|
||||||
|
for(int b = 0 ; b < tmps_max_bp_plus_moins && (PINB & 1<<BP_MOINS); b++)
|
||||||
|
_delay_ms(1);
|
||||||
|
uint8_t curent_heur = rtc.r_jour(); //Lecture du temps DS1307
|
||||||
|
if((curent_heur&0x0F) == 0) // Si 1e digit = 0
|
||||||
|
curent_heur = ((((curent_heur&0xF0)>>4)-1)<<4)|0x09; //Décrémente de 10
|
||||||
|
else
|
||||||
|
curent_heur = ((curent_heur&0x0F)-1)|(curent_heur&0xF0); //Décrémente de 1
|
||||||
|
if(curent_heur == 0x00)
|
||||||
|
curent_heur = 0x31;
|
||||||
|
rtc.w_date(curent_heur); //Met à jour le DS1307
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 5: //config du mois
|
||||||
|
if(a > tmps_clignotement) //Clignotement
|
||||||
|
clignotement(SR_MOIS, true);
|
||||||
|
else
|
||||||
|
affichage_date();
|
||||||
|
if(PINB & (1<<BP_PLUS))
|
||||||
|
{
|
||||||
|
for(int b = 0 ; b < tmps_max_bp_plus_moins && (PINB & (1<<BP_PLUS)); b++)
|
||||||
|
_delay_ms(1);
|
||||||
|
uint8_t curent_months = rtc.r_moi();//Lecture du temps DS1307
|
||||||
|
if((curent_months&0x0F) == 0x09) // Si 1e digit = 9
|
||||||
|
curent_months = (((curent_months&0xF0)>>4)+1)<<4; //Incrémente de 10
|
||||||
|
else
|
||||||
|
curent_months = ((curent_months&0x0F)+1)|(curent_months&0xF0); //Incrémente de 1
|
||||||
|
if(curent_months > 0x12)
|
||||||
|
curent_months = 0x01;
|
||||||
|
rtc.w_moi(curent_months); //Met à jour le DS1307
|
||||||
|
}
|
||||||
|
else if(PINB & (1<<BP_MOINS))
|
||||||
|
{
|
||||||
|
for(int b = 0 ; b < tmps_max_bp_plus_moins && (PINB & 1<<BP_MOINS); b++)
|
||||||
|
_delay_ms(1);
|
||||||
|
uint8_t curent_months = rtc.r_moi();//Lecture du temps DS1307
|
||||||
|
if((curent_months&0x0F) == 0) // Si 1e digit = 0
|
||||||
|
curent_months = ((((curent_months&0xF0)>>4)-1)<<4)|0x09; //Décrémente de 10
|
||||||
|
else
|
||||||
|
curent_months = ((curent_months&0x0F)-1)|(curent_months&0xF0); //Décrémente de 1
|
||||||
|
if(curent_months < 0x01)
|
||||||
|
curent_months = 0x12;
|
||||||
|
rtc.w_moi(curent_months); //Met à jour le DS1307
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 6: //Config de l'année
|
||||||
|
if(a > tmps_clignotement) //Clignotement
|
||||||
|
clignotement(SR_ANNEE, true);
|
||||||
|
else
|
||||||
|
affichage_date();
|
||||||
|
if(PINB & (1<<BP_PLUS))
|
||||||
|
{
|
||||||
|
for(int b = 0 ; b < tmps_max_bp_plus_moins && (PINB & (1<<BP_PLUS)); b++)
|
||||||
|
_delay_ms(1);
|
||||||
|
uint8_t curent_year = rtc.r_year();//Lecture du temps DS1307
|
||||||
|
if((curent_year&0x0F) == 0x09) // Si 1e digit = 9
|
||||||
|
curent_year = (((curent_year&0xF0)>>4)+1)<<4; //Incrémente de 10
|
||||||
|
else
|
||||||
|
curent_year = ((curent_year&0x0F)+1)|(curent_year&0xF0); //Incrémente de 1
|
||||||
|
if(curent_year > 0x99)
|
||||||
|
curent_year = 0x00;
|
||||||
|
rtc.w_year(curent_year); //Met à jour le DS1307
|
||||||
|
}
|
||||||
|
else if(PINB & (1<<BP_MOINS))
|
||||||
|
{
|
||||||
|
for(int b = 0 ; b < tmps_max_bp_plus_moins && (PINB & 1<<BP_MOINS); b++)
|
||||||
|
_delay_ms(1);
|
||||||
|
uint8_t curent_year = rtc.r_year();//Lecture du temps DS1307
|
||||||
|
if((curent_year&0x0F) == 0 && curent_year != 0x00) // Si 1e digit = 0
|
||||||
|
curent_year = ((((curent_year&0xF0)>>4)-1)<<4)|0x09; //Décrémente de 10
|
||||||
|
else if (curent_year != 0x00)
|
||||||
|
curent_year = ((curent_year&0x0F)-1)|(curent_year&0xF0); //Décrémente de 1
|
||||||
|
else
|
||||||
|
curent_year = 0x99;
|
||||||
|
rtc.w_year(curent_year); //Met à jour le DS1307
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
PORTC &= LOW(1<<SR_SECONDE|1<<SR_MINUTE|1<<SR_HEUR); //Active tous les registre à décalage
|
||||||
|
_delay_ms(1); //Attente de 1ms pour le comptage de la variable a
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void uart_ds1307()
|
||||||
|
{
|
||||||
|
if(usart == 0xCF)
|
||||||
|
{
|
||||||
|
bool cfg = true;
|
||||||
|
for(int a = 0; cfg ; a++)
|
||||||
|
{
|
||||||
|
usart = USART_Receive();
|
||||||
|
if(a>100)
|
||||||
|
a=0;
|
||||||
|
if(usart == 0xC1)
|
||||||
|
{
|
||||||
|
usart = USART_Receive();
|
||||||
|
for(int b = 0; !usart ; b++)
|
||||||
|
{
|
||||||
|
usart = USART_Receive();
|
||||||
|
affichage_heur();
|
||||||
|
if(b>100)
|
||||||
|
b=0;
|
||||||
|
_delay_ms(1);
|
||||||
|
}
|
||||||
|
rtc.w_seconde(int_to_bcd(usart));
|
||||||
|
USART_Transmit(0xC1);
|
||||||
|
}
|
||||||
|
if(usart == 0xC2)
|
||||||
|
{
|
||||||
|
usart = USART_Receive();
|
||||||
|
for(int b = 0; !usart ; b++)
|
||||||
|
{
|
||||||
|
usart = USART_Receive();
|
||||||
|
affichage_heur();
|
||||||
|
if(b>100)
|
||||||
|
b=0;
|
||||||
|
_delay_ms(1);
|
||||||
|
}
|
||||||
|
rtc.w_minute(int_to_bcd(usart));
|
||||||
|
USART_Transmit(0xC2);
|
||||||
|
}
|
||||||
|
if(usart == 0xC3)
|
||||||
|
{
|
||||||
|
usart = USART_Receive();
|
||||||
|
for(int b = 0; !usart ; b++)
|
||||||
|
{
|
||||||
|
usart = USART_Receive();
|
||||||
|
affichage_heur();
|
||||||
|
if(b>100)
|
||||||
|
b=0;
|
||||||
|
_delay_ms(1);
|
||||||
|
}
|
||||||
|
rtc.w_heur(int_to_bcd(usart), 0);
|
||||||
|
USART_Transmit(0xC3);
|
||||||
|
}
|
||||||
|
if(usart == 0xC4)
|
||||||
|
{
|
||||||
|
cfg =false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,26 @@
|
||||||
|
/*
|
||||||
|
* fonction.h
|
||||||
|
*
|
||||||
|
* Created: 22/12/2013 15:47:39
|
||||||
|
* Author: Adrien
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef FONCTION_H_
|
||||||
|
#define FONCTION_H_
|
||||||
|
|
||||||
|
void init_interupt();
|
||||||
|
void first();
|
||||||
|
void setup_pins();
|
||||||
|
void affichage_heur();
|
||||||
|
void affichage_date();
|
||||||
|
void clignotement(int n, bool date);
|
||||||
|
void routine_affichage();
|
||||||
|
void couleur();
|
||||||
|
void bouton();
|
||||||
|
void uart_ds1307();
|
||||||
|
void affichage_shutdwon();
|
||||||
|
int int_to_bcd(int val);
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* FONCTION_H_ */
|
|
@ -0,0 +1,138 @@
|
||||||
|
/*
|
||||||
|
* DCF77.cpp
|
||||||
|
*
|
||||||
|
* Created: 19/12/2013 14:06:30
|
||||||
|
* Author: Adrien
|
||||||
|
*/
|
||||||
|
#include "DCF77.h"
|
||||||
|
#include "timer.h"
|
||||||
|
#include <avr/io.h>
|
||||||
|
#include <avr/interrupt.h>
|
||||||
|
|
||||||
|
volatile uint8_t dcf77_bits_capture[6]; //Tableau comportent les bits décoder (6 * 8bits)
|
||||||
|
volatile unsigned long int time_low = 0;
|
||||||
|
volatile unsigned long int time_high = 0;
|
||||||
|
volatile bool dcf77_flag_start = 0; // Drapeau qui permet de savoir si on peut commencé la capture
|
||||||
|
volatile bool dcf77_flag_decode = 0; // " " " " " " " " " le décodage
|
||||||
|
volatile int dcf77_bit_count = 0; // Compte le nombre de bit déja encodé
|
||||||
|
void dcf77::start_capture()
|
||||||
|
{
|
||||||
|
timer1_init();
|
||||||
|
dcf77_flag_start = 0;
|
||||||
|
DDRD |= 1<<PIND2;
|
||||||
|
EICRA |= 1<<ISC00; //Interuption a chaque changement d'état de INT0
|
||||||
|
EIMSK |= 1<<INT0; //Activation de l'interuption INT0
|
||||||
|
sei();
|
||||||
|
}
|
||||||
|
void dcf77::stop_capture()
|
||||||
|
{
|
||||||
|
EIMSK &= ~(1<<INT0);
|
||||||
|
dcf77_flag_start = 0;
|
||||||
|
dcf77_flag_decode = 0;
|
||||||
|
dcf77_bit_count = 0;
|
||||||
|
}
|
||||||
|
bool dcf77::decode()
|
||||||
|
{
|
||||||
|
int decodage_bit_n = 0;//Variable pour voir ou est le decodage des bits
|
||||||
|
int place_bit = 0;//Pour savoir ou est placé le bit
|
||||||
|
for (int z = 0 ; z <= 6 ; z++) //Passage au crible des tableau
|
||||||
|
{
|
||||||
|
int place_bit = 0;//Pour savoir ou est placé le bit
|
||||||
|
for(int y= 8 ; y >= 0 ; y--)
|
||||||
|
{
|
||||||
|
if(z == 0 && !(dcf77_bits_capture[0] >> 8)) //Bit 00 TOUJOURS à 0
|
||||||
|
{
|
||||||
|
if(decodage_bit_n <= 19) // Bit 00 à 19 ne nous interesse pas
|
||||||
|
{}
|
||||||
|
else if(decodage_bit_n <= 28) //Partie minutes
|
||||||
|
{
|
||||||
|
if((dcf77_bits_capture[z]>>y) && decodage_bit_n == 20) //Bit 20 TOUJOURS à 1
|
||||||
|
{}
|
||||||
|
else
|
||||||
|
return false;
|
||||||
|
if (decodage_bit_n > 20 && decodage_bit_n <= 28)//Arrivé a la partie minute
|
||||||
|
{
|
||||||
|
if(decodage_bit_n == 21)
|
||||||
|
place_bit = 0;
|
||||||
|
if(decodage_bit_n != 28)
|
||||||
|
{
|
||||||
|
Minute |= ((dcf77_bits_capture[z]>>y) & 0x01) << place_bit;
|
||||||
|
place_bit++;
|
||||||
|
}
|
||||||
|
else if((Minute&0x1) && !((dcf77_bits_capture[z]>>y)&0x01) || !(Minute&0x1) && ((dcf77_bits_capture[z]>>y)&0x01))
|
||||||
|
{}
|
||||||
|
else
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return false;
|
||||||
|
decodage_bit_n++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ISR(INT0_vect)
|
||||||
|
{
|
||||||
|
if(PORTD&(1<<PIND2))//Si c'est au niveau haut
|
||||||
|
{
|
||||||
|
time_high = millis(); //Démarage du comptage du temps haut
|
||||||
|
time_low = millis() - time_low; //Calcul du Temps bas
|
||||||
|
if(dcf77_flag_start && dcf77_bit_count <= 59) //Démarage de la démodulation si toute les condition sont OK
|
||||||
|
{
|
||||||
|
dcf77_flag_decode = 0; //Anonce que le decodage ne peut pas être éfectué
|
||||||
|
int bit;
|
||||||
|
if(time_low <= 100 && time_low != 0) //Si le temp bas est <= 100ms le bit est à 0
|
||||||
|
bit = 0;
|
||||||
|
else if(time_low <= 200 && time_low != 0) //Si le temp bas est <= 200ms le bit est à 1
|
||||||
|
bit = 1;
|
||||||
|
else //ereur
|
||||||
|
{
|
||||||
|
dcf77_flag_start = 0;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if(dcf77_bit_count < 8)
|
||||||
|
{
|
||||||
|
dcf77_bits_capture[0] = (dcf77_bits_capture[0]<<1) | bit;
|
||||||
|
}
|
||||||
|
else if (dcf77_bit_count < 16)
|
||||||
|
{
|
||||||
|
dcf77_bits_capture[1] = (dcf77_bits_capture[1]<<1) | bit;
|
||||||
|
}
|
||||||
|
else if (dcf77_bit_count < 24)
|
||||||
|
{
|
||||||
|
dcf77_bits_capture[2] = (dcf77_bits_capture[2]<<1) | bit;
|
||||||
|
}
|
||||||
|
else if (dcf77_bit_count < 32)
|
||||||
|
{
|
||||||
|
dcf77_bits_capture[3] = (dcf77_bits_capture[3]<<1) | bit;
|
||||||
|
}
|
||||||
|
else if (dcf77_bit_count < 40)
|
||||||
|
{
|
||||||
|
dcf77_bits_capture[4] = (dcf77_bits_capture[4]<<1) | bit;
|
||||||
|
}
|
||||||
|
else if (dcf77_bit_count < 48)
|
||||||
|
{
|
||||||
|
dcf77_bits_capture[5] = (dcf77_bits_capture[5]<<1) | bit;
|
||||||
|
}
|
||||||
|
else if (dcf77_bit_count < 56)
|
||||||
|
{
|
||||||
|
dcf77_bits_capture[6] = (dcf77_bits_capture[6]<<1) | bit;
|
||||||
|
}
|
||||||
|
dcf77_bit_count++;
|
||||||
|
}
|
||||||
|
else if(dcf77_bit_count > 59)//Après le décodage 60e bit
|
||||||
|
{
|
||||||
|
dcf77_flag_start = 0; //Remise a zero du drapeau de démarage
|
||||||
|
dcf77_flag_decode = 1; //Mise a un du drapeau decode
|
||||||
|
dcf77_bit_count = 0; //Mise à zero le nombre de bit decodé
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else //Passage au niveau bas
|
||||||
|
{
|
||||||
|
time_high = millis() - time_high; //Calcul du temps Haut
|
||||||
|
time_low = millis(); //Démarage du comptage du temps bas
|
||||||
|
if(time_high > 800) //Si le Temps bas est > à 800, début de la transmition
|
||||||
|
dcf77_flag_start = 1;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,39 @@
|
||||||
|
/*
|
||||||
|
* DCF77.h
|
||||||
|
*
|
||||||
|
* Created: 22/12/2013 15:47:27
|
||||||
|
* Author: Adrien
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef DCF77_H_
|
||||||
|
#define DCF77_H_
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
class dcf77
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
uint8_t dcf77_bits[6];
|
||||||
|
uint8_t Minute = 0x00;
|
||||||
|
uint8_t Heur = 0x00;
|
||||||
|
uint8_t Daymonth = 0x00;
|
||||||
|
uint8_t Dayweek = 0x00;
|
||||||
|
uint8_t Month = 0x00;
|
||||||
|
uint8_t Year = 0x00;
|
||||||
|
bool dcf77_flag_send_decode;
|
||||||
|
bool decode();
|
||||||
|
public:
|
||||||
|
void start_capture();
|
||||||
|
void stop_capture();
|
||||||
|
bool ready();
|
||||||
|
uint8_t minutes();
|
||||||
|
uint8_t heure();
|
||||||
|
uint8_t day_month();
|
||||||
|
uint8_t day_week();
|
||||||
|
uint8_t month();
|
||||||
|
uint8_t year();
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* DCF77_H_ */
|
|
@ -0,0 +1,211 @@
|
||||||
|
/*
|
||||||
|
* DCF77.cpp
|
||||||
|
*
|
||||||
|
* Created: 19/12/2013 14:06:30
|
||||||
|
* Author: Adrien
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "DCF77.h"
|
||||||
|
#include "timer.h"
|
||||||
|
#include <avr/io.h>
|
||||||
|
#include <avr/interrupt.h>
|
||||||
|
#include <util/atomic.h>
|
||||||
|
#include <util/delay.h>
|
||||||
|
#include "LCD.h"
|
||||||
|
|
||||||
|
#define LCD_DEBUG false
|
||||||
|
#define time_low_dcf77_min_0 80
|
||||||
|
#define time_low_dcf77_max_0 120
|
||||||
|
#define time_low_dcf77_min_1 180
|
||||||
|
#define time_low_dcf77_max_1 220
|
||||||
|
#define time_no_modulation 1000
|
||||||
|
#define en_attente_de_signal 0
|
||||||
|
#define decodage_en_cours 1
|
||||||
|
#define decodage_effectuer 2
|
||||||
|
#define decodage_erreur 3
|
||||||
|
#define temps_haut_min 500
|
||||||
|
#define temps_bas_min 20
|
||||||
|
|
||||||
|
|
||||||
|
dcf77 atc_;
|
||||||
|
//#if LCD_DEBUG
|
||||||
|
LCD lcd1;
|
||||||
|
//#endif
|
||||||
|
|
||||||
|
void dcf77::start_capture()
|
||||||
|
{
|
||||||
|
DDRB |= 1<<PINB5;
|
||||||
|
timer1_init();
|
||||||
|
dcf77_flag_start = 0;
|
||||||
|
DDRD &= ~(1<<PIND2); //PIND2 en entrée
|
||||||
|
EICRA = 1<<ISC00; //Interuption a chaque changement d'état de INT0
|
||||||
|
EIMSK |= 1<<INT0; //Activation de l'interuption INT0
|
||||||
|
sei(); //Activation des interuption en générale
|
||||||
|
}
|
||||||
|
void dcf77::stop_capture()
|
||||||
|
{
|
||||||
|
EIMSK &= ~(1<<INT0); //Désactive l'interuption
|
||||||
|
dcf77_flag_start = 0;
|
||||||
|
dcf77_bit_count = 0;
|
||||||
|
cli();
|
||||||
|
}
|
||||||
|
void dcf77::hi()
|
||||||
|
{
|
||||||
|
|
||||||
|
time_check = millis() - time_low_dcf77;
|
||||||
|
if( time_check >= temps_bas_min || time_low_dcf77 == 0)
|
||||||
|
{
|
||||||
|
PORTB |= 1<<PINB5; //Led de Debug à 1
|
||||||
|
parasite_flag = false;
|
||||||
|
time_high_dcf77 = millis(); //Démarage du comptage du temps haut
|
||||||
|
time_low_dcf77 = millis() - time_low_dcf77; //Calcul du Temps bas
|
||||||
|
if(dcf77_flag_start && dcf77_bit_count <= 58) //Démarage de la démodulation si toute les condition sont OK
|
||||||
|
{
|
||||||
|
dcf77_status = decodage_en_cours; //En cours de décodage
|
||||||
|
int bit;
|
||||||
|
if(time_low_dcf77 >= time_low_dcf77_min_0 && time_low_dcf77 <= time_low_dcf77_max_0) //Si le temp bas est <= 100ms le bit est à 0
|
||||||
|
bit = 0;
|
||||||
|
else if(time_low_dcf77 >= time_low_dcf77_min_1 && time_low_dcf77 <= time_low_dcf77_max_1) //Si le temp bas est <= 200ms le bit est à 1
|
||||||
|
bit = 1;
|
||||||
|
else //ereur
|
||||||
|
{
|
||||||
|
//dcf77_bit_count = 0;
|
||||||
|
//dcf77_flag_start = 0;
|
||||||
|
//return;
|
||||||
|
}
|
||||||
|
if(dcf77::decode(bit))
|
||||||
|
{
|
||||||
|
dcf77_bit_count = 0;
|
||||||
|
dcf77_flag_start = 0;
|
||||||
|
//return;
|
||||||
|
}
|
||||||
|
dcf77_bit_count++;
|
||||||
|
}
|
||||||
|
else if(dcf77_bit_count > 58)//Après le décodage 60e bit
|
||||||
|
{
|
||||||
|
//atc_.stop_capture(); //Arêt de la capture
|
||||||
|
dcf77_flag_start = 0; //Remise a zero du drapeau de démarage
|
||||||
|
dcf77_bit_count = 0; //Mise à zero le nombre de bit decodé
|
||||||
|
dcf77_status = decodage_effectuer;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// lcd1.set_cursor(5, 1);
|
||||||
|
// lcd1.print_text("Wt S.F.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
parasite_flag = true;
|
||||||
|
}
|
||||||
|
void dcf77::lo()
|
||||||
|
{
|
||||||
|
|
||||||
|
time_check = millis() - time_high_dcf77;
|
||||||
|
if( time_check >= temps_haut_min || time_high_dcf77 == 0)
|
||||||
|
{
|
||||||
|
PORTB &= ~(1<<PINB5);//Led de debug à 0
|
||||||
|
parasite_flag = false;
|
||||||
|
time_high_dcf77 = millis() - time_high_dcf77; //Calcul du temps Haut
|
||||||
|
time_low_dcf77 = millis(); //Démarage du comptage du temps bas
|
||||||
|
if(time_high_dcf77 > time_no_modulation | dcf77_flag_start) //Si le Temps bas est > à 800, début de la transmition
|
||||||
|
{
|
||||||
|
dcf77_flag_start = 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
dcf77_status = en_attente_de_signal;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
parasite_flag = true;
|
||||||
|
}
|
||||||
|
bool dcf77::decode(uint8_t bit)
|
||||||
|
{
|
||||||
|
bool flag_no_error = true;
|
||||||
|
if(bit_dcode_n == 0 && !bit) //Bit 00 Toujours à 0 si le contraire erreur
|
||||||
|
flag_no_error = false;
|
||||||
|
else if(bit_dcode_n >= 1 && bit_dcode_n <= 19); //Bits 01 à 19 ne nous interesse pas
|
||||||
|
else if (bit_dcode_n == 20 && !bit) //Bit 20 Toujours à 1
|
||||||
|
flag_no_error = false;
|
||||||
|
else if (bit_dcode_n >= 21 && bit_dcode_n <= 27) //Bit 21 à 27 = Minute
|
||||||
|
{
|
||||||
|
if(bit)
|
||||||
|
dcf77_Minute |= 1 << (bit_dcode_n-21);
|
||||||
|
else
|
||||||
|
dcf77_Minute &= ~(1 << (bit_dcode_n-21));
|
||||||
|
}
|
||||||
|
else if(bit_dcode_n == 28 && (dcf77_Minute&0x01) && !bit || bit_dcode_n == 28 && !(dcf77_Minute&0x01) && bit) //Bit de parité des minutes
|
||||||
|
flag_no_error = false;
|
||||||
|
else if(bit_dcode_n >= 29 && bit_dcode_n <= 34) //Bit 29 à 34 = Heure
|
||||||
|
{
|
||||||
|
if(bit)
|
||||||
|
dcf77_Heur |= 1 << (bit_dcode_n-29);
|
||||||
|
else
|
||||||
|
dcf77_Heur &= ~(1 << (bit_dcode_n-29));
|
||||||
|
}
|
||||||
|
else if(bit_dcode_n == 35 && (dcf77_Heur&0x01) && !bit || bit_dcode_n == 35 && !(dcf77_Heur&0x01) && bit) //Bit de parité des Heure
|
||||||
|
flag_no_error = false;
|
||||||
|
else if(bit_dcode_n >= 36 && bit_dcode_n <= 41) //Bit 36 à 41 = Jours du moi
|
||||||
|
{
|
||||||
|
if(bit)
|
||||||
|
dcf77_Daymonth |= 1 << (bit_dcode_n-36);
|
||||||
|
else
|
||||||
|
dcf77_Daymonth &= ~(1 << (bit_dcode_n-36));
|
||||||
|
}
|
||||||
|
else if(bit_dcode_n >= 42 && bit_dcode_n <= 44); //Bit 42 à 44 = Jours de la semaine, ne nous interesse pas
|
||||||
|
else if(bit_dcode_n >= 45 && bit_dcode_n <= 49) //Bit 45 à 49 = Mois
|
||||||
|
{
|
||||||
|
if(bit)
|
||||||
|
dcf77_Month |= 1 << (bit_dcode_n-45);
|
||||||
|
else
|
||||||
|
dcf77_Month &= ~(1 << (bit_dcode_n-45));
|
||||||
|
}
|
||||||
|
else if(bit_dcode_n>= 50 && bit_dcode_n <= 57) //Bit 50 à 57 = Année
|
||||||
|
{
|
||||||
|
if(bit)
|
||||||
|
dcf77_Year |= 1 << (bit_dcode_n-50);
|
||||||
|
else
|
||||||
|
dcf77_Year &= ~(1 << (bit_dcode_n-50));
|
||||||
|
}
|
||||||
|
else if(bit_dcode_n == 58 && (dcf77_Month&0x01) && !bit || bit_dcode_n && !(dcf77_Month&0x01) && bit);//Parity
|
||||||
|
bit_dcode_n++;
|
||||||
|
return flag_no_error;
|
||||||
|
}
|
||||||
|
int dcf77::status()
|
||||||
|
{
|
||||||
|
return dcf77_status;
|
||||||
|
}
|
||||||
|
uint8_t dcf77::minutes()
|
||||||
|
{
|
||||||
|
return dcf77_Minute;
|
||||||
|
}
|
||||||
|
uint8_t dcf77::heure()
|
||||||
|
{
|
||||||
|
return dcf77_Heur;
|
||||||
|
}
|
||||||
|
uint8_t dcf77::month()
|
||||||
|
{
|
||||||
|
return dcf77_Month;
|
||||||
|
}
|
||||||
|
uint8_t dcf77::day_month()
|
||||||
|
{
|
||||||
|
return dcf77_Daymonth;
|
||||||
|
}
|
||||||
|
uint8_t dcf77::year()
|
||||||
|
{
|
||||||
|
return dcf77_Year;
|
||||||
|
}
|
||||||
|
ISR(INT0_vect)//Vecteur d'interuption INT0
|
||||||
|
{
|
||||||
|
ATOMIC_BLOCK(ATOMIC_FORCEON)
|
||||||
|
{
|
||||||
|
if(((PIND&(1<<PIND2))>>PIND2))//Si c'est au niveau haut
|
||||||
|
{
|
||||||
|
atc_.hi();
|
||||||
|
}
|
||||||
|
else //Passage au niveau bas
|
||||||
|
{
|
||||||
|
atc_.lo();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,211 @@
|
||||||
|
/*
|
||||||
|
* DCF77.cpp
|
||||||
|
*
|
||||||
|
* Created: 19/12/2013 14:06:30
|
||||||
|
* Author: Adrien
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "DCF77.h"
|
||||||
|
#include "timer.h"
|
||||||
|
#include <avr/io.h>
|
||||||
|
#include <avr/interrupt.h>
|
||||||
|
#include <util/atomic.h>
|
||||||
|
#include <util/delay.h>
|
||||||
|
#include "LCD.h"
|
||||||
|
|
||||||
|
#define LCD_DEBUG false
|
||||||
|
#define time_low_dcf77_min_0 80
|
||||||
|
#define time_low_dcf77_max_0 120
|
||||||
|
#define time_low_dcf77_min_1 180
|
||||||
|
#define time_low_dcf77_max_1 220
|
||||||
|
#define time_no_modulation 1000
|
||||||
|
#define en_attente_de_signal 0
|
||||||
|
#define decodage_en_cours 1
|
||||||
|
#define decodage_effectuer 2
|
||||||
|
#define decodage_erreur 3
|
||||||
|
#define temps_haut_min 500
|
||||||
|
#define temps_bas_min 20
|
||||||
|
|
||||||
|
|
||||||
|
dcf77 atc_;
|
||||||
|
//#if LCD_DEBUG
|
||||||
|
LCD lcd1;
|
||||||
|
//#endif
|
||||||
|
|
||||||
|
void dcf77::start_capture()
|
||||||
|
{
|
||||||
|
DDRB |= 1<<PINB5;
|
||||||
|
timer1_init();
|
||||||
|
dcf77_flag_start = 0;
|
||||||
|
DDRD &= ~(1<<PIND2); //PIND2 en entrée
|
||||||
|
EICRA = 1<<ISC00; //Interuption a chaque changement d'état de INT0
|
||||||
|
EIMSK |= 1<<INT0; //Activation de l'interuption INT0
|
||||||
|
sei(); //Activation des interuption en générale
|
||||||
|
}
|
||||||
|
void dcf77::stop_capture()
|
||||||
|
{
|
||||||
|
EIMSK &= ~(1<<INT0); //Désactive l'interuption
|
||||||
|
dcf77_flag_start = 0;
|
||||||
|
dcf77_bit_count = 0;
|
||||||
|
cli();
|
||||||
|
}
|
||||||
|
void dcf77::hi()
|
||||||
|
{
|
||||||
|
|
||||||
|
time_check = millis() - time_low_dcf77;
|
||||||
|
if( time_check >= temps_bas_min || time_low_dcf77 == 0)
|
||||||
|
{
|
||||||
|
PORTB |= 1<<PINB5; //Led de Debug à 1
|
||||||
|
parasite_flag = false;
|
||||||
|
time_high_dcf77 = millis(); //Démarage du comptage du temps haut
|
||||||
|
time_low_dcf77 = millis() - time_low_dcf77; //Calcul du Temps bas
|
||||||
|
if(dcf77_flag_start && dcf77_bit_count <= 58) //Démarage de la démodulation si toute les condition sont OK
|
||||||
|
{
|
||||||
|
dcf77_status = decodage_en_cours; //En cours de décodage
|
||||||
|
int bit;
|
||||||
|
if(time_low_dcf77 >= time_low_dcf77_min_0 && time_low_dcf77 <= time_low_dcf77_max_0) //Si le temp bas est <= 100ms le bit est à 0
|
||||||
|
bit = 0;
|
||||||
|
else if(time_low_dcf77 >= time_low_dcf77_min_1 && time_low_dcf77 <= time_low_dcf77_max_1) //Si le temp bas est <= 200ms le bit est à 1
|
||||||
|
bit = 1;
|
||||||
|
else //ereur
|
||||||
|
{
|
||||||
|
//dcf77_bit_count = 0;
|
||||||
|
//dcf77_flag_start = 0;
|
||||||
|
//return;
|
||||||
|
}
|
||||||
|
if(dcf77::decode(bit))
|
||||||
|
{
|
||||||
|
dcf77_bit_count = 0;
|
||||||
|
dcf77_flag_start = 0;
|
||||||
|
//return;
|
||||||
|
}
|
||||||
|
dcf77_bit_count++;
|
||||||
|
}
|
||||||
|
else if(dcf77_bit_count > 58)//Après le décodage 60e bit
|
||||||
|
{
|
||||||
|
//atc_.stop_capture(); //Arêt de la capture
|
||||||
|
dcf77_flag_start = 0; //Remise a zero du drapeau de démarage
|
||||||
|
dcf77_bit_count = 0; //Mise à zero le nombre de bit decodé
|
||||||
|
dcf77_status = decodage_effectuer;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// lcd1.set_cursor(5, 1);
|
||||||
|
// lcd1.print_text("Wt S.F.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
parasite_flag = true;
|
||||||
|
}
|
||||||
|
void dcf77::lo()
|
||||||
|
{
|
||||||
|
|
||||||
|
time_check = millis() - time_high_dcf77;
|
||||||
|
if( time_check >= temps_haut_min || time_high_dcf77 == 0)
|
||||||
|
{
|
||||||
|
PORTB &= ~(1<<PINB5);//Led de debug à 0
|
||||||
|
parasite_flag = false;
|
||||||
|
time_high_dcf77 = millis() - time_high_dcf77; //Calcul du temps Haut
|
||||||
|
time_low_dcf77 = millis(); //Démarage du comptage du temps bas
|
||||||
|
if(time_high_dcf77 > time_no_modulation | dcf77_flag_start) //Si le Temps bas est > à 800, début de la transmition
|
||||||
|
{
|
||||||
|
dcf77_flag_start = 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
dcf77_status = en_attente_de_signal;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
parasite_flag = true;
|
||||||
|
}
|
||||||
|
bool dcf77::decode(uint8_t bit)
|
||||||
|
{
|
||||||
|
bool flag_no_error = true;
|
||||||
|
if(bit_dcode_n == 0 && !bit) //Bit 00 Toujours à 0 si le contraire erreur
|
||||||
|
flag_no_error = false;
|
||||||
|
else if(bit_dcode_n >= 1 && bit_dcode_n <= 19); //Bits 01 à 19 ne nous interesse pas
|
||||||
|
else if (bit_dcode_n == 20 && !bit) //Bit 20 Toujours à 1
|
||||||
|
flag_no_error = false;
|
||||||
|
else if (bit_dcode_n >= 21 && bit_dcode_n <= 27) //Bit 21 à 27 = Minute
|
||||||
|
{
|
||||||
|
if(bit)
|
||||||
|
dcf77_Minute |= 1 << (bit_dcode_n-21);
|
||||||
|
else
|
||||||
|
dcf77_Minute &= ~(1 << (bit_dcode_n-21));
|
||||||
|
}
|
||||||
|
else if(bit_dcode_n == 28 && (dcf77_Minute&0x01) && !bit || bit_dcode_n == 28 && !(dcf77_Minute&0x01) && bit) //Bit de parité des minutes
|
||||||
|
flag_no_error = false;
|
||||||
|
else if(bit_dcode_n >= 29 && bit_dcode_n <= 34) //Bit 29 à 34 = Heure
|
||||||
|
{
|
||||||
|
if(bit)
|
||||||
|
dcf77_Heur |= 1 << (bit_dcode_n-29);
|
||||||
|
else
|
||||||
|
dcf77_Heur &= ~(1 << (bit_dcode_n-29));
|
||||||
|
}
|
||||||
|
else if(bit_dcode_n == 35 && (dcf77_Heur&0x01) && !bit || bit_dcode_n == 35 && !(dcf77_Heur&0x01) && bit) //Bit de parité des Heure
|
||||||
|
flag_no_error = false;
|
||||||
|
else if(bit_dcode_n >= 36 && bit_dcode_n <= 41) //Bit 36 à 41 = Jours du moi
|
||||||
|
{
|
||||||
|
if(bit)
|
||||||
|
dcf77_Daymonth |= 1 << (bit_dcode_n-36);
|
||||||
|
else
|
||||||
|
dcf77_Daymonth &= ~(1 << (bit_dcode_n-36));
|
||||||
|
}
|
||||||
|
else if(bit_dcode_n >= 42 && bit_dcode_n <= 44); //Bit 42 à 44 = Jours de la semaine, ne nous interesse pas
|
||||||
|
else if(bit_dcode_n >= 45 && bit_dcode_n <= 49) //Bit 45 à 49 = Mois
|
||||||
|
{
|
||||||
|
if(bit)
|
||||||
|
dcf77_Month |= 1 << (bit_dcode_n-45);
|
||||||
|
else
|
||||||
|
dcf77_Month &= ~(1 << (bit_dcode_n-45));
|
||||||
|
}
|
||||||
|
else if(bit_dcode_n>= 50 && bit_dcode_n <= 57) //Bit 50 à 57 = Année
|
||||||
|
{
|
||||||
|
if(bit)
|
||||||
|
dcf77_Year |= 1 << (bit_dcode_n-50);
|
||||||
|
else
|
||||||
|
dcf77_Year &= ~(1 << (bit_dcode_n-50));
|
||||||
|
}
|
||||||
|
else if(bit_dcode_n == 58 && (dcf77_Month&0x01) && !bit || bit_dcode_n && !(dcf77_Month&0x01) && bit);//Parity
|
||||||
|
bit_dcode_n++;
|
||||||
|
return flag_no_error;
|
||||||
|
}
|
||||||
|
int dcf77::status()
|
||||||
|
{
|
||||||
|
return dcf77_status;
|
||||||
|
}
|
||||||
|
uint8_t dcf77::minutes()
|
||||||
|
{
|
||||||
|
return dcf77_Minute;
|
||||||
|
}
|
||||||
|
uint8_t dcf77::heure()
|
||||||
|
{
|
||||||
|
return dcf77_Heur;
|
||||||
|
}
|
||||||
|
uint8_t dcf77::month()
|
||||||
|
{
|
||||||
|
return dcf77_Month;
|
||||||
|
}
|
||||||
|
uint8_t dcf77::day_month()
|
||||||
|
{
|
||||||
|
return dcf77_Daymonth;
|
||||||
|
}
|
||||||
|
uint8_t dcf77::year()
|
||||||
|
{
|
||||||
|
return dcf77_Year;
|
||||||
|
}
|
||||||
|
ISR(INT0_vect)//Vecteur d'interuption INT0
|
||||||
|
{
|
||||||
|
ATOMIC_BLOCK(ATOMIC_FORCEON)
|
||||||
|
{
|
||||||
|
if(((PIND&(1<<PIND2))>>PIND2))//Si c'est au niveau haut
|
||||||
|
{
|
||||||
|
atc_.hi();
|
||||||
|
}
|
||||||
|
else //Passage au niveau bas
|
||||||
|
{
|
||||||
|
atc_.lo();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,52 @@
|
||||||
|
/*
|
||||||
|
* DCF77.h
|
||||||
|
*
|
||||||
|
* Created: 22/12/2013 15:47:27
|
||||||
|
* Author: Adrien
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef DCF77_H_
|
||||||
|
#define DCF77_H_
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
class dcf77
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
//uint8_t dcf77_bits[6];
|
||||||
|
//bool dcf77_flag_send_decode;
|
||||||
|
unsigned long int time_low_dcf77 = 0;
|
||||||
|
unsigned long int time_high_dcf77 = 0;
|
||||||
|
bool dcf77_flag_start = 0; // Drapeau qui permet de savoir si on peut commencé la capture
|
||||||
|
//bool dcf77_flag_end_decode = 0; // " " " " " " le décodage est terminé
|
||||||
|
int dcf77_bit_count = 0; // Compte le nombre de bit déja encodé
|
||||||
|
uint8_t dcf77_Minute = 0x00;
|
||||||
|
uint8_t dcf77_Heur = 0x00;
|
||||||
|
uint8_t dcf77_Daymonth = 0x00;
|
||||||
|
uint8_t dcf77_Dayweek = 0x00;
|
||||||
|
uint8_t dcf77_Month = 0x00;
|
||||||
|
uint8_t dcf77_Year = 0x00;
|
||||||
|
int dcf77_status = 0;
|
||||||
|
int bit_dcode_n = 0;
|
||||||
|
bool parasite_flag = false;
|
||||||
|
unsigned int time_check = 0;
|
||||||
|
|
||||||
|
public:
|
||||||
|
void start_capture();
|
||||||
|
void stop_capture();
|
||||||
|
void lo();
|
||||||
|
void hi();
|
||||||
|
uint8_t minutes();
|
||||||
|
uint8_t heure();
|
||||||
|
uint8_t day_month();
|
||||||
|
uint8_t day_week();
|
||||||
|
uint8_t month();
|
||||||
|
uint8_t year();
|
||||||
|
bool decode(uint8_t bit);
|
||||||
|
int status();
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* DCF77_H_ */
|
|
@ -0,0 +1,190 @@
|
||||||
|
/*
|
||||||
|
* ds1307.cpp
|
||||||
|
*
|
||||||
|
* Created: 19/12/2013 14:06:21
|
||||||
|
* Author: Adrien
|
||||||
|
*
|
||||||
|
* Note : Après réflection, l'utilisation d'une class est inutile ...
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define F_CPU 16000000UL
|
||||||
|
#include <avr/io.h>
|
||||||
|
#include <util/delay.h>
|
||||||
|
#include "DS1307.h"
|
||||||
|
|
||||||
|
#define adresse_DS1307 0xD0 //Adresse I2C du DS1307
|
||||||
|
|
||||||
|
#define LED_RED 1<<PINB3 /*Ici direct en Hex*/
|
||||||
|
#define LED_GREEN 1<<PINB4 /*Ici direct en Hex*/
|
||||||
|
#define LED_BLUE 1<<PINB5 /*Ici direct en Hex*/
|
||||||
|
|
||||||
|
ds1307::ds1307()
|
||||||
|
{
|
||||||
|
iic_error = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ds1307::write(int adresse_m, uint8_t data)
|
||||||
|
{
|
||||||
|
//SCK Config à 80Khz (MAX DS1307 = 100Khz)
|
||||||
|
TWBR = 0x5C; //Bit rate division à 92
|
||||||
|
TWSR &= ~((1<<TWPS1)|(1<<TWPS0)) ; // Prescale à 1
|
||||||
|
|
||||||
|
//I2C Init
|
||||||
|
TWCR = (1<<TWEN); //Active l'I2C
|
||||||
|
TWCR = (1<<TWEN)|(1<<TWSTA)|(1<<TWINT); //Envoi la condiont de démarage
|
||||||
|
while(!(TWCR&(1<<TWINT))) //Attente de l'envoi
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//DS1307 adresse write
|
||||||
|
TWDR = adresse_DS1307; //Inscrit l'adresse, Mode write
|
||||||
|
TWCR = (1<<TWEN)|(1<<TWINT); //Envoi l'adresse
|
||||||
|
while(!(TWCR&(1<<TWINT))) //Attente de l'envoi
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//Adresse memoir send
|
||||||
|
TWDR = adresse_m; //Inscrit l'adresse mémoire
|
||||||
|
TWCR = (1<<TWEN)|(1<<TWINT); //Envoi l'adresse
|
||||||
|
while(!(TWCR&(1<<TWINT))) //Attente de l'envoi
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//Data send
|
||||||
|
TWDR = data; //Inscrit les donnée
|
||||||
|
TWCR = (1<<TWEN)|(1<<TWINT); //Envoi les donnée
|
||||||
|
while(!(TWCR&(1<<TWINT))) //Attente de l'envoi
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//Stop condition
|
||||||
|
TWCR = (1<<TWEN)|(1<<TWINT)|(1<<TWSTO);
|
||||||
|
while((TWCR&(1<<TWSTO)))
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
TWCR &= (~(1<<TWEN));
|
||||||
|
}
|
||||||
|
uint8_t ds1307::read(uint8_t adresse_m)
|
||||||
|
{
|
||||||
|
TWBR = 0x5C; //Bit rate division à 92
|
||||||
|
TWSR &= ~((1<<TWPS1)|(1<<TWPS0)); // Prescale à 1
|
||||||
|
|
||||||
|
//I2C Init
|
||||||
|
TWCR = (1<<TWEN); //Active l'I2C
|
||||||
|
TWCR = (1<<TWEN)|(1<<TWSTA)|(1<<TWINT); //Envoi la condiont de démarage
|
||||||
|
while(!(TWCR&(1<<TWINT))) //Attente de l'envoi
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//DS1307 adresse write
|
||||||
|
TWDR = adresse_DS1307; //Inscrit l'adresse, Mode write
|
||||||
|
TWCR = (1<<TWEN)|(1<<TWINT); //Envoi l'adresse
|
||||||
|
while(!(TWCR&(1<<TWINT))) //Attente de l'envoi
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//DS1307 adresse mem
|
||||||
|
TWDR = adresse_m; //Inscrit l'adresse mémoir
|
||||||
|
TWCR = (1<<TWEN)|(1<<TWINT); //Envoi l'adresse
|
||||||
|
while(!(TWCR&(1<<TWINT))) //Attente de l'envoi
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//Restart condition
|
||||||
|
TWCR = (1<<TWEN)|(1<<TWSTA)|(1<<TWINT); //Envoi la condiont de démarage
|
||||||
|
while(!(TWCR&(1<<TWINT))) //Attente de l'envoi
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//DS1307 adresse + read
|
||||||
|
TWDR = adresse_DS1307|0x01; //Inscrit l'adresse + Mode read
|
||||||
|
TWCR = (1<<TWEN)|(1<<TWINT); //Envoi l'adresse
|
||||||
|
while(!(TWCR&(1<<TWINT))) //Attente de l'envoi
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//Receive
|
||||||
|
TWCR = (1<<TWEN)|(1<<TWINT); //Demande de réception
|
||||||
|
while(!(TWCR&(1<<TWINT))) //Attente de la réception
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
uint8_t data = TWDR;
|
||||||
|
|
||||||
|
//Stop condition
|
||||||
|
TWCR = (1<<TWEN)|(1<<TWINT)|(1<<TWSTO);
|
||||||
|
while((TWCR&(1<<TWSTO)))
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
TWCR&=(~(1<<TWEN));
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
uint8_t ds1307::r_seconde()
|
||||||
|
{
|
||||||
|
return ds1307::read(0x00);
|
||||||
|
}
|
||||||
|
uint8_t ds1307::r_minute()
|
||||||
|
{
|
||||||
|
return ds1307::read(0x01);
|
||||||
|
}
|
||||||
|
uint8_t ds1307::r_heur()
|
||||||
|
{
|
||||||
|
return ds1307::read(0x02);
|
||||||
|
}
|
||||||
|
uint8_t ds1307::r_jour()
|
||||||
|
{
|
||||||
|
return ds1307::read(0x04);
|
||||||
|
}
|
||||||
|
uint8_t ds1307::r_moi()
|
||||||
|
{
|
||||||
|
return ds1307::read(0x05);
|
||||||
|
}
|
||||||
|
uint8_t ds1307::r_year()
|
||||||
|
{
|
||||||
|
return ds1307::read(0x06);
|
||||||
|
}
|
||||||
|
void ds1307::w_seconde(uint8_t data)
|
||||||
|
{
|
||||||
|
ds1307::write(0x00, data);
|
||||||
|
}
|
||||||
|
void ds1307::w_minute(uint8_t data)
|
||||||
|
{
|
||||||
|
ds1307::write(0x01, data);
|
||||||
|
}
|
||||||
|
void ds1307::w_heur(uint8_t data, uint8_t pm)
|
||||||
|
{
|
||||||
|
if(pm)
|
||||||
|
data |= (1<<6);
|
||||||
|
else
|
||||||
|
data &= ~(1<<6);
|
||||||
|
ds1307::write(0x02, data);
|
||||||
|
}
|
||||||
|
void ds1307::w_date(uint8_t data)
|
||||||
|
{
|
||||||
|
ds1307::write(0x04, data);
|
||||||
|
}
|
||||||
|
void ds1307::w_moi(uint8_t data)
|
||||||
|
{
|
||||||
|
ds1307::write(0x05, data);
|
||||||
|
}
|
||||||
|
void ds1307::w_year(uint8_t data)
|
||||||
|
{
|
||||||
|
ds1307::write(0x06, data);
|
||||||
|
}
|
|
@ -0,0 +1,37 @@
|
||||||
|
/*
|
||||||
|
* DS1307.h
|
||||||
|
*
|
||||||
|
* Created: 22/12/2013 15:28:08
|
||||||
|
* Author: Adrien
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef DS1307_H_
|
||||||
|
#define DS1307_H_
|
||||||
|
#include <stdint.h>
|
||||||
|
class ds1307
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
uint8_t curent_couleur;
|
||||||
|
bool iic_error;
|
||||||
|
public:
|
||||||
|
ds1307();
|
||||||
|
void write(int adresse_m, uint8_t data);
|
||||||
|
uint8_t read(uint8_t adresse_m);
|
||||||
|
uint8_t r_seconde();
|
||||||
|
uint8_t r_minute();
|
||||||
|
uint8_t r_heur();
|
||||||
|
uint8_t r_jour();
|
||||||
|
uint8_t r_moi();
|
||||||
|
uint8_t r_year();
|
||||||
|
void w_seconde(uint8_t data);
|
||||||
|
void w_minute(uint8_t data);
|
||||||
|
void w_heur(uint8_t data, uint8_t pm);
|
||||||
|
void w_date(uint8_t data);
|
||||||
|
void w_moi(uint8_t data);
|
||||||
|
void w_year(uint8_t data);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* DS1307_H_ */
|
|
@ -0,0 +1,170 @@
|
||||||
|
/*
|
||||||
|
* LCD.cpp
|
||||||
|
*
|
||||||
|
* Created: 27/12/2013 13:32:02
|
||||||
|
* Author: Adrien
|
||||||
|
*/
|
||||||
|
|
||||||
|
/************************************************************************************************************
|
||||||
|
* Cette librairie permet de controlé un écrans LCD a traver un PCF8574 avec comme adresse 0x40 *
|
||||||
|
* *
|
||||||
|
* ############################## *
|
||||||
|
* #----------------------------# *
|
||||||
|
* #| Configuration des pins |# *
|
||||||
|
* #|~~~~~~~~~~~~~~~~~~~~~~~~~~|# *
|
||||||
|
* #| PCF8574 | LCD |# *
|
||||||
|
* #|~~~~~~~~~~~~~~|~~~~~~~~~~~|# *
|
||||||
|
* #| 0 | D4 |# *
|
||||||
|
* #| 1 | D5 |# *
|
||||||
|
* #| 2 | D6 |# *
|
||||||
|
* #| 3 | D7 |# *
|
||||||
|
* #| 4 | NC |# *
|
||||||
|
* #| 5 | E |# *
|
||||||
|
* #| 6 | RS |# *
|
||||||
|
* #| 7 | RW |# *
|
||||||
|
* #----------------------------# *
|
||||||
|
* ############################## *
|
||||||
|
* *
|
||||||
|
* *
|
||||||
|
* @@ §§ §§ ####### *
|
||||||
|
* @@@@ §§ §§ ## ##### *
|
||||||
|
* @@ @@ §§ §§ ## #### *
|
||||||
|
* @@ @@ §§ §§ ## ## *
|
||||||
|
* @@ @@ §§ §§ ## ## *
|
||||||
|
* @@~&&&&&&~@@ §§ §§ ## #### *
|
||||||
|
* @@ @@ §§§§ ## ##### *
|
||||||
|
* @@ @@ §§ ####### *
|
||||||
|
* *
|
||||||
|
************************************************************************************************************
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define adresse_DS1307 0x40
|
||||||
|
#define F_CPU 16000000UL
|
||||||
|
|
||||||
|
#define RS 0x01<<6
|
||||||
|
#define RW 0x01<<7
|
||||||
|
#define E 0x01<<5
|
||||||
|
#define D4 0x01<<0
|
||||||
|
#define D5 0x01<<1
|
||||||
|
#define D6 0x01<<2
|
||||||
|
#define D7 0x01<<3
|
||||||
|
#define D0 0x01<<0
|
||||||
|
#define D1 0x01<<1
|
||||||
|
#define D2 0x01<<2
|
||||||
|
#define D3 0x01<<3
|
||||||
|
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <avr/delay.h>
|
||||||
|
#include <avr/io.h>
|
||||||
|
#include "LCD.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
uint8_t PCF8574::send(uint8_t data, uint8_t read)
|
||||||
|
{
|
||||||
|
uint8_t read_data;
|
||||||
|
//SCK Config (27.77Khz)
|
||||||
|
TWBR = 0x0A; //Bit rate division à 10
|
||||||
|
TWSR = (TWSR & ~((1<<TWPS0) & (1<<TWPS1))); //TWPS à 0
|
||||||
|
|
||||||
|
//I2C Init
|
||||||
|
TWCR = (1<<TWEN); //Active l'I2C
|
||||||
|
TWCR = (1<<TWEN)|(1<<TWSTA)|(1<<TWINT); //Envoi la condiont de démarage
|
||||||
|
while(!(TWCR&(1<<TWINT))) //Attente de l'envoi
|
||||||
|
;
|
||||||
|
|
||||||
|
//DS1307 adresse write
|
||||||
|
TWDR = adresse_DS1307|read ; //Inscrit l'adresse, Mode
|
||||||
|
TWCR = (1<<TWEN)|(1<<TWINT); //Envoi l'adresse
|
||||||
|
while(!(TWCR&(1<<TWINT))) //Attente de l'envoi
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
|
//Data send
|
||||||
|
if(!read) //Si écriture
|
||||||
|
TWDR = data; //Inscrit les donnée
|
||||||
|
TWCR = (1<<TWEN)|(1<<TWINT); //Envoi les donnée
|
||||||
|
while(!(TWCR&(1<<TWINT))) //Attente de l'envoi
|
||||||
|
;
|
||||||
|
if(read) //Si lecture
|
||||||
|
read_data = TWDR;
|
||||||
|
|
||||||
|
//Stop condition
|
||||||
|
TWCR = (1<<TWEN)|(1<<TWINT)|(1<<TWSTO);
|
||||||
|
while((TWCR&(1<<TWSTO)))
|
||||||
|
;
|
||||||
|
|
||||||
|
_delay_ms(1);
|
||||||
|
TWCR &= (~(1<<TWEN));
|
||||||
|
if(read)
|
||||||
|
return read_data;
|
||||||
|
}
|
||||||
|
bool LCD::check_busy_flag()
|
||||||
|
{
|
||||||
|
PCF8574::send(RW, 0);
|
||||||
|
uint8_t bf = PCF8574::send(RW, 1)&D7;
|
||||||
|
//_delay_ms(10000);
|
||||||
|
if((bf&(D7)>>3))
|
||||||
|
return true;
|
||||||
|
else
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
void LCD::send(uint8_t data, bool debut_instuction)
|
||||||
|
{
|
||||||
|
while(check_busy_flag() && debut_instuction) //Vérifie qu'il n'y a pas une oppétation en cours
|
||||||
|
{}
|
||||||
|
PCF8574::send(0x00, 0); //Met les pins à0
|
||||||
|
PCF8574::send(data, 0); //Ecris les données
|
||||||
|
data |= (E);
|
||||||
|
//_delay_ms(1000);
|
||||||
|
PCF8574::send(data, 0); //Confirme les données
|
||||||
|
_delay_us(1); //Attente que la confiramation soit bien reçue
|
||||||
|
data &= ~(E);
|
||||||
|
PCF8574::send(data, 0);
|
||||||
|
_delay_us(1);
|
||||||
|
}
|
||||||
|
void LCD::display_init()
|
||||||
|
{
|
||||||
|
send(0x03, true); //Mode 4bit
|
||||||
|
|
||||||
|
send(0x08, false); //Mode 2ligne
|
||||||
|
|
||||||
|
send(0x00, true);send(0x01, false); //Clear display
|
||||||
|
send(0x00, true);send(0x02, false); //Return home
|
||||||
|
send(0x00, true);send((D2|D1), false); //Incrémentation de la RAM et déplacement du curseur vers la droite
|
||||||
|
send(0x00, true);send((D3|D2), false); //Allume l'afficheur sans curseur
|
||||||
|
|
||||||
|
}
|
||||||
|
void LCD::send_leter(uint8_t lettre)
|
||||||
|
{
|
||||||
|
uint8_t data = (RS)|(lettre>>4); //Inscrit les 4 dernier bit dans la RAM
|
||||||
|
send(data, true);
|
||||||
|
data = (RS)|(lettre&0b00001111); //Inscrit les 4 premier bit dans la RAM
|
||||||
|
send(data, false);
|
||||||
|
}
|
||||||
|
void LCD::clear()
|
||||||
|
{
|
||||||
|
send(0x00, true); send(D0, false); //Clear Display
|
||||||
|
send(0x00, true);send(0x02, false); //Return home
|
||||||
|
}
|
||||||
|
void LCD::set_cursor(int x, int y)
|
||||||
|
{
|
||||||
|
uint8_t data;
|
||||||
|
if(y == 1)
|
||||||
|
data = 0x00 + x;
|
||||||
|
else if(y == 2)
|
||||||
|
data = 0x40 + x;
|
||||||
|
send((data>>4)|0x08, true);_delay_us(5);send(data&0x0F, false);
|
||||||
|
}
|
||||||
|
void LCD::print_text(char *txt)
|
||||||
|
{
|
||||||
|
for(int a = 0 ; a < strlen(txt) ; a++)
|
||||||
|
send_leter(txt[a]);
|
||||||
|
}
|
||||||
|
void LCD::print_number(int num)
|
||||||
|
{
|
||||||
|
char c[64];
|
||||||
|
sprintf(c, "%d", num);
|
||||||
|
print_text(c);
|
||||||
|
}
|
|
@ -0,0 +1,37 @@
|
||||||
|
/*
|
||||||
|
* LCD.h
|
||||||
|
*
|
||||||
|
* Created: 27/12/2013 13:32:19
|
||||||
|
* Author: Adrien
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef LCD_H_
|
||||||
|
#define LCD_H_
|
||||||
|
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
class PCF8574
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
static uint8_t send(uint8_t data, uint8_t read);
|
||||||
|
};
|
||||||
|
class LCD
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
bool check_busy_flag();
|
||||||
|
public:
|
||||||
|
void setup(int rs_pin, int rw_pin, int e_pin, int d4_pin, int d5_pin, int d6_pin, int d7_pin);
|
||||||
|
void send(uint8_t data, bool BF);
|
||||||
|
void display_init();
|
||||||
|
void send_leter(uint8_t lettre);
|
||||||
|
void print_text(char *txt);
|
||||||
|
void print_number(int num);
|
||||||
|
void clear();
|
||||||
|
void set_cursor(int x, int y);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* LCD_H_ */
|
|
@ -0,0 +1,37 @@
|
||||||
|
/*
|
||||||
|
* UART.cpp
|
||||||
|
*
|
||||||
|
* Created: 31/05/2014 23:16:31
|
||||||
|
* Author: Adrien
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <avr/io.h>
|
||||||
|
#include <util/delay.h>
|
||||||
|
#include "UART.h"
|
||||||
|
#define F_CPU 16000000UL
|
||||||
|
#define BAUD 9600
|
||||||
|
#define MYUBRR (((F_CPU / (BAUD * 16UL))) - 1)
|
||||||
|
|
||||||
|
void USART_ini()
|
||||||
|
{
|
||||||
|
UBRR0H = (unsigned char)(MYUBRR>>8);
|
||||||
|
UBRR0L = (unsigned char)MYUBRR;
|
||||||
|
UCSR0B = (1<<RXEN0)|(1<<TXEN0);
|
||||||
|
UCSR0C = ((1<<UCSZ00)|(1<<UCSZ01));
|
||||||
|
}
|
||||||
|
void USART_Transmit( unsigned char data )
|
||||||
|
{
|
||||||
|
/* Wait for empty transmit buffer */
|
||||||
|
while ( !( UCSR0A & (1<<UDRE0)) )
|
||||||
|
;
|
||||||
|
/* Put data into buffer, sends the data */
|
||||||
|
UDR0 = data;
|
||||||
|
}
|
||||||
|
unsigned char USART_Receive( void )
|
||||||
|
{
|
||||||
|
/* Wait for data to be received */
|
||||||
|
if((UCSR0A & (1<<RXC0)))
|
||||||
|
return UDR0;
|
||||||
|
else
|
||||||
|
return false;
|
||||||
|
}
|
|
@ -0,0 +1,18 @@
|
||||||
|
/*
|
||||||
|
* UART.h
|
||||||
|
*
|
||||||
|
* Created: 31/05/2014 23:16:48
|
||||||
|
* Author: Adrien
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef UART_H_
|
||||||
|
#define UART_H_
|
||||||
|
|
||||||
|
|
||||||
|
void USART_ini();
|
||||||
|
void USART_Transmit( unsigned char data );
|
||||||
|
unsigned char USART_Receive( void );
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* UART_H_ */
|
|
@ -0,0 +1,186 @@
|
||||||
|
/*
|
||||||
|
* _74595.cpp
|
||||||
|
*
|
||||||
|
* Created: 19/12/2013 14:06:10
|
||||||
|
* Author: Adrien
|
||||||
|
*/
|
||||||
|
#define F_CPU 16000000UL
|
||||||
|
#include <avr/io.h>
|
||||||
|
#include <util/delay.h>
|
||||||
|
#include "hc74595.h"
|
||||||
|
|
||||||
|
hc74595::hc74595(int data, int clk, int stcp,volatile uint8_t *port_uc/*, volatile uint8_t *ddr_uc*/)
|
||||||
|
{
|
||||||
|
pin_DATA = data;
|
||||||
|
pin_CLK = clk;
|
||||||
|
pin_STCP = stcp;
|
||||||
|
port = port_uc;
|
||||||
|
ddr = --port_uc;
|
||||||
|
*ddr |= (0x01 << data | 0x01 << clk | 0x01 << stcp);
|
||||||
|
}
|
||||||
|
void hc74595::send(uint8_t data, bool inverted) //Envoi des donnée au Shift Register
|
||||||
|
{
|
||||||
|
|
||||||
|
for(int a = 0; a < 8 ; a++)
|
||||||
|
{
|
||||||
|
if(!inverted)
|
||||||
|
{
|
||||||
|
*port &= ~(0x01 << pin_CLK); //Met l'orloge à 0
|
||||||
|
if(data & (0x01 << a)) //Regarde la valeur de chaque bit
|
||||||
|
*port |= 0x01 << pin_DATA;
|
||||||
|
else
|
||||||
|
*port &= ~(0x01 << pin_DATA);
|
||||||
|
*port|= 0x01 << pin_CLK; //Met l'orloge à 1
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
*port &= ~(0x01 << pin_CLK); //Met l'orloge à 0
|
||||||
|
if(data & (0x80 >> a)) //Regarde la valeur de chaque bit
|
||||||
|
*port |= 0x01 << pin_DATA;
|
||||||
|
else
|
||||||
|
*port &= ~(0x01 << pin_DATA);
|
||||||
|
*port |= 0x01 << pin_CLK; //Met l'orloge à 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void hc74595::confirm() //Envoi le signal du storage register
|
||||||
|
{
|
||||||
|
*port |= 0x01 << pin_STCP;
|
||||||
|
_delay_us(1);
|
||||||
|
*port &= ~(0x01 << pin_STCP);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*-----------------------------------------------------------------------------------------------------------
|
||||||
|
/*
|
||||||
|
* _74595.cpp
|
||||||
|
*
|
||||||
|
* Created: 19/12/2013 14:06:10
|
||||||
|
* Author: Adrien
|
||||||
|
*
|
||||||
|
|
||||||
|
#include <avr/io.h>
|
||||||
|
#include "hc74595.h"
|
||||||
|
|
||||||
|
void hc74595::setup(int data, int clk, int stcp, char port_uc)
|
||||||
|
{
|
||||||
|
pin_DATA = data;
|
||||||
|
pin_CLK = clk;
|
||||||
|
pin_STCP = stcp;
|
||||||
|
port = port_uc;
|
||||||
|
switch (port) //Configure les pin nésessaire en sortie
|
||||||
|
{
|
||||||
|
case 'B' :
|
||||||
|
DDRB |= (0x01 << data | 0x01 << clk | 0x01 << stcp);
|
||||||
|
break;
|
||||||
|
case 'C' :
|
||||||
|
DDRC |= (0x01 << data | 0x01 << clk | 0x01 << stcp);
|
||||||
|
break;
|
||||||
|
case 'D' :
|
||||||
|
DDRD |= (0x01 << data | 0x01 << clk | 0x01 << stcp);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void hc74595::hc74595(int data, int clk, int stcp, uint8_t *port_uc)
|
||||||
|
{
|
||||||
|
pin_DATA = data;
|
||||||
|
pin_CLK = clk;
|
||||||
|
pin_STCP = stcp;
|
||||||
|
*port = port_uc;
|
||||||
|
*port |= (0x01 << data | 0x01 << clk | 0x01 << stcp);
|
||||||
|
}
|
||||||
|
void hc74595::send(uint8_t data, bool inverted) //Envoi des donnée au Shift Register
|
||||||
|
{
|
||||||
|
switch (port)
|
||||||
|
{
|
||||||
|
case 'B' :
|
||||||
|
for(int a = 0; a < 8 ; a++)
|
||||||
|
{
|
||||||
|
if(!inverted)
|
||||||
|
{
|
||||||
|
PORTB &= ~(0x01 << pin_CLK); //Met l'orloge à 0
|
||||||
|
if(data & (0x01 << a)) //Regarde la valeur de chaque bit
|
||||||
|
PORTB |= 0x01 << pin_DATA;
|
||||||
|
else
|
||||||
|
PORTB &= ~(0x01 << pin_DATA);
|
||||||
|
PORTB |= 0x01 << pin_CLK; //Met l'orloge à 1
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
PORTB &= ~(0x01 << pin_CLK); //Met l'orloge à 0
|
||||||
|
if(data & (0x80 >> a)) //Regarde la valeur de chaque bit
|
||||||
|
PORTB |= 0x01 << pin_DATA;
|
||||||
|
else
|
||||||
|
PORTB &= ~(0x01 << pin_DATA);
|
||||||
|
PORTB |= 0x01 << pin_CLK; //Met l'orloge à 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 'C' :
|
||||||
|
for(int a = 0; a < 8 ; a++)
|
||||||
|
{
|
||||||
|
if(!inverted)
|
||||||
|
{
|
||||||
|
PORTC &= ~(0x01 << pin_CLK); //Met l'orloge à 0
|
||||||
|
if(data & (0x01 << a)) //Regarde la valeur de chaque bit
|
||||||
|
PORTC |= 0x01 << pin_DATA;
|
||||||
|
else
|
||||||
|
PORTC &= ~(0x01 << pin_DATA);
|
||||||
|
PORTC |= 0x01 << pin_CLK; //Met l'orloge à 1
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
PORTC &= ~(0x01 << pin_CLK); //Met l'orloge à 0
|
||||||
|
if(data & (0x80 >> a)) //Regarde la valeur de chaque bit
|
||||||
|
PORTC |= 0x01 << pin_DATA;
|
||||||
|
else
|
||||||
|
PORTC &= ~(0x01 << pin_DATA);
|
||||||
|
PORTC |= 0x01 << pin_CLK; //Met l'orloge à 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 'D' :
|
||||||
|
for(int a = 0; a < 8 ; a++)
|
||||||
|
{
|
||||||
|
if(!inverted)
|
||||||
|
{
|
||||||
|
PORTD &= ~(0x01 << pin_CLK); //Met l'orloge à 0
|
||||||
|
if(data & (0x01 << a)) //Regarde la valeur de chaque bit
|
||||||
|
PORTD |= 0x01 << pin_DATA;
|
||||||
|
else
|
||||||
|
PORTD &= ~(0x01 << pin_DATA);
|
||||||
|
PORTD |= 0x01 << pin_CLK; //Met l'orloge à 1
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
PORTD &= ~(0x01 << pin_CLK); //Met l'orloge à 0
|
||||||
|
if(data & (0x80 >> a)) //Regarde la valeur de chaque bit
|
||||||
|
PORTD |= 0x01 << pin_DATA;
|
||||||
|
else
|
||||||
|
PORTD &= ~(0x01 << pin_DATA);
|
||||||
|
PORTD |= 0x01 << pin_CLK; //Met l'orloge à 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void hc74595::confirm() //Envoi le signal du storage register
|
||||||
|
{
|
||||||
|
switch(port)
|
||||||
|
{
|
||||||
|
case 'B' :
|
||||||
|
PORTB |= 0x01 << pin_STCP;
|
||||||
|
PORTB &= ~(0x01 << pin_STCP);
|
||||||
|
break;
|
||||||
|
case 'C' :
|
||||||
|
PORTC |= 0x01 << pin_STCP;
|
||||||
|
PORTC &= ~(0x01 << pin_STCP);
|
||||||
|
break;
|
||||||
|
case 'D' :
|
||||||
|
PORTD |= 0x01 << pin_STCP;
|
||||||
|
PORTD &= ~(0x01 << pin_STCP);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
*/
|
|
@ -0,0 +1,27 @@
|
||||||
|
/*
|
||||||
|
* _74hc595.h
|
||||||
|
*
|
||||||
|
* Created: 22/12/2013 15:19:47
|
||||||
|
* Author: Adrien
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef HC74595_H_
|
||||||
|
#define HC74595_H_
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
class hc74595
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
int pin_DATA;
|
||||||
|
int pin_CLK;
|
||||||
|
int pin_STCP;
|
||||||
|
volatile uint8_t *port;
|
||||||
|
volatile uint8_t *ddr;
|
||||||
|
public:
|
||||||
|
hc74595(int data, int clk, int stcp, volatile uint8_t *port_uc);
|
||||||
|
void send(uint8_t data, bool inverted);
|
||||||
|
void confirm();
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif /* 74HC595_H_ */
|
|
@ -0,0 +1,104 @@
|
||||||
|
#define F_CPU 16000000UL // 16 MHz
|
||||||
|
|
||||||
|
// Calculate the value needed for
|
||||||
|
// the CTC match value in OCR1A.
|
||||||
|
#define CTC_MATCH_OVERFLOW ((F_CPU / 1000) / 8)
|
||||||
|
|
||||||
|
#include <avr/io.h>
|
||||||
|
#include <avr/interrupt.h>
|
||||||
|
#include <util/atomic.h>
|
||||||
|
volatile unsigned long timer1_millis;
|
||||||
|
void timer1_init()
|
||||||
|
{
|
||||||
|
// clear to compar (CTC) mode, Clock/8
|
||||||
|
TCCR1B |= (1 << WGM12) | (1 << CS11);
|
||||||
|
|
||||||
|
|
||||||
|
OCR1AH = (CTC_MATCH_OVERFLOW >> 8);
|
||||||
|
OCR1AL = CTC_MATCH_OVERFLOW;
|
||||||
|
|
||||||
|
// Activation du mode comparaison
|
||||||
|
TIMSK1 |= (1 << OCIE1A);
|
||||||
|
|
||||||
|
sei();
|
||||||
|
|
||||||
|
}
|
||||||
|
void interup_1hz_init()//DS1307
|
||||||
|
{
|
||||||
|
EICRA |= 1<<ISC11 | 1<< ISC10; //Configuration pour activer INT1 sur un front montant
|
||||||
|
EIMSK |= 1<<INT1; // Activation de l'interuption INT1
|
||||||
|
sei();
|
||||||
|
}
|
||||||
|
unsigned long millis ()
|
||||||
|
{
|
||||||
|
unsigned long millis_return;
|
||||||
|
|
||||||
|
// Ensure this cannot be disrupted
|
||||||
|
ATOMIC_BLOCK(ATOMIC_FORCEON) {
|
||||||
|
millis_return = timer1_millis;
|
||||||
|
}
|
||||||
|
|
||||||
|
return millis_return;
|
||||||
|
}
|
||||||
|
ISR (TIMER1_COMPA_vect)
|
||||||
|
{
|
||||||
|
timer1_millis++;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* timer.cpp
|
||||||
|
*
|
||||||
|
* Created: 21/12/2013 15:45:30
|
||||||
|
* Author: Adrien
|
||||||
|
*
|
||||||
|
#include <avr/interrupt.h>
|
||||||
|
#include <avr/io.h>
|
||||||
|
|
||||||
|
#include "timer.h"
|
||||||
|
volatile unsigned long us = 0;
|
||||||
|
volatile unsigned long us_s = 0;
|
||||||
|
volatile unsigned long int s = 0;
|
||||||
|
#define calibration 1;
|
||||||
|
void timer1_init()
|
||||||
|
{
|
||||||
|
TCCR1A = 0x00; //Désactive les comparateur + Mode normal
|
||||||
|
TCCR1B = 0x00;//Mise a zero de toutes les valeurs
|
||||||
|
us = 0;
|
||||||
|
s = 0;
|
||||||
|
TCNT1 = 0x0000;
|
||||||
|
/*
|
||||||
|
Horloge à 16Mhz
|
||||||
|
1 période = 62.5ns
|
||||||
|
clk/8 = 0.5µs débordement à 32768 µs
|
||||||
|
clk/64 = 4µs débordement à 262144 µs
|
||||||
|
clk/256 = 16µs débordement à 1 048 576µs
|
||||||
|
clk/1024 = 64µs débordement à 4 194 304µs
|
||||||
|
Le prescale sera à 8
|
||||||
|
*
|
||||||
|
TCCR1B |= (1<<CS12) | (0<<CS11) | (1<<CS10); //Prescale à 8
|
||||||
|
TIMSK1 = 1<<TOIE1; // Initialisation de l'interuption de débordement
|
||||||
|
sei();
|
||||||
|
}
|
||||||
|
void interup_1hz_init()
|
||||||
|
{
|
||||||
|
EICRA |= 1<<ISC11 | 1<< ISC10; //Configuration pour activer INT1 sur un front montant
|
||||||
|
EIMSK |= 1<<INT1; // Activation de l'interuption INT1
|
||||||
|
sei();
|
||||||
|
}
|
||||||
|
unsigned long int millis()
|
||||||
|
{
|
||||||
|
return (TCNT1/64)/100;
|
||||||
|
}
|
||||||
|
unsigned long int secondes()
|
||||||
|
{
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
ISR(TIMER1_OVF_vect)
|
||||||
|
{
|
||||||
|
// us += 32768; //Lors du débordement le timer est égale à (2^16)*0.5 ms
|
||||||
|
TCNT1 = 0;
|
||||||
|
}
|
||||||
|
ISR(INT1_vect)
|
||||||
|
{
|
||||||
|
s++;
|
||||||
|
}*/
|
|
@ -0,0 +1,106 @@
|
||||||
|
#define F_CPU 16000000UL // 16 MHz
|
||||||
|
|
||||||
|
// Calculate the value needed for
|
||||||
|
// the CTC match value in OCR1A.
|
||||||
|
#define CTC_MATCH_OVERFLOW ((F_CPU / 1000) / 8)
|
||||||
|
|
||||||
|
#include <avr/io.h>
|
||||||
|
#include <avr/interrupt.h>
|
||||||
|
#include <util/atomic.h>
|
||||||
|
volatile unsigned long timer1_millis;
|
||||||
|
void timer1_init()
|
||||||
|
{
|
||||||
|
// CTC mode, Clock/8
|
||||||
|
TCCR1B |= (1 << WGM12) | (1 << CS11);
|
||||||
|
|
||||||
|
// Load the high byte, then the low byte
|
||||||
|
// into the output compare
|
||||||
|
OCR1AH = (CTC_MATCH_OVERFLOW >> 8);
|
||||||
|
OCR1AL = CTC_MATCH_OVERFLOW;
|
||||||
|
|
||||||
|
// Enable the compare match interrupt
|
||||||
|
TIMSK1 |= (1 << OCIE1A);
|
||||||
|
|
||||||
|
// Now enable global interrupts
|
||||||
|
sei();
|
||||||
|
|
||||||
|
}
|
||||||
|
void interup_1hz_init()
|
||||||
|
{
|
||||||
|
EICRA |= 1<<ISC11 | 1<< ISC10; //Configuration pour activer INT1 sur un front montant
|
||||||
|
EIMSK |= 1<<INT1; // Activation de l'interuption INT1
|
||||||
|
sei();
|
||||||
|
}
|
||||||
|
unsigned long millis ()
|
||||||
|
{
|
||||||
|
unsigned long millis_return;
|
||||||
|
|
||||||
|
// Ensure this cannot be disrupted
|
||||||
|
ATOMIC_BLOCK(ATOMIC_FORCEON) {
|
||||||
|
millis_return = timer1_millis;
|
||||||
|
}
|
||||||
|
|
||||||
|
return millis_return;
|
||||||
|
}
|
||||||
|
ISR (TIMER1_COMPA_vect)
|
||||||
|
{
|
||||||
|
timer1_millis++;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* timer.cpp
|
||||||
|
*
|
||||||
|
* Created: 21/12/2013 15:45:30
|
||||||
|
* Author: Adrien
|
||||||
|
*
|
||||||
|
#include <avr/interrupt.h>
|
||||||
|
#include <avr/io.h>
|
||||||
|
|
||||||
|
#include "timer.h"
|
||||||
|
volatile unsigned long us = 0;
|
||||||
|
volatile unsigned long us_s = 0;
|
||||||
|
volatile unsigned long int s = 0;
|
||||||
|
#define calibration 1;
|
||||||
|
void timer1_init()
|
||||||
|
{
|
||||||
|
TCCR1A = 0x00; //Désactive les comparateur + Mode normal
|
||||||
|
TCCR1B = 0x00;//Mise a zero de toutes les valeurs
|
||||||
|
us = 0;
|
||||||
|
s = 0;
|
||||||
|
TCNT1 = 0x0000;
|
||||||
|
/*
|
||||||
|
Horloge à 16Mhz
|
||||||
|
1 période = 62.5ns
|
||||||
|
clk/8 = 0.5µs débordement à 32768 µs
|
||||||
|
clk/64 = 4µs débordement à 262144 µs
|
||||||
|
clk/256 = 16µs débordement à 1 048 576µs
|
||||||
|
clk/1024 = 64µs débordement à 4 194 304µs
|
||||||
|
Le prescale sera à 8
|
||||||
|
*
|
||||||
|
TCCR1B |= (1<<CS12) | (0<<CS11) | (1<<CS10); //Prescale à 8
|
||||||
|
TIMSK1 = 1<<TOIE1; // Initialisation de l'interuption de débordement
|
||||||
|
sei();
|
||||||
|
}
|
||||||
|
void interup_1hz_init()
|
||||||
|
{
|
||||||
|
EICRA |= 1<<ISC11 | 1<< ISC10; //Configuration pour activer INT1 sur un front montant
|
||||||
|
EIMSK |= 1<<INT1; // Activation de l'interuption INT1
|
||||||
|
sei();
|
||||||
|
}
|
||||||
|
unsigned long int millis()
|
||||||
|
{
|
||||||
|
return (TCNT1/64)/100;
|
||||||
|
}
|
||||||
|
unsigned long int secondes()
|
||||||
|
{
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
ISR(TIMER1_OVF_vect)
|
||||||
|
{
|
||||||
|
// us += 32768; //Lors du débordement le timer est égale à (2^16)*0.5 ms
|
||||||
|
TCNT1 = 0;
|
||||||
|
}
|
||||||
|
ISR(INT1_vect)
|
||||||
|
{
|
||||||
|
s++;
|
||||||
|
}*/
|
|
@ -0,0 +1,17 @@
|
||||||
|
/*
|
||||||
|
* timer.cpp
|
||||||
|
*
|
||||||
|
* Created: 21/12/2013 15:45:27
|
||||||
|
* Author: Adrien
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef INTERUPTION_H_
|
||||||
|
#define INTERUPTION_H_
|
||||||
|
|
||||||
|
void timer1_init();
|
||||||
|
void interup_1hz_init();
|
||||||
|
unsigned long int millis();
|
||||||
|
unsigned long int secondes();
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,17 @@
|
||||||
|
/*
|
||||||
|
* timer.cpp
|
||||||
|
*
|
||||||
|
* Created: 21/12/2013 15:45:27
|
||||||
|
* Author: Adrien
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef INTERUPTION_H_
|
||||||
|
#define INTERUPTION_H_
|
||||||
|
|
||||||
|
void timer1_init();
|
||||||
|
void interup_1hz_init();
|
||||||
|
unsigned long int millis();
|
||||||
|
unsigned long int secondes();
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,776 @@
|
||||||
|
/*************************************************************************
|
||||||
|
Title: Interrupt UART library with receive/transmit circular buffers
|
||||||
|
Author: Peter Fleury <pfleury@gmx.ch> http://jump.to/fleury
|
||||||
|
File: $Id: uart.c,v 1.6.2.1 2007/07/01 11:14:38 peter Exp $
|
||||||
|
Software: AVR-GCC 4.1, AVR Libc 1.4.6 or higher
|
||||||
|
Hardware: any AVR with built-in UART,
|
||||||
|
License: GNU General Public License
|
||||||
|
|
||||||
|
DESCRIPTION:
|
||||||
|
An interrupt is generated when the UART has finished transmitting or
|
||||||
|
receiving a byte. The interrupt handling routines use circular buffers
|
||||||
|
for buffering received and transmitted data.
|
||||||
|
|
||||||
|
The UART_RX_BUFFER_SIZE and UART_TX_BUFFER_SIZE variables define
|
||||||
|
the buffer size in bytes. Note that these variables must be a
|
||||||
|
power of 2.
|
||||||
|
|
||||||
|
USAGE:
|
||||||
|
Refere to the header file uart.h for a description of the routines.
|
||||||
|
See also example test_uart.c.
|
||||||
|
|
||||||
|
NOTES:
|
||||||
|
Based on Atmel Application Note AVR306
|
||||||
|
|
||||||
|
LICENSE:
|
||||||
|
Copyright (C) 2006 Peter Fleury
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
|
any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
*************************************************************************/
|
||||||
|
|
||||||
|
/************************************************************************
|
||||||
|
uart_available, uart_flush, uart1_available, and uart1_flush functions
|
||||||
|
were adapted from the Arduino HardwareSerial.h library by Tim Sharpe on
|
||||||
|
11 Jan 2009. The license info for HardwareSerial.h is as follows:
|
||||||
|
|
||||||
|
HardwareSerial.cpp - Hardware serial library for Wiring
|
||||||
|
Copyright (c) 2006 Nicholas Zambetti. All right reserved.
|
||||||
|
|
||||||
|
This library is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU Lesser General Public
|
||||||
|
License as published by the Free Software Foundation; either
|
||||||
|
version 2.1 of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This library is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public
|
||||||
|
License along with this library; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
Modified 23 November 2006 by David A. Mellis
|
||||||
|
************************************************************************/
|
||||||
|
|
||||||
|
/************************************************************************
|
||||||
|
Changelog for modifications made by Tim Sharpe, starting with the current
|
||||||
|
library version on his Web site as of 05/01/2009.
|
||||||
|
|
||||||
|
Date Description
|
||||||
|
=========================================================================
|
||||||
|
05/11/2009 Changed all existing UARTx_RECEIVE_INTERRUPT and UARTx_TRANSMIT_INTERRUPT
|
||||||
|
macros to use the "_vect" format introduced in AVR-Libc
|
||||||
|
v1.4.0. Had to split the 3290 and 6490 out of their existing
|
||||||
|
macro due to an inconsistency in the UART0_RECEIVE_INTERRUPT
|
||||||
|
vector name (seems like a typo: USART_RX_vect for the 3290/6490
|
||||||
|
vice USART0_RX_vect for the others in the macro).
|
||||||
|
Verified all existing macro register names against the device
|
||||||
|
header files in AVR-Libc v1.6.6 to catch any inconsistencies.
|
||||||
|
05/12/2009 Added support for 48P, 88P, 168P, and 328P by adding them to the
|
||||||
|
existing 48/88/168 macro.
|
||||||
|
Added Arduino-style available() and flush() functions for both
|
||||||
|
supported UARTs. Really wanted to keep them out of the library, so
|
||||||
|
that it would be as close as possible to Peter Fleury's original
|
||||||
|
library, but has scoping issues accessing internal variables from
|
||||||
|
another program. Go C!
|
||||||
|
05/13/2009 Changed Interrupt Service Routine label from the old "SIGNAL" to
|
||||||
|
the "ISR" format introduced in AVR-Libc v1.4.0.
|
||||||
|
|
||||||
|
************************************************************************/
|
||||||
|
|
||||||
|
#include <avr/io.h>
|
||||||
|
#include <avr/interrupt.h>
|
||||||
|
#include <avr/pgmspace.h>
|
||||||
|
#include "uart.h"
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* constants and macros
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* size of RX/TX buffers */
|
||||||
|
#define UART_RX_BUFFER_MASK ( UART_RX_BUFFER_SIZE - 1)
|
||||||
|
#define UART_TX_BUFFER_MASK ( UART_TX_BUFFER_SIZE - 1)
|
||||||
|
|
||||||
|
#if ( UART_RX_BUFFER_SIZE & UART_RX_BUFFER_MASK )
|
||||||
|
#error RX buffer size is not a power of 2
|
||||||
|
#endif
|
||||||
|
#if ( UART_TX_BUFFER_SIZE & UART_TX_BUFFER_MASK )
|
||||||
|
#error TX buffer size is not a power of 2
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__AVR_AT90S2313__) \
|
||||||
|
|| defined(__AVR_AT90S4414__) || defined(__AVR_AT90S4434__) \
|
||||||
|
|| defined(__AVR_AT90S8515__) || defined(__AVR_AT90S8535__) \
|
||||||
|
|| defined(__AVR_ATmega103__)
|
||||||
|
/* old AVR classic or ATmega103 with one UART */
|
||||||
|
#define AT90_UART
|
||||||
|
#define UART0_RECEIVE_INTERRUPT UART_RX_vect
|
||||||
|
#define UART0_TRANSMIT_INTERRUPT UART_UDRE_vect
|
||||||
|
#define UART0_STATUS USR
|
||||||
|
#define UART0_CONTROL UCR
|
||||||
|
#define UART0_DATA UDR
|
||||||
|
#define UART0_UDRIE UDRIE
|
||||||
|
#elif defined(__AVR_AT90S2333__) || defined(__AVR_AT90S4433__)
|
||||||
|
/* old AVR classic with one UART */
|
||||||
|
#define AT90_UART
|
||||||
|
#define UART0_RECEIVE_INTERRUPT UART_RX_vect
|
||||||
|
#define UART0_TRANSMIT_INTERRUPT UART_UDRE_vect
|
||||||
|
#define UART0_STATUS UCSRA
|
||||||
|
#define UART0_CONTROL UCSRB
|
||||||
|
#define UART0_DATA UDR
|
||||||
|
#define UART0_UDRIE UDRIE
|
||||||
|
#elif defined(__AVR_ATmega8__) || defined(__AVR_ATmega16__) || defined(__AVR_ATmega32__) \
|
||||||
|
|| defined(__AVR_ATmega323__)
|
||||||
|
/* ATmega with one USART */
|
||||||
|
#define ATMEGA_USART
|
||||||
|
#define UART0_RECEIVE_INTERRUPT USART_RXC_vect
|
||||||
|
#define UART0_TRANSMIT_INTERRUPT USART_UDRE_vect
|
||||||
|
#define UART0_STATUS UCSRA
|
||||||
|
#define UART0_CONTROL UCSRB
|
||||||
|
#define UART0_DATA UDR
|
||||||
|
#define UART0_UDRIE UDRIE
|
||||||
|
#elif defined(__AVR_ATmega8515__) || defined(__AVR_ATmega8535__)
|
||||||
|
/* ATmega with one USART */
|
||||||
|
#define ATMEGA_USART
|
||||||
|
#define UART0_RECEIVE_INTERRUPT USART_RX_vect
|
||||||
|
#define UART0_TRANSMIT_INTERRUPT USART_UDRE_vect
|
||||||
|
#define UART0_STATUS UCSRA
|
||||||
|
#define UART0_CONTROL UCSRB
|
||||||
|
#define UART0_DATA UDR
|
||||||
|
#define UART0_UDRIE UDRIE
|
||||||
|
#elif defined(__AVR_ATmega163__)
|
||||||
|
/* ATmega163 with one UART */
|
||||||
|
#define ATMEGA_UART
|
||||||
|
#define UART0_RECEIVE_INTERRUPT UART_RX_vect
|
||||||
|
#define UART0_TRANSMIT_INTERRUPT UART_UDRE_vect
|
||||||
|
#define UART0_STATUS UCSRA
|
||||||
|
#define UART0_CONTROL UCSRB
|
||||||
|
#define UART0_DATA UDR
|
||||||
|
#define UART0_UDRIE UDRIE
|
||||||
|
#elif defined(__AVR_ATmega162__)
|
||||||
|
/* ATmega with two USART */
|
||||||
|
#define ATMEGA_USART0
|
||||||
|
#define ATMEGA_USART1
|
||||||
|
#define UART0_RECEIVE_INTERRUPT USART0_RXC_vect
|
||||||
|
#define UART1_RECEIVE_INTERRUPT USART1_RXC_vect
|
||||||
|
#define UART0_TRANSMIT_INTERRUPT USART0_UDRE_vect
|
||||||
|
#define UART1_TRANSMIT_INTERRUPT USART1_UDRE_vect
|
||||||
|
#define UART0_STATUS UCSR0A
|
||||||
|
#define UART0_CONTROL UCSR0B
|
||||||
|
#define UART0_DATA UDR0
|
||||||
|
#define UART0_UDRIE UDRIE0
|
||||||
|
#define UART1_STATUS UCSR1A
|
||||||
|
#define UART1_CONTROL UCSR1B
|
||||||
|
#define UART1_DATA UDR1
|
||||||
|
#define UART1_UDRIE UDRIE1
|
||||||
|
#elif defined(__AVR_ATmega64__) || defined(__AVR_ATmega128__)
|
||||||
|
/* ATmega with two USART */
|
||||||
|
#define ATMEGA_USART0
|
||||||
|
#define ATMEGA_USART1
|
||||||
|
#define UART0_RECEIVE_INTERRUPT USART0_RX_vect
|
||||||
|
#define UART1_RECEIVE_INTERRUPT USART1_RX_vect
|
||||||
|
#define UART0_TRANSMIT_INTERRUPT USART0_UDRE_vect
|
||||||
|
#define UART1_TRANSMIT_INTERRUPT USART1_UDRE_vect
|
||||||
|
#define UART0_STATUS UCSR0A
|
||||||
|
#define UART0_CONTROL UCSR0B
|
||||||
|
#define UART0_DATA UDR0
|
||||||
|
#define UART0_UDRIE UDRIE0
|
||||||
|
#define UART1_STATUS UCSR1A
|
||||||
|
#define UART1_CONTROL UCSR1B
|
||||||
|
#define UART1_DATA UDR1
|
||||||
|
#define UART1_UDRIE UDRIE1
|
||||||
|
#elif defined(__AVR_ATmega161__)
|
||||||
|
/* ATmega with UART */
|
||||||
|
#error "AVR ATmega161 currently not supported by this libaray !"
|
||||||
|
#elif defined(__AVR_ATmega169__)
|
||||||
|
/* ATmega with one USART */
|
||||||
|
#define ATMEGA_USART
|
||||||
|
#define UART0_RECEIVE_INTERRUPT USART0_RX_vect
|
||||||
|
#define UART0_TRANSMIT_INTERRUPT USART0_UDRE_vect
|
||||||
|
#define UART0_STATUS UCSRA
|
||||||
|
#define UART0_CONTROL UCSRB
|
||||||
|
#define UART0_DATA UDR
|
||||||
|
#define UART0_UDRIE UDRIE
|
||||||
|
#elif defined(__AVR_ATmega48__) ||defined(__AVR_ATmega88__) || defined(__AVR_ATmega168__) || \
|
||||||
|
defined(__AVR_ATmega48P__) ||defined(__AVR_ATmega88P__) || defined(__AVR_ATmega168P__) || \
|
||||||
|
defined(__AVR_ATmega328P__)
|
||||||
|
/* TLS-Added 48P/88P/168P/328P */
|
||||||
|
/* ATmega with one USART */
|
||||||
|
#define ATMEGA_USART0
|
||||||
|
#define UART0_RECEIVE_INTERRUPT USART_RX_vect
|
||||||
|
#define UART0_TRANSMIT_INTERRUPT USART_UDRE_vect
|
||||||
|
#define UART0_STATUS UCSR0A
|
||||||
|
#define UART0_CONTROL UCSR0B
|
||||||
|
#define UART0_DATA UDR0
|
||||||
|
#define UART0_UDRIE UDRIE0
|
||||||
|
#elif defined(__AVR_ATtiny2313__)
|
||||||
|
#define ATMEGA_USART
|
||||||
|
#define UART0_RECEIVE_INTERRUPT USART_RX_vect
|
||||||
|
#define UART0_TRANSMIT_INTERRUPT USART_UDRE_vect
|
||||||
|
#define UART0_STATUS UCSRA
|
||||||
|
#define UART0_CONTROL UCSRB
|
||||||
|
#define UART0_DATA UDR
|
||||||
|
#define UART0_UDRIE UDRIE
|
||||||
|
#elif defined(__AVR_ATmega329__) ||\
|
||||||
|
defined(__AVR_ATmega649__) ||\
|
||||||
|
defined(__AVR_ATmega325__) ||defined(__AVR_ATmega3250__) ||\
|
||||||
|
defined(__AVR_ATmega645__) ||defined(__AVR_ATmega6450__)
|
||||||
|
/* ATmega with one USART */
|
||||||
|
#define ATMEGA_USART0
|
||||||
|
#define UART0_RECEIVE_INTERRUPT USART0_RX_vect
|
||||||
|
#define UART0_TRANSMIT_INTERRUPT USART0_UDRE_vect
|
||||||
|
#define UART0_STATUS UCSR0A
|
||||||
|
#define UART0_CONTROL UCSR0B
|
||||||
|
#define UART0_DATA UDR0
|
||||||
|
#define UART0_UDRIE UDRIE0
|
||||||
|
#elif defined(__AVR_ATmega3290__) ||\
|
||||||
|
defined(__AVR_ATmega6490__) ||
|
||||||
|
/* TLS-Separated these two from the previous group because of inconsistency in the USART_RX */
|
||||||
|
/* ATmega with one USART */
|
||||||
|
#define ATMEGA_USART0
|
||||||
|
#define UART0_RECEIVE_INTERRUPT USART_RX_vect
|
||||||
|
#define UART0_TRANSMIT_INTERRUPT USART0_UDRE_vect
|
||||||
|
#define UART0_STATUS UCSR0A
|
||||||
|
#define UART0_CONTROL UCSR0B
|
||||||
|
#define UART0_DATA UDR0
|
||||||
|
#define UART0_UDRIE UDRIE0
|
||||||
|
#elif defined(__AVR_ATmega2560__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega640__)
|
||||||
|
/* ATmega with two USART */
|
||||||
|
#define ATMEGA_USART0
|
||||||
|
#define ATMEGA_USART1
|
||||||
|
#define UART0_RECEIVE_INTERRUPT USART0_RX_vect
|
||||||
|
#define UART1_RECEIVE_INTERRUPT USART0_UDRE_vect
|
||||||
|
#define UART0_TRANSMIT_INTERRUPT USART1_RX_vect
|
||||||
|
#define UART1_TRANSMIT_INTERRUPT USART1_UDRE_vect
|
||||||
|
#define UART0_STATUS UCSR0A
|
||||||
|
#define UART0_CONTROL UCSR0B
|
||||||
|
#define UART0_DATA UDR0
|
||||||
|
#define UART0_UDRIE UDRIE0
|
||||||
|
#define UART1_STATUS UCSR1A
|
||||||
|
#define UART1_CONTROL UCSR1B
|
||||||
|
#define UART1_DATA UDR1
|
||||||
|
#define UART1_UDRIE UDRIE1
|
||||||
|
#elif defined(__AVR_ATmega644__)
|
||||||
|
/* ATmega with one USART */
|
||||||
|
#define ATMEGA_USART0
|
||||||
|
#define UART0_RECEIVE_INTERRUPT USART0_RX_vect
|
||||||
|
#define UART0_TRANSMIT_INTERRUPT USART0_UDRE_vect
|
||||||
|
#define UART0_STATUS UCSR0A
|
||||||
|
#define UART0_CONTROL UCSR0B
|
||||||
|
#define UART0_DATA UDR0
|
||||||
|
#define UART0_UDRIE UDRIE0
|
||||||
|
#elif defined(__AVR_ATmega164P__) || defined(__AVR_ATmega324P__) || defined(__AVR_ATmega644P__)
|
||||||
|
/* ATmega with two USART */
|
||||||
|
#define ATMEGA_USART0
|
||||||
|
#define ATMEGA_USART1
|
||||||
|
#define UART0_RECEIVE_INTERRUPT USART0_RX_vect
|
||||||
|
#define UART1_RECEIVE_INTERRUPT USART0_UDRE_vect
|
||||||
|
#define UART0_TRANSMIT_INTERRUPT USART1_RX_vect
|
||||||
|
#define UART1_TRANSMIT_INTERRUPT USART1_UDRE_vect
|
||||||
|
#define UART0_STATUS UCSR0A
|
||||||
|
#define UART0_CONTROL UCSR0B
|
||||||
|
#define UART0_DATA UDR0
|
||||||
|
#define UART0_UDRIE UDRIE0
|
||||||
|
#define UART1_STATUS UCSR1A
|
||||||
|
#define UART1_CONTROL UCSR1B
|
||||||
|
#define UART1_DATA UDR1
|
||||||
|
#define UART1_UDRIE UDRIE1
|
||||||
|
#else
|
||||||
|
#error "no UART definition for MCU available"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* module global variables
|
||||||
|
*/
|
||||||
|
static volatile unsigned char UART_TxBuf[UART_TX_BUFFER_SIZE];
|
||||||
|
static volatile unsigned char UART_RxBuf[UART_RX_BUFFER_SIZE];
|
||||||
|
static volatile unsigned char UART_TxHead;
|
||||||
|
static volatile unsigned char UART_TxTail;
|
||||||
|
static volatile unsigned char UART_RxHead;
|
||||||
|
static volatile unsigned char UART_RxTail;
|
||||||
|
static volatile unsigned char UART_LastRxError;
|
||||||
|
|
||||||
|
#if defined( ATMEGA_USART1 )
|
||||||
|
static volatile unsigned char UART1_TxBuf[UART_TX_BUFFER_SIZE];
|
||||||
|
static volatile unsigned char UART1_RxBuf[UART_RX_BUFFER_SIZE];
|
||||||
|
static volatile unsigned char UART1_TxHead;
|
||||||
|
static volatile unsigned char UART1_TxTail;
|
||||||
|
static volatile unsigned char UART1_RxHead;
|
||||||
|
static volatile unsigned char UART1_RxTail;
|
||||||
|
static volatile unsigned char UART1_LastRxError;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ISR(UART0_RECEIVE_INTERRUPT)
|
||||||
|
/*************************************************************************
|
||||||
|
Function: UART Receive Complete interrupt
|
||||||
|
Purpose: called when the UART has received a character
|
||||||
|
**************************************************************************/
|
||||||
|
{
|
||||||
|
unsigned char tmphead;
|
||||||
|
unsigned char data;
|
||||||
|
unsigned char usr;
|
||||||
|
unsigned char lastRxError;
|
||||||
|
|
||||||
|
|
||||||
|
/* read UART status register and UART data register */
|
||||||
|
usr = UART0_STATUS;
|
||||||
|
data = UART0_DATA;
|
||||||
|
|
||||||
|
/* */
|
||||||
|
#if defined( AT90_UART )
|
||||||
|
lastRxError = (usr & (_BV(FE)|_BV(DOR)) );
|
||||||
|
#elif defined( ATMEGA_USART )
|
||||||
|
lastRxError = (usr & (_BV(FE)|_BV(DOR)) );
|
||||||
|
#elif defined( ATMEGA_USART0 )
|
||||||
|
lastRxError = (usr & (_BV(FE0)|_BV(DOR0)) );
|
||||||
|
#elif defined ( ATMEGA_UART )
|
||||||
|
lastRxError = (usr & (_BV(FE)|_BV(DOR)) );
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* calculate buffer index */
|
||||||
|
tmphead = ( UART_RxHead + 1) & UART_RX_BUFFER_MASK;
|
||||||
|
|
||||||
|
if ( tmphead == UART_RxTail ) {
|
||||||
|
/* error: receive buffer overflow */
|
||||||
|
lastRxError = UART_BUFFER_OVERFLOW >> 8;
|
||||||
|
}else{
|
||||||
|
/* store new index */
|
||||||
|
UART_RxHead = tmphead;
|
||||||
|
/* store received data in buffer */
|
||||||
|
UART_RxBuf[tmphead] = data;
|
||||||
|
}
|
||||||
|
UART_LastRxError = lastRxError;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
ISR(UART0_TRANSMIT_INTERRUPT)
|
||||||
|
/*************************************************************************
|
||||||
|
Function: UART Data Register Empty interrupt
|
||||||
|
Purpose: called when the UART is ready to transmit the next byte
|
||||||
|
**************************************************************************/
|
||||||
|
{
|
||||||
|
unsigned char tmptail;
|
||||||
|
|
||||||
|
|
||||||
|
if ( UART_TxHead != UART_TxTail) {
|
||||||
|
/* calculate and store new buffer index */
|
||||||
|
tmptail = (UART_TxTail + 1) & UART_TX_BUFFER_MASK;
|
||||||
|
UART_TxTail = tmptail;
|
||||||
|
/* get one byte from buffer and write it to UART */
|
||||||
|
UART0_DATA = UART_TxBuf[tmptail]; /* start transmission */
|
||||||
|
}else{
|
||||||
|
/* tx buffer empty, disable UDRE interrupt */
|
||||||
|
UART0_CONTROL &= ~_BV(UART0_UDRIE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
Function: uart_init()
|
||||||
|
Purpose: initialize UART and set baudrate
|
||||||
|
Input: baudrate using macro UART_BAUD_SELECT()
|
||||||
|
Returns: none
|
||||||
|
**************************************************************************/
|
||||||
|
void uart_init(unsigned int baudrate)
|
||||||
|
{
|
||||||
|
UART_TxHead = 0;
|
||||||
|
UART_TxTail = 0;
|
||||||
|
UART_RxHead = 0;
|
||||||
|
UART_RxTail = 0;
|
||||||
|
|
||||||
|
#if defined( AT90_UART )
|
||||||
|
/* set baud rate */
|
||||||
|
UBRR = (unsigned char)baudrate;
|
||||||
|
|
||||||
|
/* enable UART receiver and transmmitter and receive complete interrupt */
|
||||||
|
UART0_CONTROL = _BV(RXCIE)|_BV(RXEN)|_BV(TXEN);
|
||||||
|
|
||||||
|
#elif defined (ATMEGA_USART)
|
||||||
|
/* Set baud rate */
|
||||||
|
if ( baudrate & 0x8000 )
|
||||||
|
{
|
||||||
|
UART0_STATUS = (1<<U2X); //Enable 2x speed
|
||||||
|
baudrate &= ~0x8000;
|
||||||
|
}
|
||||||
|
UBRRH = (unsigned char)(baudrate>>8);
|
||||||
|
UBRRL = (unsigned char) baudrate;
|
||||||
|
|
||||||
|
/* Enable USART receiver and transmitter and receive complete interrupt */
|
||||||
|
UART0_CONTROL = _BV(RXCIE)|(1<<RXEN)|(1<<TXEN);
|
||||||
|
|
||||||
|
/* Set frame format: asynchronous, 8data, no parity, 1stop bit */
|
||||||
|
#ifdef URSEL
|
||||||
|
UCSRC = (1<<URSEL)|(3<<UCSZ0);
|
||||||
|
#else
|
||||||
|
UCSRC = (3<<UCSZ0);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#elif defined (ATMEGA_USART0 )
|
||||||
|
/* Set baud rate */
|
||||||
|
if ( baudrate & 0x8000 )
|
||||||
|
{
|
||||||
|
UART0_STATUS = (1<<U2X0); //Enable 2x speed
|
||||||
|
baudrate &= ~0x8000;
|
||||||
|
}
|
||||||
|
UBRR0H = (unsigned char)(baudrate>>8);
|
||||||
|
UBRR0L = (unsigned char) baudrate;
|
||||||
|
|
||||||
|
/* Enable USART receiver and transmitter and receive complete interrupt */
|
||||||
|
UART0_CONTROL = _BV(RXCIE0)|(1<<RXEN0)|(1<<TXEN0);
|
||||||
|
|
||||||
|
/* Set frame format: asynchronous, 8data, no parity, 1stop bit */
|
||||||
|
#ifdef URSEL0
|
||||||
|
UCSR0C = (1<<URSEL0)|(3<<UCSZ00);
|
||||||
|
#else
|
||||||
|
UCSR0C = (3<<UCSZ00);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#elif defined ( ATMEGA_UART )
|
||||||
|
/* set baud rate */
|
||||||
|
if ( baudrate & 0x8000 )
|
||||||
|
{
|
||||||
|
UART0_STATUS = (1<<U2X); //Enable 2x speed
|
||||||
|
baudrate &= ~0x8000;
|
||||||
|
}
|
||||||
|
UBRRHI = (unsigned char)(baudrate>>8);
|
||||||
|
UBRR = (unsigned char) baudrate;
|
||||||
|
|
||||||
|
/* Enable UART receiver and transmitter and receive complete interrupt */
|
||||||
|
UART0_CONTROL = _BV(RXCIE)|(1<<RXEN)|(1<<TXEN);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
}/* uart_init */
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
Function: uart_getc()
|
||||||
|
Purpose: return byte from ringbuffer
|
||||||
|
Returns: lower byte: received byte from ringbuffer
|
||||||
|
higher byte: last receive error
|
||||||
|
**************************************************************************/
|
||||||
|
unsigned int uart_getc(void)
|
||||||
|
{
|
||||||
|
unsigned char tmptail;
|
||||||
|
unsigned char data;
|
||||||
|
|
||||||
|
|
||||||
|
if ( UART_RxHead == UART_RxTail ) {
|
||||||
|
return UART_NO_DATA; /* no data available */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* calculate /store buffer index */
|
||||||
|
tmptail = (UART_RxTail + 1) & UART_RX_BUFFER_MASK;
|
||||||
|
UART_RxTail = tmptail;
|
||||||
|
|
||||||
|
/* get data from receive buffer */
|
||||||
|
data = UART_RxBuf[tmptail];
|
||||||
|
|
||||||
|
return (UART_LastRxError << 8) + data;
|
||||||
|
|
||||||
|
}/* uart_getc */
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
Function: uart_putc()
|
||||||
|
Purpose: write byte to ringbuffer for transmitting via UART
|
||||||
|
Input: byte to be transmitted
|
||||||
|
Returns: none
|
||||||
|
**************************************************************************/
|
||||||
|
void uart_putc(unsigned char data)
|
||||||
|
{
|
||||||
|
unsigned char tmphead;
|
||||||
|
|
||||||
|
|
||||||
|
tmphead = (UART_TxHead + 1) & UART_TX_BUFFER_MASK;
|
||||||
|
|
||||||
|
while ( tmphead == UART_TxTail ){
|
||||||
|
;/* wait for free space in buffer */
|
||||||
|
}
|
||||||
|
|
||||||
|
UART_TxBuf[tmphead] = data;
|
||||||
|
UART_TxHead = tmphead;
|
||||||
|
|
||||||
|
/* enable UDRE interrupt */
|
||||||
|
UART0_CONTROL |= _BV(UART0_UDRIE);
|
||||||
|
|
||||||
|
}/* uart_putc */
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
Function: uart_puts()
|
||||||
|
Purpose: transmit string to UART
|
||||||
|
Input: string to be transmitted
|
||||||
|
Returns: none
|
||||||
|
**************************************************************************/
|
||||||
|
void uart_puts(const char *s )
|
||||||
|
{
|
||||||
|
while (*s)
|
||||||
|
uart_putc(*s++);
|
||||||
|
|
||||||
|
}/* uart_puts */
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
Function: uart_puts_p()
|
||||||
|
Purpose: transmit string from program memory to UART
|
||||||
|
Input: program memory string to be transmitted
|
||||||
|
Returns: none
|
||||||
|
**************************************************************************/
|
||||||
|
void uart_puts_p(const char *progmem_s )
|
||||||
|
{
|
||||||
|
register char c;
|
||||||
|
|
||||||
|
while ( (c = pgm_read_byte(progmem_s++)) )
|
||||||
|
uart_putc(c);
|
||||||
|
|
||||||
|
}/* uart_puts_p */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
Function: uart_available()
|
||||||
|
Purpose: Determine the number of bytes waiting in the receive buffer
|
||||||
|
Input: None
|
||||||
|
Returns: Integer number of bytes in the receive buffer
|
||||||
|
**************************************************************************/
|
||||||
|
int uart_available(void)
|
||||||
|
{
|
||||||
|
return (UART_RX_BUFFER_MASK + UART_RxHead - UART_RxTail) % UART_RX_BUFFER_MASK;
|
||||||
|
}/* uart_available */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
Function: uart_flush()
|
||||||
|
Purpose: Flush bytes waiting the receive buffer. Acutally ignores them.
|
||||||
|
Input: None
|
||||||
|
Returns: None
|
||||||
|
**************************************************************************/
|
||||||
|
void uart_flush(void)
|
||||||
|
{
|
||||||
|
UART_RxHead = UART_RxTail;
|
||||||
|
}/* uart_flush */
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* these functions are only for ATmegas with two USART
|
||||||
|
*/
|
||||||
|
#if defined( ATMEGA_USART1 )
|
||||||
|
|
||||||
|
SIGNAL(UART1_RECEIVE_INTERRUPT)
|
||||||
|
/*************************************************************************
|
||||||
|
Function: UART1 Receive Complete interrupt
|
||||||
|
Purpose: called when the UART1 has received a character
|
||||||
|
**************************************************************************/
|
||||||
|
{
|
||||||
|
unsigned char tmphead;
|
||||||
|
unsigned char data;
|
||||||
|
unsigned char usr;
|
||||||
|
unsigned char lastRxError;
|
||||||
|
|
||||||
|
|
||||||
|
/* read UART status register and UART data register */
|
||||||
|
usr = UART1_STATUS;
|
||||||
|
data = UART1_DATA;
|
||||||
|
|
||||||
|
/* */
|
||||||
|
lastRxError = (usr & (_BV(FE1)|_BV(DOR1)) );
|
||||||
|
|
||||||
|
/* calculate buffer index */
|
||||||
|
tmphead = ( UART1_RxHead + 1) & UART_RX_BUFFER_MASK;
|
||||||
|
|
||||||
|
if ( tmphead == UART1_RxTail ) {
|
||||||
|
/* error: receive buffer overflow */
|
||||||
|
lastRxError = UART_BUFFER_OVERFLOW >> 8;
|
||||||
|
}else{
|
||||||
|
/* store new index */
|
||||||
|
UART1_RxHead = tmphead;
|
||||||
|
/* store received data in buffer */
|
||||||
|
UART1_RxBuf[tmphead] = data;
|
||||||
|
}
|
||||||
|
UART1_LastRxError = lastRxError;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
SIGNAL(UART1_TRANSMIT_INTERRUPT)
|
||||||
|
/*************************************************************************
|
||||||
|
Function: UART1 Data Register Empty interrupt
|
||||||
|
Purpose: called when the UART1 is ready to transmit the next byte
|
||||||
|
**************************************************************************/
|
||||||
|
{
|
||||||
|
unsigned char tmptail;
|
||||||
|
|
||||||
|
|
||||||
|
if ( UART1_TxHead != UART1_TxTail) {
|
||||||
|
/* calculate and store new buffer index */
|
||||||
|
tmptail = (UART1_TxTail + 1) & UART_TX_BUFFER_MASK;
|
||||||
|
UART1_TxTail = tmptail;
|
||||||
|
/* get one byte from buffer and write it to UART */
|
||||||
|
UART1_DATA = UART1_TxBuf[tmptail]; /* start transmission */
|
||||||
|
}else{
|
||||||
|
/* tx buffer empty, disable UDRE interrupt */
|
||||||
|
UART1_CONTROL &= ~_BV(UART1_UDRIE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
Function: uart1_init()
|
||||||
|
Purpose: initialize UART1 and set baudrate
|
||||||
|
Input: baudrate using macro UART_BAUD_SELECT()
|
||||||
|
Returns: none
|
||||||
|
**************************************************************************/
|
||||||
|
void uart1_init(unsigned int baudrate)
|
||||||
|
{
|
||||||
|
UART1_TxHead = 0;
|
||||||
|
UART1_TxTail = 0;
|
||||||
|
UART1_RxHead = 0;
|
||||||
|
UART1_RxTail = 0;
|
||||||
|
|
||||||
|
|
||||||
|
/* Set baud rate */
|
||||||
|
if ( baudrate & 0x8000 )
|
||||||
|
{
|
||||||
|
UART1_STATUS = (1<<U2X1); //Enable 2x speed
|
||||||
|
baudrate &= ~0x8000;
|
||||||
|
}
|
||||||
|
UBRR1H = (unsigned char)(baudrate>>8);
|
||||||
|
UBRR1L = (unsigned char) baudrate;
|
||||||
|
|
||||||
|
/* Enable USART receiver and transmitter and receive complete interrupt */
|
||||||
|
UART1_CONTROL = _BV(RXCIE1)|(1<<RXEN1)|(1<<TXEN1);
|
||||||
|
|
||||||
|
/* Set frame format: asynchronous, 8data, no parity, 1stop bit */
|
||||||
|
#ifdef URSEL1
|
||||||
|
UCSR1C = (1<<URSEL1)|(3<<UCSZ10);
|
||||||
|
#else
|
||||||
|
UCSR1C = (3<<UCSZ10);
|
||||||
|
#endif
|
||||||
|
}/* uart_init */
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
Function: uart1_getc()
|
||||||
|
Purpose: return byte from ringbuffer
|
||||||
|
Returns: lower byte: received byte from ringbuffer
|
||||||
|
higher byte: last receive error
|
||||||
|
**************************************************************************/
|
||||||
|
unsigned int uart1_getc(void)
|
||||||
|
{
|
||||||
|
unsigned char tmptail;
|
||||||
|
unsigned char data;
|
||||||
|
|
||||||
|
|
||||||
|
if ( UART1_RxHead == UART1_RxTail ) {
|
||||||
|
return UART_NO_DATA; /* no data available */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* calculate /store buffer index */
|
||||||
|
tmptail = (UART1_RxTail + 1) & UART_RX_BUFFER_MASK;
|
||||||
|
UART1_RxTail = tmptail;
|
||||||
|
|
||||||
|
/* get data from receive buffer */
|
||||||
|
data = UART1_RxBuf[tmptail];
|
||||||
|
|
||||||
|
return (UART1_LastRxError << 8) + data;
|
||||||
|
|
||||||
|
}/* uart1_getc */
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
Function: uart1_putc()
|
||||||
|
Purpose: write byte to ringbuffer for transmitting via UART
|
||||||
|
Input: byte to be transmitted
|
||||||
|
Returns: none
|
||||||
|
**************************************************************************/
|
||||||
|
void uart1_putc(unsigned char data)
|
||||||
|
{
|
||||||
|
unsigned char tmphead;
|
||||||
|
|
||||||
|
|
||||||
|
tmphead = (UART1_TxHead + 1) & UART_TX_BUFFER_MASK;
|
||||||
|
|
||||||
|
while ( tmphead == UART1_TxTail ){
|
||||||
|
;/* wait for free space in buffer */
|
||||||
|
}
|
||||||
|
|
||||||
|
UART1_TxBuf[tmphead] = data;
|
||||||
|
UART1_TxHead = tmphead;
|
||||||
|
|
||||||
|
/* enable UDRE interrupt */
|
||||||
|
UART1_CONTROL |= _BV(UART1_UDRIE);
|
||||||
|
|
||||||
|
}/* uart1_putc */
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
Function: uart1_puts()
|
||||||
|
Purpose: transmit string to UART1
|
||||||
|
Input: string to be transmitted
|
||||||
|
Returns: none
|
||||||
|
**************************************************************************/
|
||||||
|
void uart1_puts(const char *s )
|
||||||
|
{
|
||||||
|
while (*s)
|
||||||
|
uart1_putc(*s++);
|
||||||
|
|
||||||
|
}/* uart1_puts */
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
Function: uart1_puts_p()
|
||||||
|
Purpose: transmit string from program memory to UART1
|
||||||
|
Input: program memory string to be transmitted
|
||||||
|
Returns: none
|
||||||
|
**************************************************************************/
|
||||||
|
void uart1_puts_p(const char *progmem_s )
|
||||||
|
{
|
||||||
|
register char c;
|
||||||
|
|
||||||
|
while ( (c = pgm_read_byte(progmem_s++)) )
|
||||||
|
uart1_putc(c);
|
||||||
|
|
||||||
|
}/* uart1_puts_p */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
Function: uart1_available()
|
||||||
|
Purpose: Determine the number of bytes waiting in the receive buffer
|
||||||
|
Input: None
|
||||||
|
Returns: Integer number of bytes in the receive buffer
|
||||||
|
**************************************************************************/
|
||||||
|
int uart1_available(void)
|
||||||
|
{
|
||||||
|
return (UART_RX_BUFFER_MASK + UART1_RxHead - UART1_RxTail) % UART_RX_BUFFER_MASK;
|
||||||
|
}/* uart1_available */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
Function: uart1_flush()
|
||||||
|
Purpose: Flush bytes waiting the receive buffer. Acutally ignores them.
|
||||||
|
Input: None
|
||||||
|
Returns: None
|
||||||
|
**************************************************************************/
|
||||||
|
void uart1_flush(void)
|
||||||
|
{
|
||||||
|
UART1_RxHead = UART1_RxTail;
|
||||||
|
}/* uart1_flush */
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,248 @@
|
||||||
|
#ifndef UART_H
|
||||||
|
#define UART_H
|
||||||
|
/************************************************************************
|
||||||
|
Title: Interrupt UART library with receive/transmit circular buffers
|
||||||
|
Author: Peter Fleury <pfleury@gmx.ch> http://jump.to/fleury
|
||||||
|
File: $Id: uart.h,v 1.8.2.1 2007/07/01 11:14:38 peter Exp $
|
||||||
|
Software: AVR-GCC 4.1, AVR Libc 1.4
|
||||||
|
Hardware: any AVR with built-in UART, tested on AT90S8515 & ATmega8 at 4 Mhz
|
||||||
|
License: GNU General Public License
|
||||||
|
Usage: see Doxygen manual
|
||||||
|
|
||||||
|
LICENSE:
|
||||||
|
Copyright (C) 2006 Peter Fleury
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
|
any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
************************************************************************/
|
||||||
|
|
||||||
|
/************************************************************************
|
||||||
|
uart_available, uart_flush, uart1_available, and uart1_flush functions
|
||||||
|
were adapted from the Arduino HardwareSerial.h library by Tim Sharpe on
|
||||||
|
11 Jan 2009. The license info for HardwareSerial.h is as follows:
|
||||||
|
|
||||||
|
HardwareSerial.h - Hardware serial library for Wiring
|
||||||
|
Copyright (c) 2006 Nicholas Zambetti. All right reserved.
|
||||||
|
|
||||||
|
This library is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU Lesser General Public
|
||||||
|
License as published by the Free Software Foundation; either
|
||||||
|
version 2.1 of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This library is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public
|
||||||
|
License along with this library; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
************************************************************************/
|
||||||
|
|
||||||
|
/************************************************************************
|
||||||
|
Changelog for modifications made by Tim Sharpe, starting with the current
|
||||||
|
library version on his Web site as of 05/01/2009.
|
||||||
|
|
||||||
|
Date Description
|
||||||
|
=========================================================================
|
||||||
|
05/12/2009 Added Arduino-style available() and flush() functions for both
|
||||||
|
supported UARTs. Really wanted to keep them out of the library, so
|
||||||
|
that it would be as close as possible to Peter Fleury's original
|
||||||
|
library, but has scoping issues accessing internal variables from
|
||||||
|
another program. Go C!
|
||||||
|
|
||||||
|
************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @defgroup pfleury_uart UART Library
|
||||||
|
* @code #include <uart.h> @endcode
|
||||||
|
*
|
||||||
|
* @brief Interrupt UART library using the built-in UART with transmit and receive circular buffers.
|
||||||
|
*
|
||||||
|
* This library can be used to transmit and receive data through the built in UART.
|
||||||
|
*
|
||||||
|
* An interrupt is generated when the UART has finished transmitting or
|
||||||
|
* receiving a byte. The interrupt handling routines use circular buffers
|
||||||
|
* for buffering received and transmitted data.
|
||||||
|
*
|
||||||
|
* The UART_RX_BUFFER_SIZE and UART_TX_BUFFER_SIZE constants define
|
||||||
|
* the size of the circular buffers in bytes. Note that these constants must be a power of 2.
|
||||||
|
* You may need to adapt this constants to your target and your application by adding
|
||||||
|
* CDEFS += -DUART_RX_BUFFER_SIZE=nn -DUART_RX_BUFFER_SIZE=nn to your Makefile.
|
||||||
|
*
|
||||||
|
* @note Based on Atmel Application Note AVR306
|
||||||
|
* @author Peter Fleury pfleury@gmx.ch http://jump.to/fleury
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**@{*/
|
||||||
|
|
||||||
|
|
||||||
|
#if (__GNUC__ * 100 + __GNUC_MINOR__) < 304
|
||||||
|
#error "This library requires AVR-GCC 3.4 or later, update to newer AVR-GCC compiler !"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
** constants and macros
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @brief UART Baudrate Expression
|
||||||
|
* @param xtalcpu system clock in Mhz, e.g. 4000000L for 4Mhz
|
||||||
|
* @param baudrate baudrate in bps, e.g. 1200, 2400, 9600
|
||||||
|
*/
|
||||||
|
#define UART_BAUD_SELECT(baudRate,xtalCpu) ((xtalCpu)/((baudRate)*16l)-1)
|
||||||
|
|
||||||
|
/** @brief UART Baudrate Expression for ATmega double speed mode
|
||||||
|
* @param xtalcpu system clock in Mhz, e.g. 4000000L for 4Mhz
|
||||||
|
* @param baudrate baudrate in bps, e.g. 1200, 2400, 9600
|
||||||
|
*/
|
||||||
|
#define UART_BAUD_SELECT_DOUBLE_SPEED(baudRate,xtalCpu) (((xtalCpu)/((baudRate)*8l)-1)|0x8000)
|
||||||
|
|
||||||
|
|
||||||
|
/** Size of the circular receive buffer, must be power of 2 */
|
||||||
|
#ifndef UART_RX_BUFFER_SIZE
|
||||||
|
#define UART_RX_BUFFER_SIZE 32
|
||||||
|
#endif
|
||||||
|
/** Size of the circular transmit buffer, must be power of 2 */
|
||||||
|
#ifndef UART_TX_BUFFER_SIZE
|
||||||
|
#define UART_TX_BUFFER_SIZE 32
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* test if the size of the circular buffers fits into SRAM */
|
||||||
|
#if ( (UART_RX_BUFFER_SIZE+UART_TX_BUFFER_SIZE) >= (RAMEND-0x60 ) )
|
||||||
|
#error "size of UART_RX_BUFFER_SIZE + UART_TX_BUFFER_SIZE larger than size of SRAM"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
** high byte error return code of uart_getc()
|
||||||
|
*/
|
||||||
|
#define UART_FRAME_ERROR 0x0800 /* Framing Error by UART */
|
||||||
|
#define UART_OVERRUN_ERROR 0x0400 /* Overrun condition by UART */
|
||||||
|
#define UART_BUFFER_OVERFLOW 0x0200 /* receive ringbuffer overflow */
|
||||||
|
#define UART_NO_DATA 0x0100 /* no receive data available */
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
** function prototypes
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
@brief Initialize UART and set baudrate
|
||||||
|
@param baudrate Specify baudrate using macro UART_BAUD_SELECT()
|
||||||
|
@return none
|
||||||
|
*/
|
||||||
|
extern void uart_init(unsigned int baudrate);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get received byte from ringbuffer
|
||||||
|
*
|
||||||
|
* Returns in the lower byte the received character and in the
|
||||||
|
* higher byte the last receive error.
|
||||||
|
* UART_NO_DATA is returned when no data is available.
|
||||||
|
*
|
||||||
|
* @param void
|
||||||
|
* @return lower byte: received byte from ringbuffer
|
||||||
|
* @return higher byte: last receive status
|
||||||
|
* - \b 0 successfully received data from UART
|
||||||
|
* - \b UART_NO_DATA
|
||||||
|
* <br>no receive data available
|
||||||
|
* - \b UART_BUFFER_OVERFLOW
|
||||||
|
* <br>Receive ringbuffer overflow.
|
||||||
|
* We are not reading the receive buffer fast enough,
|
||||||
|
* one or more received character have been dropped
|
||||||
|
* - \b UART_OVERRUN_ERROR
|
||||||
|
* <br>Overrun condition by UART.
|
||||||
|
* A character already present in the UART UDR register was
|
||||||
|
* not read by the interrupt handler before the next character arrived,
|
||||||
|
* one or more received characters have been dropped.
|
||||||
|
* - \b UART_FRAME_ERROR
|
||||||
|
* <br>Framing Error by UART
|
||||||
|
*/
|
||||||
|
extern unsigned int uart_getc(void);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Put byte to ringbuffer for transmitting via UART
|
||||||
|
* @param data byte to be transmitted
|
||||||
|
* @return none
|
||||||
|
*/
|
||||||
|
extern void uart_putc(unsigned char data);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Put string to ringbuffer for transmitting via UART
|
||||||
|
*
|
||||||
|
* The string is buffered by the uart library in a circular buffer
|
||||||
|
* and one character at a time is transmitted to the UART using interrupts.
|
||||||
|
* Blocks if it can not write the whole string into the circular buffer.
|
||||||
|
*
|
||||||
|
* @param s string to be transmitted
|
||||||
|
* @return none
|
||||||
|
*/
|
||||||
|
extern void uart_puts(const char *s );
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Put string from program memory to ringbuffer for transmitting via UART.
|
||||||
|
*
|
||||||
|
* The string is buffered by the uart library in a circular buffer
|
||||||
|
* and one character at a time is transmitted to the UART using interrupts.
|
||||||
|
* Blocks if it can not write the whole string into the circular buffer.
|
||||||
|
*
|
||||||
|
* @param s program memory string to be transmitted
|
||||||
|
* @return none
|
||||||
|
* @see uart_puts_P
|
||||||
|
*/
|
||||||
|
extern void uart_puts_p(const char *s );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Macro to automatically put a string constant into program memory
|
||||||
|
*/
|
||||||
|
#define uart_puts_P(__s) uart_puts_p(PSTR(__s))
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Return number of bytes waiting in the receive buffer
|
||||||
|
* @param none
|
||||||
|
* @return bytes waiting in the receive buffer
|
||||||
|
*/
|
||||||
|
extern int uart_available(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Flush bytes waiting in receive buffer
|
||||||
|
* @param none
|
||||||
|
* @return none
|
||||||
|
*/
|
||||||
|
extern void uart_flush(void);
|
||||||
|
|
||||||
|
|
||||||
|
/** @brief Initialize USART1 (only available on selected ATmegas) @see uart_init */
|
||||||
|
extern void uart1_init(unsigned int baudrate);
|
||||||
|
/** @brief Get received byte of USART1 from ringbuffer. (only available on selected ATmega) @see uart_getc */
|
||||||
|
extern unsigned int uart1_getc(void);
|
||||||
|
/** @brief Put byte to ringbuffer for transmitting via USART1 (only available on selected ATmega) @see uart_putc */
|
||||||
|
extern void uart1_putc(unsigned char data);
|
||||||
|
/** @brief Put string to ringbuffer for transmitting via USART1 (only available on selected ATmega) @see uart_puts */
|
||||||
|
extern void uart1_puts(const char *s );
|
||||||
|
/** @brief Put string from program memory to ringbuffer for transmitting via USART1 (only available on selected ATmega) @see uart_puts_p */
|
||||||
|
extern void uart1_puts_p(const char *s );
|
||||||
|
/** @brief Macro to automatically put a string constant into program memory */
|
||||||
|
#define uart1_puts_P(__s) uart1_puts_p(PSTR(__s))
|
||||||
|
/** @brief Return number of bytes waiting in the receive buffer */
|
||||||
|
extern int uart1_available(void);
|
||||||
|
/** @brief Flush bytes waiting in receive buffer */
|
||||||
|
extern void uart1_flush(void);
|
||||||
|
|
||||||
|
/**@}*/
|
||||||
|
|
||||||
|
|
||||||
|
#endif // UART_H
|
||||||
|
|
Loading…
Reference in New Issue