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