Parcourir la source

Initial commit

master
Julian il y a 2 ans
révision
7f2d49b333
48 fichiers modifiés avec 11623 ajouts et 0 suppressions
  1. +34
    -0
      PoolClock.atsln
  2. +129
    -0
      PoolClock/Debug/Makefile
  3. +1
    -0
      PoolClock/Debug/PoolClock.eep
  4. BIN
      PoolClock/Debug/PoolClock.elf
  5. +48
    -0
      PoolClock/Debug/PoolClock.hex
  6. +715
    -0
      PoolClock/Debug/PoolClock.lss
  7. +503
    -0
      PoolClock/Debug/PoolClock.map
  8. +49
    -0
      PoolClock/Debug/PoolClock.srec
  9. +1
    -0
      PoolClock/Debug/PoolClockWaterTemp.eep
  10. BIN
      PoolClock/Debug/PoolClockWaterTemp.elf
  11. +171
    -0
      PoolClock/Debug/PoolClockWaterTemp.hex
  12. +2104
    -0
      PoolClock/Debug/PoolClockWaterTemp.lss
  13. +593
    -0
      PoolClock/Debug/PoolClockWaterTemp.map
  14. +172
    -0
      PoolClock/Debug/PoolClockWaterTemp.srec
  15. +49
    -0
      PoolClock/Debug/main.d
  16. BIN
      PoolClock/Debug/main.o
  17. +6
    -0
      PoolClock/Debug/makedep.mk
  18. +86
    -0
      PoolClock/PoolClockWaterTemp.componentinfo.xml
  19. +139
    -0
      PoolClock/PoolClockWaterTemp.cproj
  20. +266
    -0
      PoolClock/main - Kopie.c
  21. +559
    -0
      PoolClock/main.c
  22. +129
    -0
      PoolClockAirTemp/Debug/Makefile
  23. +1
    -0
      PoolClockAirTemp/Debug/PoolClockAirTemp.eep
  24. BIN
      PoolClockAirTemp/Debug/PoolClockAirTemp.elf
  25. +77
    -0
      PoolClockAirTemp/Debug/PoolClockAirTemp.hex
  26. +837
    -0
      PoolClockAirTemp/Debug/PoolClockAirTemp.lss
  27. +582
    -0
      PoolClockAirTemp/Debug/PoolClockAirTemp.map
  28. +78
    -0
      PoolClockAirTemp/Debug/PoolClockAirTemp.srec
  29. +49
    -0
      PoolClockAirTemp/Debug/main.d
  30. BIN
      PoolClockAirTemp/Debug/main.o
  31. +6
    -0
      PoolClockAirTemp/Debug/makedep.mk
  32. +86
    -0
      PoolClockAirTemp/PoolClockAirTemp.componentinfo.xml
  33. +126
    -0
      PoolClockAirTemp/PoolClockAirTemp.cproj
  34. +302
    -0
      PoolClockAirTemp/main.c
  35. +129
    -0
      PoolClockHumidity/Debug/Makefile
  36. +1
    -0
      PoolClockHumidity/Debug/PoolClockHumidity.eep
  37. BIN
      PoolClockHumidity/Debug/PoolClockHumidity.elf
  38. +148
    -0
      PoolClockHumidity/Debug/PoolClockHumidity.hex
  39. +1958
    -0
      PoolClockHumidity/Debug/PoolClockHumidity.lss
  40. +514
    -0
      PoolClockHumidity/Debug/PoolClockHumidity.map
  41. +149
    -0
      PoolClockHumidity/Debug/PoolClockHumidity.srec
  42. +49
    -0
      PoolClockHumidity/Debug/main.d
  43. BIN
      PoolClockHumidity/Debug/main.o
  44. +6
    -0
      PoolClockHumidity/Debug/makedep.mk
  45. +86
    -0
      PoolClockHumidity/PoolClockHumidity.componentinfo.xml
  46. +126
    -0
      PoolClockHumidity/PoolClockHumidity.cproj
  47. +558
    -0
      PoolClockHumidity/main.c
  48. +1
    -0
      README.md

+ 34
- 0
PoolClock.atsln Voir le fichier

@@ -0,0 +1,34 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Atmel Studio Solution File, Format Version 11.00
VisualStudioVersion = 14.0.23107.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{54F91283-7BC4-4236-8FF9-10F437C3AD48}") = "PoolClockWaterTemp", "PoolClock\PoolClockWaterTemp.cproj", "{DCE6C7E3-EE26-4D79-826B-08594B9AD897}"
EndProject
Project("{54F91283-7BC4-4236-8FF9-10F437C3AD48}") = "PoolClockHumidity", "PoolClockHumidity\PoolClockHumidity.cproj", "{568DA8C2-E6FE-4E7C-A24E-9E4900DAB3C9}"
EndProject
Project("{54F91283-7BC4-4236-8FF9-10F437C3AD48}") = "PoolClockAirTemp", "PoolClockAirTemp\PoolClockAirTemp.cproj", "{0C83E3A6-3DDD-4274-8944-AE653DC4AC74}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|AVR = Debug|AVR
Release|AVR = Release|AVR
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{DCE6C7E3-EE26-4D79-826B-08594B9AD897}.Debug|AVR.ActiveCfg = Debug|AVR
{DCE6C7E3-EE26-4D79-826B-08594B9AD897}.Debug|AVR.Build.0 = Debug|AVR
{DCE6C7E3-EE26-4D79-826B-08594B9AD897}.Release|AVR.ActiveCfg = Release|AVR
{DCE6C7E3-EE26-4D79-826B-08594B9AD897}.Release|AVR.Build.0 = Release|AVR
{568DA8C2-E6FE-4E7C-A24E-9E4900DAB3C9}.Debug|AVR.ActiveCfg = Debug|AVR
{568DA8C2-E6FE-4E7C-A24E-9E4900DAB3C9}.Debug|AVR.Build.0 = Debug|AVR
{568DA8C2-E6FE-4E7C-A24E-9E4900DAB3C9}.Release|AVR.ActiveCfg = Release|AVR
{568DA8C2-E6FE-4E7C-A24E-9E4900DAB3C9}.Release|AVR.Build.0 = Release|AVR
{0C83E3A6-3DDD-4274-8944-AE653DC4AC74}.Debug|AVR.ActiveCfg = Debug|AVR
{0C83E3A6-3DDD-4274-8944-AE653DC4AC74}.Debug|AVR.Build.0 = Debug|AVR
{0C83E3A6-3DDD-4274-8944-AE653DC4AC74}.Release|AVR.ActiveCfg = Release|AVR
{0C83E3A6-3DDD-4274-8944-AE653DC4AC74}.Release|AVR.Build.0 = Release|AVR
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

+ 129
- 0
PoolClock/Debug/Makefile Voir le fichier

@@ -0,0 +1,129 @@
################################################################################
# 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:=
LINKER_SCRIPT_DEP:=

# Every subdirectory with source files must be described here
SUBDIRS :=


# Add inputs and outputs from these tool invocations to the build variables
C_SRCS += \
../main.c


PREPROCESSING_SRCS +=


ASM_SRCS +=


OBJS += \
main.o

OBJS_AS_ARGS += \
main.o

C_DEPS += \
main.d

C_DEPS_AS_ARGS += \
main.d

OUTPUT_FILE_PATH +=PoolClockWaterTemp.elf

OUTPUT_FILE_PATH_AS_ARGS +=PoolClockWaterTemp.elf

ADDITIONAL_DEPENDENCIES:=

OUTPUT_FILE_DEP:= ./makedep.mk

LIB_DEP+=

LINKER_SCRIPT_DEP+=


# AVR32/GNU C Compiler



./%.o: .././%.c
@echo Building file: $<
@echo Invoking: AVR/GNU C Compiler : 5.4.0
$(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.132\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega88pa -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.132\gcc\dev\atmega88pa" -c -std=gnu99 -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) $(LINKER_SCRIPT_DEP)
@echo Building target: $@
@echo Invoking: AVR/GNU Linker : 5.4.0
$(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -o$(OUTPUT_FILE_PATH_AS_ARGS) $(OBJS_AS_ARGS) $(USER_OBJS) $(LIBS) -Wl,-Map="PoolClockWaterTemp.map" -Wl,--start-group -Wl,-lm -Wl,--end-group -Wl,--gc-sections -mmcu=atmega88pa -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.132\gcc\dev\atmega88pa"
@echo Finished building target: $@
"C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O ihex -R .eeprom -R .fuse -R .lock -R .signature -R .user_signatures "PoolClockWaterTemp.elf" "PoolClockWaterTemp.hex"
"C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy.exe" -j .eeprom --set-section-flags=.eeprom=alloc,load --change-section-lma .eeprom=0 --no-change-warnings -O ihex "PoolClockWaterTemp.elf" "PoolClockWaterTemp.eep" || exit 0
"C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objdump.exe" -h -S "PoolClockWaterTemp.elf" > "PoolClockWaterTemp.lss"
"C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O srec -R .eeprom -R .fuse -R .lock -R .signature -R .user_signatures "PoolClockWaterTemp.elf" "PoolClockWaterTemp.srec"
"C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-size.exe" "PoolClockWaterTemp.elf"





# Other Targets
clean:
-$(RM) $(OBJS_AS_ARGS) $(EXECUTABLES)
-$(RM) $(C_DEPS_AS_ARGS)
rm -rf "PoolClockWaterTemp.elf" "PoolClockWaterTemp.a" "PoolClockWaterTemp.hex" "PoolClockWaterTemp.lss" "PoolClockWaterTemp.eep" "PoolClockWaterTemp.map" "PoolClockWaterTemp.srec" "PoolClockWaterTemp.usersignatures"

+ 1
- 0
PoolClock/Debug/PoolClock.eep Voir le fichier

@@ -0,0 +1 @@
:00000001FF

BIN
PoolClock/Debug/PoolClock.elf Voir le fichier


+ 48
- 0
PoolClock/Debug/PoolClock.hex Voir le fichier

@@ -0,0 +1,48 @@
:1000000019C033C032C031C030C02FC02EC02DC087
:100010002CC02BC02AC029C028C027C026C025C09C
:1000200024C023C022C021C020C01FC01EC01DC0CC
:100030001CC01BC011241FBECFEFD4E0DEBFCDBF5C
:1000400011E0A0E0B1E0EEEDF2E002C005900D920B
:10005000AE30B107D9F721E0AEE0B1E001C01D92AA
:10006000A431B207E1F7E0D038C1CACF8FEF8AB927
:1000700087E084B93B9843982FEF81E19AE72150BC
:1000800080409040E1F700C0000008951BB884E074
:1000900085B986E08A95F1F700C0E0911301F0E0A0
:1000A000E050FF4F80818BB987E893E10197F1F72A
:1000B00000C000001BB882E085B996E09A95F1F780
:1000C00000C0E0911201F0E0E050FF4F80818BB959
:1000D00087E893E10197F1F700C000001BB881E0C9
:1000E00085B996E09A95F1F700C08DEA8BB987E85B
:1000F00093E10197F1F700C0000008950F931F935B
:10010000CF93DF9300D000D01F92CDB7DEB73B98DE
:1001100089EC07C036E03A95F1F700C0815009F448
:100120006EC03399F7CF86E507C096E09A95F1F750
:1001300000C0815009F465C0339BF7CF86E507C046
:10014000A6E0AA95F1F700C0815009F45CC033998C
:10015000F7CFFE01319685E0DF011D928A95E9F720
:10016000AE014A5F5F4F22C0B6E0BA95F1F700C01A
:10017000915011F44AC098E3339BF6CF38EC3A958E
:10018000F1F7220F339908C00BC0A6E0AA95F1F74A
:1001900000C0915011F43BC09EE23399F6CF21602C
:1001A000815049F721934E175F0719F088E020E04E
:1001B000E2CFA981B0E0EA81F0E06B8170E04C8190
:1001C00050E09D012E0F3F1F260F371F240F351FB4
:1001D00033270D8110E020173107D9F4BA2FAA2751
:1001E000EA0FFB1FF0931101E0931001762F6627B1
:1001F000460F571F50930F0140930E010BC082E032
:1002000009C083E007C084E005C085E003C086E044
:1002100001C087E00F900F900F900F900F90DF912B
:10022000CF911F910F91089521DF8AE080931301F0
:100230008BE080931201C0E0D0E01CE03AC0339B19
:1002400002C03B9A4398CE3E83E0D80790F156DF38
:10025000811129C0E0911001F09111019F01ADECD5
:10026000BCEC2FD0AC0156954795569547955695C1
:100270004795509311014093100136952795369577
:100280002795ABE7B4E11DD0969587958093130130
:10029000880F982F990F990F890F481B40931201CF
:1002A000C0E0D0E006C01093130180931201C0E0BB
:1002B000D0E02196EBDEC93E83E0D80708F0BFCF3F
:1002C000F8CFA29FB001B39FC001A39F01D0B29FFE
:0E02D000700D811D1124911D0895F894FFCF2B
:0E02DE00FC24BAAE66CEDEA4FEEE161EDA12C8
:00000001FF

+ 715
- 0
PoolClock/Debug/PoolClock.lss Voir le fichier

@@ -0,0 +1,715 @@

PoolClock.elf: file format elf32-avr

Sections:
Idx Name Size VMA LMA File off Algn
0 .data 0000000e 00800100 000002de 00000372 2**0
CONTENTS, ALLOC, LOAD, DATA
1 .text 000002de 00000000 00000000 00000094 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE
2 .bss 00000006 0080010e 0080010e 00000380 2**0
ALLOC
3 .comment 00000030 00000000 00000000 00000380 2**0
CONTENTS, READONLY
4 .note.gnu.avr.deviceinfo 00000040 00000000 00000000 000003b0 2**2
CONTENTS, READONLY
5 .debug_aranges 00000048 00000000 00000000 000003f0 2**0
CONTENTS, READONLY, DEBUGGING
6 .debug_info 00000bbe 00000000 00000000 00000438 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_abbrev 00000784 00000000 00000000 00000ff6 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_line 00000507 00000000 00000000 0000177a 2**0
CONTENTS, READONLY, DEBUGGING
9 .debug_frame 00000090 00000000 00000000 00001c84 2**2
CONTENTS, READONLY, DEBUGGING
10 .debug_str 00000487 00000000 00000000 00001d14 2**0
CONTENTS, READONLY, DEBUGGING
11 .debug_loc 00000634 00000000 00000000 0000219b 2**0
CONTENTS, READONLY, DEBUGGING
12 .debug_ranges 00000098 00000000 00000000 000027cf 2**0
CONTENTS, READONLY, DEBUGGING

Disassembly of section .text:

00000000 <__vectors>:
0: 19 c0 rjmp .+50 ; 0x34 <__ctors_end>
2: 33 c0 rjmp .+102 ; 0x6a <__bad_interrupt>
4: 32 c0 rjmp .+100 ; 0x6a <__bad_interrupt>
6: 31 c0 rjmp .+98 ; 0x6a <__bad_interrupt>
8: 30 c0 rjmp .+96 ; 0x6a <__bad_interrupt>
a: 2f c0 rjmp .+94 ; 0x6a <__bad_interrupt>
c: 2e c0 rjmp .+92 ; 0x6a <__bad_interrupt>
e: 2d c0 rjmp .+90 ; 0x6a <__bad_interrupt>
10: 2c c0 rjmp .+88 ; 0x6a <__bad_interrupt>
12: 2b c0 rjmp .+86 ; 0x6a <__bad_interrupt>
14: 2a c0 rjmp .+84 ; 0x6a <__bad_interrupt>
16: 29 c0 rjmp .+82 ; 0x6a <__bad_interrupt>
18: 28 c0 rjmp .+80 ; 0x6a <__bad_interrupt>
1a: 27 c0 rjmp .+78 ; 0x6a <__bad_interrupt>
1c: 26 c0 rjmp .+76 ; 0x6a <__bad_interrupt>
1e: 25 c0 rjmp .+74 ; 0x6a <__bad_interrupt>
20: 24 c0 rjmp .+72 ; 0x6a <__bad_interrupt>
22: 23 c0 rjmp .+70 ; 0x6a <__bad_interrupt>
24: 22 c0 rjmp .+68 ; 0x6a <__bad_interrupt>
26: 21 c0 rjmp .+66 ; 0x6a <__bad_interrupt>
28: 20 c0 rjmp .+64 ; 0x6a <__bad_interrupt>
2a: 1f c0 rjmp .+62 ; 0x6a <__bad_interrupt>
2c: 1e c0 rjmp .+60 ; 0x6a <__bad_interrupt>
2e: 1d c0 rjmp .+58 ; 0x6a <__bad_interrupt>
30: 1c c0 rjmp .+56 ; 0x6a <__bad_interrupt>
32: 1b c0 rjmp .+54 ; 0x6a <__bad_interrupt>

00000034 <__ctors_end>:
34: 11 24 eor r1, r1
36: 1f be out 0x3f, r1 ; 63
38: cf ef ldi r28, 0xFF ; 255
3a: d4 e0 ldi r29, 0x04 ; 4
3c: de bf out 0x3e, r29 ; 62
3e: cd bf out 0x3d, r28 ; 61

00000040 <__do_copy_data>:
40: 11 e0 ldi r17, 0x01 ; 1
42: a0 e0 ldi r26, 0x00 ; 0
44: b1 e0 ldi r27, 0x01 ; 1
46: ee ed ldi r30, 0xDE ; 222
48: f2 e0 ldi r31, 0x02 ; 2
4a: 02 c0 rjmp .+4 ; 0x50 <__do_copy_data+0x10>
4c: 05 90 lpm r0, Z+
4e: 0d 92 st X+, r0
50: ae 30 cpi r26, 0x0E ; 14
52: b1 07 cpc r27, r17
54: d9 f7 brne .-10 ; 0x4c <__do_copy_data+0xc>

00000056 <__do_clear_bss>:
56: 21 e0 ldi r18, 0x01 ; 1
58: ae e0 ldi r26, 0x0E ; 14
5a: b1 e0 ldi r27, 0x01 ; 1
5c: 01 c0 rjmp .+2 ; 0x60 <.do_clear_bss_start>

0000005e <.do_clear_bss_loop>:
5e: 1d 92 st X+, r1

00000060 <.do_clear_bss_start>:
60: a4 31 cpi r26, 0x14 ; 20
62: b2 07 cpc r27, r18
64: e1 f7 brne .-8 ; 0x5e <.do_clear_bss_loop>
66: e0 d0 rcall .+448 ; 0x228 <main>
68: 38 c1 rjmp .+624 ; 0x2da <_exit>

0000006a <__bad_interrupt>:
6a: ca cf rjmp .-108 ; 0x0 <__vectors>

0000006c <vInit>:
}
g_u8CountDecs = 0U; //reset decrement counter
}

g_u8Tens = g_u8WaterTemperature / 10U;
g_u8Ones = g_u8WaterTemperature - (g_u8Tens * 10U);
6c: 8f ef ldi r24, 0xFF ; 255
6e: 8a b9 out 0x0a, r24 ; 10
70: 87 e0 ldi r24, 0x07 ; 7
72: 84 b9 out 0x04, r24 ; 4
74: 3b 98 cbi 0x07, 3 ; 7
76: 43 98 cbi 0x08, 3 ; 8
78: 2f ef ldi r18, 0xFF ; 255
7a: 81 e1 ldi r24, 0x11 ; 17
7c: 9a e7 ldi r25, 0x7A ; 122
7e: 21 50 subi r18, 0x01 ; 1
80: 80 40 sbci r24, 0x00 ; 0
82: 90 40 sbci r25, 0x00 ; 0
84: e1 f7 brne .-8 ; 0x7e <vInit+0x12>
86: 00 c0 rjmp .+0 ; 0x88 <vInit+0x1c>
88: 00 00 nop
8a: 08 95 ret

0000008c <vShow>:
/************************************************************************/
/* */
/************************************************************************/
void vShow( void )
{
PORTD = 0U;
8c: 1b b8 out 0x0b, r1 ; 11
PORTB = SELECT_DIGIT(DIGIT_TENS);
8e: 84 e0 ldi r24, 0x04 ; 4
90: 85 b9 out 0x05, r24 ; 5
#else
//round up by default
__ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
#endif

__builtin_avr_delay_cycles(__ticks_dc);
92: 86 e0 ldi r24, 0x06 ; 6
94: 8a 95 dec r24
96: f1 f7 brne .-4 ; 0x94 <vShow+0x8>
98: 00 c0 rjmp .+0 ; 0x9a <vShow+0xe>
_delay_us(1);
PORTD = g_au8Numbers[g_u8Tens];
9a: e0 91 13 01 lds r30, 0x0113 ; 0x800113 <g_u8Tens>
9e: f0 e0 ldi r31, 0x00 ; 0
a0: e0 50 subi r30, 0x00 ; 0
a2: ff 4f sbci r31, 0xFF ; 255
a4: 80 81 ld r24, Z
a6: 8b b9 out 0x0b, r24 ; 11
#else
//round up by default
__ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
#endif

__builtin_avr_delay_cycles(__ticks_dc);
a8: 87 e8 ldi r24, 0x87 ; 135
aa: 93 e1 ldi r25, 0x13 ; 19
ac: 01 97 sbiw r24, 0x01 ; 1
ae: f1 f7 brne .-4 ; 0xac <vShow+0x20>
b0: 00 c0 rjmp .+0 ; 0xb2 <vShow+0x26>
b2: 00 00 nop
_delay_ms(MULTIPLEX_DELAY_MS);
PORTD = 0U;
b4: 1b b8 out 0x0b, r1 ; 11
PORTB = SELECT_DIGIT(DIGIT_ONES);
b6: 82 e0 ldi r24, 0x02 ; 2
b8: 85 b9 out 0x05, r24 ; 5
#else
//round up by default
__ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
#endif

__builtin_avr_delay_cycles(__ticks_dc);
ba: 96 e0 ldi r25, 0x06 ; 6
bc: 9a 95 dec r25
be: f1 f7 brne .-4 ; 0xbc <vShow+0x30>
c0: 00 c0 rjmp .+0 ; 0xc2 <vShow+0x36>
_delay_us(1);
PORTD = g_au8Numbers[g_u8Ones];
c2: e0 91 12 01 lds r30, 0x0112 ; 0x800112 <g_u8Ones>
c6: f0 e0 ldi r31, 0x00 ; 0
c8: e0 50 subi r30, 0x00 ; 0
ca: ff 4f sbci r31, 0xFF ; 255
cc: 80 81 ld r24, Z
ce: 8b b9 out 0x0b, r24 ; 11
#else
//round up by default
__ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
#endif

__builtin_avr_delay_cycles(__ticks_dc);
d0: 87 e8 ldi r24, 0x87 ; 135
d2: 93 e1 ldi r25, 0x13 ; 19
d4: 01 97 sbiw r24, 0x01 ; 1
d6: f1 f7 brne .-4 ; 0xd4 <vShow+0x48>
d8: 00 c0 rjmp .+0 ; 0xda <vShow+0x4e>
da: 00 00 nop
_delay_ms(MULTIPLEX_DELAY_MS);
PORTD = 0U;
dc: 1b b8 out 0x0b, r1 ; 11
PORTB = SELECT_DIGIT(DIGIT_UNIT);
de: 81 e0 ldi r24, 0x01 ; 1
e0: 85 b9 out 0x05, r24 ; 5
#else
//round up by default
__ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
#endif

__builtin_avr_delay_cycles(__ticks_dc);
e2: 96 e0 ldi r25, 0x06 ; 6
e4: 9a 95 dec r25
e6: f1 f7 brne .-4 ; 0xe4 <vShow+0x58>
e8: 00 c0 rjmp .+0 ; 0xea <vShow+0x5e>
_delay_us(1);
PORTD = DEGREE_CELCIUS;
ea: 8d ea ldi r24, 0xAD ; 173
ec: 8b b9 out 0x0b, r24 ; 11
#else
//round up by default
__ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
#endif

__builtin_avr_delay_cycles(__ticks_dc);
ee: 87 e8 ldi r24, 0x87 ; 135
f0: 93 e1 ldi r25, 0x13 ; 19
f2: 01 97 sbiw r24, 0x01 ; 1
f4: f1 f7 brne .-4 ; 0xf2 <vShow+0x66>
f6: 00 c0 rjmp .+0 ; 0xf8 <vShow+0x6c>
f8: 00 00 nop
fa: 08 95 ret

000000fc <u8ReadSensor>:

/************************************************************************/
/* */
/************************************************************************/
uint8_t u8ReadSensor( void )
{
fc: 0f 93 push r16
fe: 1f 93 push r17
100: cf 93 push r28
102: df 93 push r29
104: 00 d0 rcall .+0 ; 0x106 <u8ReadSensor+0xa>
106: 00 d0 rcall .+0 ; 0x108 <u8ReadSensor+0xc>
108: 1f 92 push r1
10a: cd b7 in r28, 0x3d ; 61
10c: de b7 in r29, 0x3e ; 62
uint8_t timeout = 200;
SENSOR_sda_in;
10e: 3b 98 cbi 0x07, 3 ; 7

// Bus master has released time min: 20us, typ: 30us, max: 200us
while ( SENSOR_is_hi )
110: 89 ec ldi r24, 0xC9 ; 201
112: 07 c0 rjmp .+14 ; 0x122 <u8ReadSensor+0x26>
#else
//round up by default
__ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
#endif

__builtin_avr_delay_cycles(__ticks_dc);
114: 36 e0 ldi r19, 0x06 ; 6
116: 3a 95 dec r19
118: f1 f7 brne .-4 ; 0x116 <u8ReadSensor+0x1a>
11a: 00 c0 rjmp .+0 ; 0x11c <u8ReadSensor+0x20>
11c: 81 50 subi r24, 0x01 ; 1
{
_delay_us(1);
if ( !timeout-- )
11e: 09 f4 brne .+2 ; 0x122 <u8ReadSensor+0x26>
120: 6e c0 rjmp .+220 ; 0x1fe <u8ReadSensor+0x102>
uint8_t timeout = 200;
SENSOR_sda_in;

// Bus master has released time min: 20us, typ: 30us, max: 200us
while ( SENSOR_is_hi )
122: 33 99 sbic 0x06, 3 ; 6
124: f7 cf rjmp .-18 ; 0x114 <u8ReadSensor+0x18>
126: 86 e5 ldi r24, 0x56 ; 86
128: 07 c0 rjmp .+14 ; 0x138 <u8ReadSensor+0x3c>
12a: 96 e0 ldi r25, 0x06 ; 6
12c: 9a 95 dec r25
12e: f1 f7 brne .-4 ; 0x12c <u8ReadSensor+0x30>
130: 00 c0 rjmp .+0 ; 0x132 <u8ReadSensor+0x36>
132: 81 50 subi r24, 0x01 ; 1
// AM2302 response signal min: 75us typ:80us max:85us
timeout = 85;
while(SENSOR_is_low)
{
_delay_us(1);
if (!timeout--)
134: 09 f4 brne .+2 ; 0x138 <u8ReadSensor+0x3c>
136: 65 c0 rjmp .+202 ; 0x202 <u8ReadSensor+0x106>
}
}

// AM2302 response signal min: 75us typ:80us max:85us
timeout = 85;
while(SENSOR_is_low)
138: 33 9b sbis 0x06, 3 ; 6
13a: f7 cf rjmp .-18 ; 0x12a <u8ReadSensor+0x2e>
13c: 86 e5 ldi r24, 0x56 ; 86
13e: 07 c0 rjmp .+14 ; 0x14e <u8ReadSensor+0x52>
140: a6 e0 ldi r26, 0x06 ; 6
142: aa 95 dec r26
144: f1 f7 brne .-4 ; 0x142 <u8ReadSensor+0x46>
146: 00 c0 rjmp .+0 ; 0x148 <u8ReadSensor+0x4c>
148: 81 50 subi r24, 0x01 ; 1

timeout = 85;
while(SENSOR_is_hi)
{
_delay_us(1);
if (!timeout--)
14a: 09 f4 brne .+2 ; 0x14e <u8ReadSensor+0x52>
14c: 5c c0 rjmp .+184 ; 0x206 <u8ReadSensor+0x10a>
return 3;
}
} // response to low time

timeout = 85;
while(SENSOR_is_hi)
14e: 33 99 sbic 0x06, 3 ; 6
150: f7 cf rjmp .-18 ; 0x140 <u8ReadSensor+0x44>
* signal 0 high time: 22 26 30 (bit=0)
* signal 1 high time: 68 70 75 (bit=1)
* signal 0,1 down time: 48 50 55
*/

uint8_t sensor_data[5]={0};
152: fe 01 movw r30, r28
154: 31 96 adiw r30, 0x01 ; 1
156: 85 e0 ldi r24, 0x05 ; 5
158: df 01 movw r26, r30
15a: 1d 92 st X+, r1
15c: 8a 95 dec r24
15e: e9 f7 brne .-6 ; 0x15a <u8ReadSensor+0x5e>
160: ae 01 movw r20, r28
162: 4a 5f subi r20, 0xFA ; 250
164: 5f 4f sbci r21, 0xFF ; 255
166: 22 c0 rjmp .+68 ; 0x1ac <u8ReadSensor+0xb0>
168: b6 e0 ldi r27, 0x06 ; 6
16a: ba 95 dec r27
16c: f1 f7 brne .-4 ; 0x16a <u8ReadSensor+0x6e>
16e: 00 c0 rjmp .+0 ; 0x170 <u8ReadSensor+0x74>
170: 91 50 subi r25, 0x01 ; 1
while(SENSOR_is_low)
{
_delay_us(1);

// if timeout == 0 => sensor do not response
if (!timeout--)
172: 11 f4 brne .+4 ; 0x178 <u8ReadSensor+0x7c>
174: 4a c0 rjmp .+148 ; 0x20a <u8ReadSensor+0x10e>
176: 98 e3 ldi r25, 0x38 ; 56
// get 8 bits from sensor
for(uint8_t j = 1; j <= 8; j++)
{
// wait for sensor response
timeout = 55;
while(SENSOR_is_low)
178: 33 9b sbis 0x06, 3 ; 6
17a: f6 cf rjmp .-20 ; 0x168 <u8ReadSensor+0x6c>
17c: 38 ec ldi r19, 0xC8 ; 200
17e: 3a 95 dec r19
180: f1 f7 brne .-4 ; 0x17e <u8ReadSensor+0x82>
}
}

// wait 30 us to check if bit is logical "1" or "0"
_delay_us(30);
sensor_byte <<= 1; // add new lower bit
182: 22 0f add r18, r18

// If sda ist high after 30 us then bit is logical "1" else it was a logical "0"
// For a logical "1" sda have to be low after 75 us.
if (SENSOR_is_hi)
184: 33 99 sbic 0x06, 3 ; 6
186: 08 c0 rjmp .+16 ; 0x198 <u8ReadSensor+0x9c>
188: 0b c0 rjmp .+22 ; 0x1a0 <u8ReadSensor+0xa4>
18a: a6 e0 ldi r26, 0x06 ; 6
18c: aa 95 dec r26
18e: f1 f7 brne .-4 ; 0x18c <u8ReadSensor+0x90>
190: 00 c0 rjmp .+0 ; 0x192 <u8ReadSensor+0x96>
192: 91 50 subi r25, 0x01 ; 1

while(SENSOR_is_hi)
{
_delay_us(1);
if (!timeout--)
194: 11 f4 brne .+4 ; 0x19a <u8ReadSensor+0x9e>
196: 3b c0 rjmp .+118 ; 0x20e <u8ReadSensor+0x112>
198: 9e e2 ldi r25, 0x2E ; 46
if (SENSOR_is_hi)
{
sensor_byte |= 1; // add logical "1"
timeout = 45; // 30us - 75us = 45us

while(SENSOR_is_hi)
19a: 33 99 sbic 0x06, 3 ; 6
19c: f6 cf rjmp .-20 ; 0x18a <u8ReadSensor+0x8e>

// If sda ist high after 30 us then bit is logical "1" else it was a logical "0"
// For a logical "1" sda have to be low after 75 us.
if (SENSOR_is_hi)
{
sensor_byte |= 1; // add logical "1"
19e: 21 60 ori r18, 0x01 ; 1
1a0: 81 50 subi r24, 0x01 ; 1
for(uint8_t i = 0; i < 5; i++)
{
uint8_t sensor_byte = 0;
// get 8 bits from sensor
for(uint8_t j = 1; j <= 8; j++)
1a2: 49 f7 brne .-46 ; 0x176 <u8ReadSensor+0x7a>
}
}
}
}

sensor_data[i] = sensor_byte;
1a4: 21 93 st Z+, r18
* signal 0,1 down time: 48 50 55
*/

uint8_t sensor_data[5]={0};

for(uint8_t i = 0; i < 5; i++)
1a6: 4e 17 cp r20, r30
1a8: 5f 07 cpc r21, r31
1aa: 19 f0 breq .+6 ; 0x1b2 <u8ReadSensor+0xb6>
1ac: 88 e0 ldi r24, 0x08 ; 8
1ae: 20 e0 ldi r18, 0x00 ; 0
1b0: e2 cf rjmp .-60 ; 0x176 <u8ReadSensor+0x7a>

sensor_data[i] = sensor_byte;
}

// checksum
if ( ((sensor_data[0] + sensor_data[1] + sensor_data[2] + sensor_data[3]) & 0xff ) != sensor_data[4])
1b2: a9 81 ldd r26, Y+1 ; 0x01
1b4: b0 e0 ldi r27, 0x00 ; 0
1b6: ea 81 ldd r30, Y+2 ; 0x02
1b8: f0 e0 ldi r31, 0x00 ; 0
1ba: 6b 81 ldd r22, Y+3 ; 0x03
1bc: 70 e0 ldi r23, 0x00 ; 0
1be: 4c 81 ldd r20, Y+4 ; 0x04
1c0: 50 e0 ldi r21, 0x00 ; 0
1c2: 9d 01 movw r18, r26
1c4: 2e 0f add r18, r30
1c6: 3f 1f adc r19, r31
1c8: 26 0f add r18, r22
1ca: 37 1f adc r19, r23
1cc: 24 0f add r18, r20
1ce: 35 1f adc r19, r21
1d0: 33 27 eor r19, r19
1d2: 0d 81 ldd r16, Y+5 ; 0x05
1d4: 10 e0 ldi r17, 0x00 ; 0
1d6: 20 17 cp r18, r16
1d8: 31 07 cpc r19, r17
1da: d9 f4 brne .+54 ; 0x212 <u8ReadSensor+0x116>
// debug output
//printf("%b %b %b %b %b %b" CR, sensor_data[0], sensor_data[1], sensor_data[2], sensor_data[3], sensor_data[4], ((sensor_data[0]+sensor_data[1]+sensor_data[2]+sensor_data[3]) & 0xff ));
return 7;
}

g_u16Humidity = (sensor_data[0] << 8) + sensor_data[1];
1dc: ba 2f mov r27, r26
1de: aa 27 eor r26, r26
1e0: ea 0f add r30, r26
1e2: fb 1f adc r31, r27
1e4: f0 93 11 01 sts 0x0111, r31 ; 0x800111 <g_u16Humidity+0x1>
1e8: e0 93 10 01 sts 0x0110, r30 ; 0x800110 <g_u16Humidity>
g_u16Temperature = (sensor_data[2] << 8) + sensor_data[3];
1ec: 76 2f mov r23, r22
1ee: 66 27 eor r22, r22
1f0: 46 0f add r20, r22
1f2: 57 1f adc r21, r23
1f4: 50 93 0f 01 sts 0x010F, r21 ; 0x80010f <__data_end+0x1>
1f8: 40 93 0e 01 sts 0x010E, r20 ; 0x80010e <__data_end>

return 0;
1fc: 0b c0 rjmp .+22 ; 0x214 <u8ReadSensor+0x118>
while ( SENSOR_is_hi )
{
_delay_us(1);
if ( !timeout-- )
{
return 2;
1fe: 82 e0 ldi r24, 0x02 ; 2
200: 09 c0 rjmp .+18 ; 0x214 <u8ReadSensor+0x118>
while(SENSOR_is_low)
{
_delay_us(1);
if (!timeout--)
{
return 3;
202: 83 e0 ldi r24, 0x03 ; 3
204: 07 c0 rjmp .+14 ; 0x214 <u8ReadSensor+0x118>
while(SENSOR_is_hi)
{
_delay_us(1);
if (!timeout--)
{
return 4;
206: 84 e0 ldi r24, 0x04 ; 4
208: 05 c0 rjmp .+10 ; 0x214 <u8ReadSensor+0x118>
_delay_us(1);

// if timeout == 0 => sensor do not response
if (!timeout--)
{
return 5;
20a: 85 e0 ldi r24, 0x05 ; 5
20c: 03 c0 rjmp .+6 ; 0x214 <u8ReadSensor+0x118>
{
_delay_us(1);
if (!timeout--)
{
return 6;
20e: 86 e0 ldi r24, 0x06 ; 6
210: 01 c0 rjmp .+2 ; 0x214 <u8ReadSensor+0x118>
// checksum
if ( ((sensor_data[0] + sensor_data[1] + sensor_data[2] + sensor_data[3]) & 0xff ) != sensor_data[4])
{
// debug output
//printf("%b %b %b %b %b %b" CR, sensor_data[0], sensor_data[1], sensor_data[2], sensor_data[3], sensor_data[4], ((sensor_data[0]+sensor_data[1]+sensor_data[2]+sensor_data[3]) & 0xff ));
return 7;
212: 87 e0 ldi r24, 0x07 ; 7

g_u16Humidity = (sensor_data[0] << 8) + sensor_data[1];
g_u16Temperature = (sensor_data[2] << 8) + sensor_data[3];

return 0;
214: 0f 90 pop r0
216: 0f 90 pop r0
218: 0f 90 pop r0
21a: 0f 90 pop r0
21c: 0f 90 pop r0
21e: df 91 pop r29
220: cf 91 pop r28
222: 1f 91 pop r17
224: 0f 91 pop r16
226: 08 95 ret

00000228 <main>:
int main(void)
{
uint16_t u16Counter = 0U;
uint8_t u8ErrorCode = 0U;

vInit();
228: 21 df rcall .-446 ; 0x6c <vInit>
g_u8Tens = 10; //n
22a: 8a e0 ldi r24, 0x0A ; 10
22c: 80 93 13 01 sts 0x0113, r24 ; 0x800113 <g_u8Tens>
g_u8Ones = 11; //o
230: 8b e0 ldi r24, 0x0B ; 11
232: 80 93 12 01 sts 0x0112, r24 ; 0x800112 <g_u8Ones>
/************************************************************************/
/* main() */
/************************************************************************/
int main(void)
{
uint16_t u16Counter = 0U;
236: c0 e0 ldi r28, 0x00 ; 0
238: d0 e0 ldi r29, 0x00 ; 0
//g_u8Tens = g_u16Temperature / 10U;
//g_u8Ones = g_u16Temperature - (g_u8Tens * 10U);
}
else
{
g_u8Tens = 12;
23a: 1c e0 ldi r17, 0x0C ; 12
23c: 3a c0 rjmp .+116 ; 0x2b2 <main+0x8a>

while ( 1 )
{
if ( u16Counter > 1000 )
{
if ( SENSOR_is_hi )
23e: 33 9b sbis 0x06, 3 ; 6
240: 02 c0 rjmp .+4 ; 0x246 <main+0x1e>
{
SENSOR_sda_out;
242: 3b 9a sbi 0x07, 3 ; 7
SENSOR_sda_low;
244: 43 98 cbi 0x08, 3 ; 8
}
if ( u16Counter > 1005 )
246: ce 3e cpi r28, 0xEE ; 238
248: 83 e0 ldi r24, 0x03 ; 3
24a: d8 07 cpc r29, r24
24c: 90 f1 brcs .+100 ; 0x2b2 <main+0x8a>
{
//_delay_us(1200);
//_delay_ms(20); // start signal (pull sda down for min 0.8ms and maximum 20ms)
u8ErrorCode = u8ReadSensor();
24e: 56 df rcall .-340 ; 0xfc <u8ReadSensor>
if ( 0 == u8ErrorCode )
250: 81 11 cpse r24, r1
252: 29 c0 rjmp .+82 ; 0x2a6 <main+0x7e>
{
g_u16Humidity /= 10;
254: e0 91 10 01 lds r30, 0x0110 ; 0x800110 <g_u16Humidity>
258: f0 91 11 01 lds r31, 0x0111 ; 0x800111 <g_u16Humidity+0x1>
25c: 9f 01 movw r18, r30
25e: ad ec ldi r26, 0xCD ; 205
260: bc ec ldi r27, 0xCC ; 204
262: 2f d0 rcall .+94 ; 0x2c2 <__umulhisi3>
264: ac 01 movw r20, r24
266: 56 95 lsr r21
268: 47 95 ror r20
26a: 56 95 lsr r21
26c: 47 95 ror r20
26e: 56 95 lsr r21
270: 47 95 ror r20
272: 50 93 11 01 sts 0x0111, r21 ; 0x800111 <g_u16Humidity+0x1>
276: 40 93 10 01 sts 0x0110, r20 ; 0x800110 <g_u16Humidity>
g_u8Tens = g_u16Humidity / 10U;
27a: 36 95 lsr r19
27c: 27 95 ror r18
27e: 36 95 lsr r19
280: 27 95 ror r18
282: ab e7 ldi r26, 0x7B ; 123
284: b4 e1 ldi r27, 0x14 ; 20
286: 1d d0 rcall .+58 ; 0x2c2 <__umulhisi3>
288: 96 95 lsr r25
28a: 87 95 ror r24
28c: 80 93 13 01 sts 0x0113, r24 ; 0x800113 <g_u8Tens>
g_u8Ones = g_u16Humidity - (g_u8Tens * 10U);
290: 88 0f add r24, r24
292: 98 2f mov r25, r24
294: 99 0f add r25, r25
296: 99 0f add r25, r25
298: 89 0f add r24, r25
29a: 48 1b sub r20, r24
29c: 40 93 12 01 sts 0x0112, r20 ; 0x800112 <g_u8Ones>
else
{
g_u8Tens = 12;
g_u8Ones = u8ErrorCode;
}
u16Counter = 0U;
2a0: c0 e0 ldi r28, 0x00 ; 0
2a2: d0 e0 ldi r29, 0x00 ; 0
2a4: 06 c0 rjmp .+12 ; 0x2b2 <main+0x8a>
//g_u8Tens = g_u16Temperature / 10U;
//g_u8Ones = g_u16Temperature - (g_u8Tens * 10U);
}
else
{
g_u8Tens = 12;
2a6: 10 93 13 01 sts 0x0113, r17 ; 0x800113 <g_u8Tens>
g_u8Ones = u8ErrorCode;
2aa: 80 93 12 01 sts 0x0112, r24 ; 0x800112 <g_u8Ones>
}
u16Counter = 0U;
2ae: c0 e0 ldi r28, 0x00 ; 0
2b0: d0 e0 ldi r29, 0x00 ; 0
}
}
u16Counter++;
2b2: 21 96 adiw r28, 0x01 ; 1
//vReadButtons();
//vCalculate();
vShow();
2b4: eb de rcall .-554 ; 0x8c <vShow>
g_u8Tens = 10; //n
g_u8Ones = 11; //o

while ( 1 )
{
if ( u16Counter > 1000 )
2b6: c9 3e cpi r28, 0xE9 ; 233
2b8: 83 e0 ldi r24, 0x03 ; 3
2ba: d8 07 cpc r29, r24
2bc: 08 f0 brcs .+2 ; 0x2c0 <main+0x98>
2be: bf cf rjmp .-130 ; 0x23e <main+0x16>
2c0: f8 cf rjmp .-16 ; 0x2b2 <main+0x8a>

000002c2 <__umulhisi3>:
2c2: a2 9f mul r26, r18
2c4: b0 01 movw r22, r0
2c6: b3 9f mul r27, r19
2c8: c0 01 movw r24, r0
2ca: a3 9f mul r26, r19
2cc: 01 d0 rcall .+2 ; 0x2d0 <__umulhisi3+0xe>
2ce: b2 9f mul r27, r18
2d0: 70 0d add r23, r0
2d2: 81 1d adc r24, r1
2d4: 11 24 eor r1, r1
2d6: 91 1d adc r25, r1
2d8: 08 95 ret

000002da <_exit>:
2da: f8 94 cli

000002dc <__stop_program>:
2dc: ff cf rjmp .-2 ; 0x2dc <__stop_program>

+ 503
- 0
PoolClock/Debug/PoolClock.map Voir le fichier

@@ -0,0 +1,503 @@
Archive member included to satisfy reference by file (symbol)

c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_exit.o)
C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o (exit)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_copy_data.o)
main.o (__do_copy_data)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_clear_bss.o)
main.o (__do_clear_bss)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_umulhisi3.o)
main.o (__umulhisi3)

Discarded input sections

.data 0x00000000 0x0 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o
.bss 0x00000000 0x0 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o
.text 0x00000000 0x0 main.o
.data 0x00000000 0x0 main.o
.bss 0x00000000 0x0 main.o
.text.vReadButtons
0x00000000 0x2a main.o
.text.vCalculate
0x00000000 0x6a main.o
.bss.g_u8CountDecs
0x00000000 0x1 main.o
.bss.g_u8CountIncs
0x00000000 0x1 main.o
.data.g_u8WaterTemperature
0x00000000 0x1 main.o
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_exit.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_exit.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_exit.o)
.text.libgcc.mul
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_exit.o)
.text.libgcc.div
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_exit.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_exit.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_exit.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_exit.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_exit.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_exit.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_copy_data.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_copy_data.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_copy_data.o)
.text.libgcc.mul
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_copy_data.o)
.text.libgcc.div
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_copy_data.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_copy_data.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_copy_data.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_copy_data.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_copy_data.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_copy_data.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_clear_bss.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_clear_bss.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_clear_bss.o)
.text.libgcc.mul
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_clear_bss.o)
.text.libgcc.div
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_clear_bss.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_clear_bss.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_clear_bss.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_clear_bss.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_clear_bss.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_clear_bss.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_umulhisi3.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_umulhisi3.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_umulhisi3.o)
.text.libgcc.div
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_umulhisi3.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_umulhisi3.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_umulhisi3.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_umulhisi3.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_umulhisi3.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_umulhisi3.o)

Memory Configuration

Name Origin Length Attributes
text 0x00000000 0x00002000 xr
data 0x00800060 0x0000ffa0 rw !x
eeprom 0x00810000 0x00010000 rw !x
fuse 0x00820000 0x00000003 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/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o
LOAD main.o
START GROUP
LOAD c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a
END GROUP
START GROUP
LOAD c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a
LOAD c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a
LOAD c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libc.a
LOAD C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4\libatmega88pa.a
END GROUP
0x00002000 __TEXT_REGION_LENGTH__ = DEFINED (__TEXT_REGION_LENGTH__)?__TEXT_REGION_LENGTH__:0x2000
0x0000ffa0 __DATA_REGION_LENGTH__ = DEFINED (__DATA_REGION_LENGTH__)?__DATA_REGION_LENGTH__:0xffa0
0x00010000 __EEPROM_REGION_LENGTH__ = DEFINED (__EEPROM_REGION_LENGTH__)?__EEPROM_REGION_LENGTH__:0x10000
[0x00000003] __FUSE_REGION_LENGTH__ = DEFINED (__FUSE_REGION_LENGTH__)?__FUSE_REGION_LENGTH__:0x400
0x00000400 __LOCK_REGION_LENGTH__ = DEFINED (__LOCK_REGION_LENGTH__)?__LOCK_REGION_LENGTH__:0x400
0x00000400 __SIGNATURE_REGION_LENGTH__ = DEFINED (__SIGNATURE_REGION_LENGTH__)?__SIGNATURE_REGION_LENGTH__:0x400
0x00000400 __USER_SIGNATURE_REGION_LENGTH__ = DEFINED (__USER_SIGNATURE_REGION_LENGTH__)?__USER_SIGNATURE_REGION_LENGTH__:0x400

.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 0x2de
*(.vectors)
.vectors 0x00000000 0x34 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o
0x00000000 __vector_default
0x00000000 __vectors
*(.vectors)
*(.progmem.gcc*)
0x00000034 . = ALIGN (0x2)
0x00000034 __trampolines_start = .
*(.trampolines)
.trampolines 0x00000034 0x0 linker stubs
*(.trampolines*)
0x00000034 __trampolines_end = .
*libprintf_flt.a:*(.progmem.data)
*libc.a:*(.progmem.data)
*(.progmem*)
0x00000034 . = ALIGN (0x2)
*(.jumptables)
*(.jumptables*)
*(.lowtext)
*(.lowtext*)
0x00000034 __ctors_start = .
*(.ctors)
0x00000034 __ctors_end = .
0x00000034 __dtors_start = .
*(.dtors)
0x00000034 __dtors_end = .
SORT(*)(.ctors)
SORT(*)(.dtors)
*(.init0)
.init0 0x00000034 0x0 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o
0x00000034 __init
*(.init0)
*(.init1)
*(.init1)
*(.init2)
.init2 0x00000034 0xc C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o
*(.init2)
*(.init3)
*(.init3)
*(.init4)
.init4 0x00000040 0x16 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_copy_data.o)
0x00000040 __do_copy_data
.init4 0x00000056 0x10 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_clear_bss.o)
0x00000056 __do_clear_bss
*(.init4)
*(.init5)
*(.init5)
*(.init6)
*(.init6)
*(.init7)
*(.init7)
*(.init8)
*(.init8)
*(.init9)
.init9 0x00000066 0x4 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o
*(.init9)
*(.text)
.text 0x0000006a 0x2 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o
0x0000006a __vector_22
0x0000006a __vector_1
0x0000006a __vector_24
0x0000006a __vector_12
0x0000006a __bad_interrupt
0x0000006a __vector_6
0x0000006a __vector_3
0x0000006a __vector_23
0x0000006a __vector_25
0x0000006a __vector_11
0x0000006a __vector_13
0x0000006a __vector_17
0x0000006a __vector_19
0x0000006a __vector_7
0x0000006a __vector_5
0x0000006a __vector_4
0x0000006a __vector_9
0x0000006a __vector_2
0x0000006a __vector_21
0x0000006a __vector_15
0x0000006a __vector_8
0x0000006a __vector_14
0x0000006a __vector_10
0x0000006a __vector_16
0x0000006a __vector_18
0x0000006a __vector_20
0x0000006c . = ALIGN (0x2)
*(.text.*)
.text.vInit 0x0000006c 0x20 main.o
0x0000006c vInit
.text.vShow 0x0000008c 0x70 main.o
0x0000008c vShow
.text.u8ReadSensor
0x000000fc 0x12c main.o
0x000000fc u8ReadSensor
.text.main 0x00000228 0x9a main.o
0x00000228 main
.text.libgcc.mul
0x000002c2 0x18 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_umulhisi3.o)
0x000002c2 __umulhisi3
0x000002da . = ALIGN (0x2)
*(.fini9)
.fini9 0x000002da 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_exit.o)
0x000002da _exit
0x000002da exit
*(.fini9)
*(.fini8)
*(.fini8)
*(.fini7)
*(.fini7)
*(.fini6)
*(.fini6)
*(.fini5)
*(.fini5)
*(.fini4)
*(.fini4)
*(.fini3)
*(.fini3)
*(.fini2)
*(.fini2)
*(.fini1)
*(.fini1)
*(.fini0)
.fini0 0x000002da 0x4 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_exit.o)
*(.fini0)
0x000002de _etext = .

.data 0x00800100 0xe load address 0x000002de
0x00800100 PROVIDE (__data_start, .)
*(.data)
*(.data*)
*(.rodata)
*(.rodata*)
.rodata.g_au8Numbers
0x00800100 0xe main.o
*(.gnu.linkonce.d*)
0x0080010e . = ALIGN (0x2)
0x0080010e _edata = .
0x0080010e PROVIDE (__data_end, .)

.bss 0x0080010e 0x6
0x0080010e PROVIDE (__bss_start, .)
*(.bss)
*(.bss*)
.bss.g_u16Temperature
0x0080010e 0x2 main.o
0x0080010e g_u16Temperature
.bss.g_u16Humidity
0x00800110 0x2 main.o
0x00800110 g_u16Humidity
.bss.g_u8Ones 0x00800112 0x1 main.o
.bss.g_u8Tens 0x00800113 0x1 main.o
*(COMMON)
0x00800114 PROVIDE (__bss_end, .)
0x000002de __data_load_start = LOADADDR (.data)
0x000002ec __data_load_end = (__data_load_start + SIZEOF (.data))

.noinit 0x00800114 0x0
[!provide] PROVIDE (__noinit_start, .)
*(.noinit*)
[!provide] PROVIDE (__noinit_end, .)
0x00800114 _end = .
[!provide] 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 0x30
*(.comment)
.comment 0x00000000 0x30 main.o
0x31 (size before relaxing)

.note.gnu.avr.deviceinfo
0x00000000 0x40
.note.gnu.avr.deviceinfo
0x00000000 0x40 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o

.note.gnu.build-id
*(.note.gnu.build-id)

.debug
*(.debug)

.line
*(.line)

.debug_srcinfo
*(.debug_srcinfo)

.debug_sfnames
*(.debug_sfnames)

.debug_aranges 0x00000000 0x48
*(.debug_aranges)
.debug_aranges
0x00000000 0x48 main.o

.debug_pubnames
*(.debug_pubnames)

.debug_info 0x00000000 0xbbe
*(.debug_info .gnu.linkonce.wi.*)
.debug_info 0x00000000 0x5f4 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o
.debug_info 0x000005f4 0x5ca main.o

.debug_abbrev 0x00000000 0x784
*(.debug_abbrev)
.debug_abbrev 0x00000000 0x5a2 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o
.debug_abbrev 0x000005a2 0x1e2 main.o

.debug_line 0x00000000 0x507
*(.debug_line .debug_line.* .debug_line_end)
.debug_line 0x00000000 0x133 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o
.debug_line 0x00000133 0x3d4 main.o

.debug_frame 0x00000000 0x90
*(.debug_frame)
.debug_frame 0x00000000 0x90 main.o

.debug_str 0x00000000 0x487
*(.debug_str)
.debug_str 0x00000000 0x208 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o
.debug_str 0x00000208 0x27f main.o
0x2b3 (size before relaxing)

.debug_loc 0x00000000 0x634
*(.debug_loc)
.debug_loc 0x00000000 0x634 main.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 0x98
*(.debug_ranges)
.debug_ranges 0x00000000 0x98 main.o

.debug_macro
*(.debug_macro)
OUTPUT(PoolClock.elf elf32-avr)
LOAD linker stubs

+ 49
- 0
PoolClock/Debug/PoolClock.srec Voir le fichier

@@ -0,0 +1,49 @@
S0110000506F6F6C436C6F636B2E737265638D
S113000019C033C032C031C030C02FC02EC02DC083
S11300102CC02BC02AC029C028C027C026C025C098
S113002024C023C022C021C020C01FC01EC01DC0C8
S11300301CC01BC011241FBECFEFD4E0DEBFCDBF58
S113004011E0A0E0B1E0EEEDF2E002C005900D9207
S1130050AE30B107D9F721E0AEE0B1E001C01D92A6
S1130060A431B207E1F7E0D038C1CACF8FEF8AB923
S113007087E084B93B9843982FEF81E19AE72150B8
S113008080409040E1F700C0000008951BB884E070
S113009085B986E08A95F1F700C0E0911301F0E09C
S11300A0E050FF4F80818BB987E893E10197F1F726
S11300B000C000001BB882E085B996E09A95F1F77C
S11300C000C0E0911201F0E0E050FF4F80818BB955
S11300D087E893E10197F1F700C000001BB881E0C5
S11300E085B996E09A95F1F700C08DEA8BB987E857
S11300F093E10197F1F700C0000008950F931F9357
S1130100CF93DF9300D000D01F92CDB7DEB73B98DA
S113011089EC07C036E03A95F1F700C0815009F444
S11301206EC03399F7CF86E507C096E09A95F1F74C
S113013000C0815009F465C0339BF7CF86E507C042
S1130140A6E0AA95F1F700C0815009F45CC0339988
S1130150F7CFFE01319685E0DF011D928A95E9F71C
S1130160AE014A5F5F4F22C0B6E0BA95F1F700C016
S1130170915011F44AC098E3339BF6CF38EC3A958A
S1130180F1F7220F339908C00BC0A6E0AA95F1F746
S113019000C0915011F43BC09EE23399F6CF216028
S11301A0815049F721934E175F0719F088E020E04A
S11301B0E2CFA981B0E0EA81F0E06B8170E04C818C
S11301C050E09D012E0F3F1F260F371F240F351FB0
S11301D033270D8110E020173107D9F4BA2FAA274D
S11301E0EA0FFB1FF0931101E0931001762F6627AD
S11301F0460F571F50930F0140930E010BC082E02E
S113020009C083E007C084E005C085E003C086E040
S113021001C087E00F900F900F900F900F90DF9127
S1130220CF911F910F91089521DF8AE080931301EC
S11302308BE080931201C0E0D0E01CE03AC0339B15
S113024002C03B9A4398CE3E83E0D80790F156DF34
S1130250811129C0E0911001F09111019F01ADECD1
S1130260BCEC2FD0AC0156954795569547955695BD
S11302704795509311014093100136952795369573
S11302802795ABE7B4E11DD096958795809313012C
S1130290880F982F990F990F890F481B40931201CB
S11302A0C0E0D0E006C01093130180931201C0E0B7
S11302B0D0E02196EBDEC93E83E0D80708F0BFCF3B
S11302C0F8CFA29FB001B39FC001A39F01D0B29FFA
S11102D0700D811D1124911D0895F894FFCF27
S11102DEFC24BAAE66CEDEA4FEEE161EDA12C4
S9030000FC

+ 1
- 0
PoolClock/Debug/PoolClockWaterTemp.eep Voir le fichier

@@ -0,0 +1 @@
:00000001FF

BIN
PoolClock/Debug/PoolClockWaterTemp.elf Voir le fichier


+ 171
- 0
PoolClock/Debug/PoolClockWaterTemp.hex Voir le fichier

@@ -0,0 +1,171 @@
:1000000019C033C032C031C030C02FC02EC02DC087
:100010002CC02BC02AC07FC028C027C026C025C046
:1000200024C023C022C021C020C01FC01EC01DC0CC
:100030001CC01BC011241FBECFEFD4E0DEBFCDBF5C
:1000400011E0A0E0B1E0EAE6FAE002C005900D920E
:10005000A432B107D9F721E0A4E2B1E001C01D92BA
:10006000A832B207E1F7E2D2FEC4CACF8FEF8AB955
:1000700087E084B980E388B9109280008AE0809399
:10008000810084EC99E09093890080938800EFE6EA
:10009000F0E0808182608083789408959DEC899F50
:1000A000912D1124969596959695E0E0F1E0928336
:1000B000990F292F220F220F920F891B81836083B2
:1000C0000895349906C0809127018F5F809327019E
:1000D00002C01092270135990AC0809126018F5FD6
:1000E0008093260190912701933368F006C0109207
:1000F000260180912701833368F01092270181E067
:10010000809325010895833328F01092260182E020
:100110008093250108951F920F920FB60F9211241C
:100120002F933F934F935F936F937F938F939F93FF
:10013000AF93BF93EF93FF9315B81BB88DE08A95EB
:10014000F1F7000081E090E00090240102C0880FE8
:10015000991F0A94E2F785B9E0912401F0E0E0509C
:10016000FF4FE081F0E0ED5FFE4F80818BB9809121
:1001700024018F5F833018F48093240102C0109211
:1001800024019FDFFF91EF91BF91AF919F918F91DC
:100190007F916F915F914F913F912F910F900FBE83
:1001A0000F901F901895E0E0F1E090E19283918329
:1001B00090832FEB35E444E0215030404040E1F79C
:1001C00000C00000813021F0823009F4E2C0C1C1DA
:1001D000E0E0F1E022E1228390E1918390835FEB04
:1001E00065E474E0515060407040E1F700C00000E9
:1001F0003CE03283918390838FEBA5E444E081500F
:10020000A0404040E1F700C0000088E08283918375
:1002100090835FEB65E474E0515060407040E1F71B
:1002200000C00000828321839083AFEB45E454E05B
:10023000A15040405040E1F700C00000828331836C
:1002400090836FEB75E4A4E061507040A040E1F74B
:1002500000C000008283818390834FEB55E464E00B
:10026000415050406040E1F700C00000828381832C
:1002700041E040837FEBA5E454E07150A040504042
:10028000E1F700C000008283818353E050836FEB6D
:1002900075E4A4E061507040A040E1F700C00000A8
:1002A0008283818380836FEB75E4A4E061507040AA
:1002B000A040E1F700C000008283818380836FEB60
:1002C00075E4A4E061507040A040E1F700C0000078
:1002D0008283818350835FEB65E474E0515060401A
:1002E0007040E1F700C00000828381834083AFEB60
:1002F00045E454E0A15040405040E1F700C0000008
:100300008283818390836FEB75E4A4E06150704039
:10031000A040E1F700C000008283318390834FEB5F
:1003200055E464E0415050406040E1F700C00000F7
:100330008283218390837FEBA5E444E07150A04049
:100340004040E1F700C000008283918390835FEB1F
:1003500065E474E0515060407040E1F700C0000077
:100360003283918390838FEBA5E434E08150A040E9
:100370003040E1F700C000002283918390834FEB6F
:1003800055E464E0415050406040E1F700C0000097
:10039000E0C0E0E0F1E022E1228380E1818380831C
:1003A0007FEB95E4A4E071509040A040E1F700C0DD
:1003B00000003CE03283818380834FEB55E464E0AE
:1003C000415050406040E1F700C0000098E0928347
:1003D000818380837FEBA5E444E07150A0404040DE
:1003E000E1F700C000009283218380835FEB65E426
:1003F00074E0515060407040E1F700C0000092830B
:1004000031838083AFEB45E454E0A150404050403D
:10041000E1F700C000009283918380836FEB75E465
:10042000A4E061507040A040E1F700C0000092835A
:10043000918341E040835FEB65E474E0515060409C
:100440007040E1F700C000009283918353E0508335
:10045000AFEB65E474E0A15060407040E1F700C08C
:100460000000928391839083AFEB65E474E0A15028
:1004700060407040E1F700C0000052839183908398
:10048000AFEB65E474E0A15060407040E1F700C05C
:100490000000428391839083AFEB65E474E0A15048
:1004A00060407040E1F700C0000082839183908338
:1004B000AFEB65E474E0A15060407040E1F700C02C
:1004C0000000828351839083AFEB55E464E0A15038
:1004D00050406040E1F700C0000082834183908378
:1004E0007FEBA5E444E07150A0404040E1F700C03C
:1004F00000008283818390835FEB65E474E0515058
:1005000060407040E1F700C0000082838183308347
:100510009FEBA5E434E09150A0403040E1F700C0EB
:1005200000008283818320834FEB55E464E04150D7
:1005300050406040E1F700C00000828381838083E7
:100540007FEB85E494E0715080409040E1F700C07B
:100550000000E0E0F1E080E1828381838083AFEB03
:1005600025E434E0A15020403040E1F700C0000015
:10057000089543983B9A8FE599E00197F1F700C001
:1005800000003B98EBE2F1E03197F1F700C000008A
:1005900086B1E3E3F8E03197F1F700C0000088701E
:1005A000089543983B9A96E09A95F1F700C0813000
:1005B00009F43B988BE291E00197F1F700C000004D
:1005C0003B980895CF93DF93D82FC8E08D2F81708B
:1005D000E8DFD695C150D1F7DF91CF9108954398C8
:1005E0003B9A86E08A95F1F700C03B98EDE5EA95E5
:1005F000F1F7000086B1E0EEF0E03197F1F700C0CE
:10060000000083FB882780F90895CF93DF93D8E01B
:10061000C0E0E5DF20E8829FC0011124C695C82B09
:10062000D150B9F78C2FDF91CF9108951FDDE0E015
:10063000F1E080E1828381838083AFE4B3EC1197A2
:10064000F1F700C0000093E1928381838083BFE7CC
:10065000CFE422E1B150C0402040E1F700C00000EB
:100660009283918380833FE74FE482E131504040A1
:100670008040E1F700C000009283918386E180838F
:100680009FE7AFE4B2E19150A040B040E1F700C075
:10069000000035E080E123E17CE16DE15EE196E17F
:1006A0004FE1828321837083CFEBA5E4B4E0C15096
:1006B000A040B040E1F700C00000828381836083E6
:1006C000CFEBA5E4B4E0C150A040B040E1F700C0DA
:1006D0000000828381835083CFEBA5E4B4E0C15056
:1006E000A040B040E1F700C00000828391834083C6
:1006F000CFEBA5E4B4E0C150A040B040E1F700C0AA
:100700000000928391832083CFEBA5E4B4E0C15035
:10071000A040B040E1F700C0000072839183808365
:10072000CFEBA5E4B4E0C150A040B040E1F700C079
:100730000000628381838083CFEBA5E4B4E0C150E5
:10074000A040B040E1F700C0000052838183808365
:10075000CFEBA5E4B4E0C150A040B040E1F700C049
:100760000000428321838083CFEBA5E4B4E0C15035
:10077000A040B040E1F700C00000228321839083B5
:10078000CFEBA5E4B4E0C150A040B040E1F700C019
:100790000000315009F085CFE0E0F1E080E1828394
:1007A00081838083809125018130B1F118F08230FE
:1007B000C1F1FACFDEDE8CEC05DF84E403DF0FDF6E
:1007C0008823E9F3D6DE8CECFDDE8EEBFBDE1DDF4D
:1007D000C82F1BDF682F70E0762F66276C0F711D06
:1007E000072E000C880B990B4FD020E030E040E83A
:1007F0005DE3AED01BD0862F6EE050DC80912501EA
:100800008111D0CFCFE724E83EE1C15020403040F5
:10081000E1F700C00000C6CF81E0C5DC10922501E1
:10082000C1CF82E0C0DC10922501BCCF70D088F02F
:100830009F5790F0B92F9927B751A0F0D1F0660FCC
:10084000771F881F991F1AF0BA95C9F712C0B130E7
:1008500081F077D0B1E0089574C0672F782F882792
:10086000B85F39F0B93FCCF3869577956795B39526
:10087000D9F73EF490958095709561957F4F8F4F95
:100880009F4F0895E89409C097FB3EF4909580959A
:10089000709561957F4F8F4F9F4F9923A9F0F92F46
:1008A00096E9BB279395F695879577956795B795C4
:1008B000F111F8CFFAF4BB0F11F460FF1BC06F5FAA
:1008C0007F4F8F4F9F4F16C0882311F096E911C0BC
:1008D000772321F09EE8872F762F05C0662371F0DD
:1008E00096E8862F70E060E02AF09A95660F771FF1
:1008F000881FDAF7880F9695879597F9089557FD21
:100900009058440F551F59F05F3F71F04795880F7D
:1009100097FB991F61F09F3F79F087950895121614
:1009200013061406551FF2CF4695F1DF08C01616C0
:1009300017061806991FF1CF869571056105089471
:100940000895E894BB2766277727CB0197F9089588
:100950000BD078C069D028F06ED018F0952309F03C
:100960005AC05FC01124EECFCADFA0F3959FD1F328
:10097000950F50E0551F629FF001729FBB27F00D4D
:10098000B11D639FAA27F00DB11DAA1F649F6627A2
:10099000B00DA11D661F829F2227B00DA11D621FF1
:1009A000739FB00DA11D621F839FA00D611D221FAB
:1009B000749F3327A00D611D231F849F600D211D8F
:1009C000822F762F6A2F11249F5750408AF0E1F032
:1009D00088234AF0EE0FFF1FBB1F661F771F881F7B
:1009E00091505040A9F79E3F510570F014C0AACF16
:1009F0005F3FECF3983EDCF3869577956795B79566
:100A0000F795E7959F5FC1F7FE2B880F911D96958F
:100A1000879597F9089597F99F6780E870E060E0FF
:100A200008959FEF80EC089500240A941616170687
:100A300018060906089500240A94121613061406CF
:100A400005060895092E0394000C11F4882352F032
:100A5000BB0F40F4BF2B11F460FF04C06F5F7F4FEA
:0A0A60008F4F9F4F0895F894FFCFC9
:100A6A00101010FC24BAAE66CEDEA4FEEE161EDA14
:100A7A0012ADF3000250802004081040A02C0C187C
:040A8A0058D0C00080
:00000001FF

+ 2104
- 0
PoolClock/Debug/PoolClockWaterTemp.lss
Fichier diff supprimé car celui-ci est trop grand
Voir le fichier


+ 593
- 0
PoolClock/Debug/PoolClockWaterTemp.map Voir le fichier

@@ -0,0 +1,593 @@
Archive member included to satisfy reference by file (symbol)

c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fixunssfsi.o)
main.o (__fixunssfsi)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(floatsisf.o)
main.o (__floatsisf)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_split3.o)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fixunssfsi.o) (__fp_splitA)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_zero.o)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fixunssfsi.o) (__fp_zero)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(mulsf3.o)
main.o (__mulsf3)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(mulsf3x.o)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(mulsf3.o) (__mulsf3x)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_inf.o)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(mulsf3x.o) (__fp_inf)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_nan.o)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(mulsf3x.o) (__fp_nan)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_pscA.o)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(mulsf3x.o) (__fp_pscA)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_pscB.o)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(mulsf3x.o) (__fp_pscB)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_round.o)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(mulsf3.o) (__fp_round)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_exit.o)
C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o (exit)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_copy_data.o)
main.o (__do_copy_data)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_clear_bss.o)
main.o (__do_clear_bss)

Discarded input sections

.data 0x00000000 0x0 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o
.bss 0x00000000 0x0 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o
.text 0x00000000 0x0 main.o
.data 0x00000000 0x0 main.o
.bss 0x00000000 0x0 main.o
.text.s_vSetDisplayDigits
0x00000000 0xc main.o
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fixunssfsi.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fixunssfsi.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fixunssfsi.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(floatsisf.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(floatsisf.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(floatsisf.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_split3.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_split3.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_split3.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_zero.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_zero.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_zero.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(mulsf3.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(mulsf3.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(mulsf3.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(mulsf3x.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(mulsf3x.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(mulsf3x.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_inf.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_inf.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_inf.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_nan.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_nan.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_nan.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_pscA.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_pscA.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_pscA.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_pscB.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_pscB.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_pscB.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_round.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_round.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_round.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_exit.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_exit.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_exit.o)
.text.libgcc.mul
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_exit.o)
.text.libgcc.div
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_exit.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_exit.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_exit.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_exit.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_exit.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_exit.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_copy_data.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_copy_data.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_copy_data.o)
.text.libgcc.mul
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_copy_data.o)
.text.libgcc.div
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_copy_data.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_copy_data.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_copy_data.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_copy_data.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_copy_data.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_copy_data.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_clear_bss.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_clear_bss.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_clear_bss.o)
.text.libgcc.mul
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_clear_bss.o)
.text.libgcc.div
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_clear_bss.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_clear_bss.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_clear_bss.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_clear_bss.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_clear_bss.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_clear_bss.o)

Memory Configuration

Name Origin Length Attributes
text 0x00000000 0x00002000 xr
data 0x00800060 0x0000ffa0 rw !x
eeprom 0x00810000 0x00010000 rw !x
fuse 0x00820000 0x00000003 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/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o
LOAD main.o
START GROUP
LOAD c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a
END GROUP
START GROUP
LOAD c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a
LOAD c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a
LOAD c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libc.a
LOAD C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4\libatmega88pa.a
END GROUP
0x00002000 __TEXT_REGION_LENGTH__ = DEFINED (__TEXT_REGION_LENGTH__)?__TEXT_REGION_LENGTH__:0x2000
0x0000ffa0 __DATA_REGION_LENGTH__ = DEFINED (__DATA_REGION_LENGTH__)?__DATA_REGION_LENGTH__:0xffa0
0x00010000 __EEPROM_REGION_LENGTH__ = DEFINED (__EEPROM_REGION_LENGTH__)?__EEPROM_REGION_LENGTH__:0x10000
[0x00000003] __FUSE_REGION_LENGTH__ = DEFINED (__FUSE_REGION_LENGTH__)?__FUSE_REGION_LENGTH__:0x400
0x00000400 __LOCK_REGION_LENGTH__ = DEFINED (__LOCK_REGION_LENGTH__)?__LOCK_REGION_LENGTH__:0x400
0x00000400 __SIGNATURE_REGION_LENGTH__ = DEFINED (__SIGNATURE_REGION_LENGTH__)?__SIGNATURE_REGION_LENGTH__:0x400
0x00000400 __USER_SIGNATURE_REGION_LENGTH__ = DEFINED (__USER_SIGNATURE_REGION_LENGTH__)?__USER_SIGNATURE_REGION_LENGTH__:0x400

.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 0xa6a
*(.vectors)
.vectors 0x00000000 0x34 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o
0x00000000 __vector_default
0x00000000 __vectors
*(.vectors)
*(.progmem.gcc*)
0x00000034 . = ALIGN (0x2)
0x00000034 __trampolines_start = .
*(.trampolines)
.trampolines 0x00000034 0x0 linker stubs
*(.trampolines*)
0x00000034 __trampolines_end = .
*libprintf_flt.a:*(.progmem.data)
*libc.a:*(.progmem.data)
*(.progmem*)
0x00000034 . = ALIGN (0x2)
*(.jumptables)
*(.jumptables*)
*(.lowtext)
*(.lowtext*)
0x00000034 __ctors_start = .
*(.ctors)
0x00000034 __ctors_end = .
0x00000034 __dtors_start = .
*(.dtors)
0x00000034 __dtors_end = .
SORT(*)(.ctors)
SORT(*)(.dtors)
*(.init0)
.init0 0x00000034 0x0 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o
0x00000034 __init
*(.init0)
*(.init1)
*(.init1)
*(.init2)
.init2 0x00000034 0xc C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o
*(.init2)
*(.init3)
*(.init3)
*(.init4)
.init4 0x00000040 0x16 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_copy_data.o)
0x00000040 __do_copy_data
.init4 0x00000056 0x10 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_clear_bss.o)
0x00000056 __do_clear_bss
*(.init4)
*(.init5)
*(.init5)
*(.init6)
*(.init6)
*(.init7)
*(.init7)
*(.init8)
*(.init8)
*(.init9)
.init9 0x00000066 0x4 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o
*(.init9)
*(.text)
.text 0x0000006a 0x2 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o
0x0000006a __vector_22
0x0000006a __vector_1
0x0000006a __vector_24
0x0000006a __vector_12
0x0000006a __bad_interrupt
0x0000006a __vector_6
0x0000006a __vector_3
0x0000006a __vector_23
0x0000006a __vector_25
0x0000006a __vector_13
0x0000006a __vector_17
0x0000006a __vector_19
0x0000006a __vector_7
0x0000006a __vector_5
0x0000006a __vector_4
0x0000006a __vector_9
0x0000006a __vector_2
0x0000006a __vector_21
0x0000006a __vector_15
0x0000006a __vector_8
0x0000006a __vector_14
0x0000006a __vector_10
0x0000006a __vector_16
0x0000006a __vector_18
0x0000006a __vector_20
0x0000006c . = ALIGN (0x2)
*(.text.*)
.text.s_vInit 0x0000006c 0x30 main.o
0x0000006c s_vInit
.text.s_vSetValue
0x0000009c 0x26 main.o
0x0000009c s_vSetValue
.text.s_vReadButtons
0x000000c2 0x54 main.o
0x000000c2 s_vReadButtons
.text.__vector_11
0x00000116 0x90 main.o
0x00000116 __vector_11
.text.s_vShowAnim
0x000001a6 0x3cc main.o
0x000001a6 s_vShowAnim
.text.s_u8DS18B20_Reset
0x00000572 0x30 main.o
0x00000572 s_u8DS18B20_Reset
.text.s_vDS18B20_WriteBit
0x000005a2 0x22 main.o
0x000005a2 s_vDS18B20_WriteBit
.text.s_vDS18B20_WriteByte
0x000005c4 0x1a main.o
0x000005c4 s_vDS18B20_WriteByte
.text.s_u8DS18B20_ReadBit
0x000005de 0x2c main.o
0x000005de s_u8DS18B20_ReadBit
.text.s_u8DS18B20_ReadByte
0x0000060a 0x22 main.o
0x0000060a s_u8DS18B20_ReadByte
.text.main 0x0000062c 0x200 main.o
0x0000062c main
.text.avr-libc.fplib
0x0000082c 0x58 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fixunssfsi.o)
0x0000082c __fixunssfsi
.text.avr-libc.fplib
0x00000884 0x7a c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(floatsisf.o)
0x00000884 __floatunsisf
0x00000888 __floatsisf
.text.avr-libc.fplib
0x000008fe 0x44 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_split3.o)
0x000008fe __fp_split3
0x0000090e __fp_splitA
.text.avr-libc.fplib
0x00000942 0xe c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_zero.o)
0x00000942 __fp_zero
0x00000944 __fp_szero
.text.avr-libc.fplib
0x00000950 0x4 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(mulsf3.o)
0x00000950 __mulsf3
.text.avr-libc.fplib
0x00000954 0xc2 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(mulsf3x.o)
0x00000968 __mulsf3x
0x0000096c __mulsf3_pse
.text.avr-libc.fplib
0x00000a16 0xc c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_inf.o)
0x00000a16 __fp_inf
.text.avr-libc.fplib
0x00000a22 0x6 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_nan.o)
0x00000a22 __fp_nan
.text.avr-libc.fplib
0x00000a28 0xe c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_pscA.o)
0x00000a28 __fp_pscA
.text.avr-libc.fplib
0x00000a36 0xe c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_pscB.o)
0x00000a36 __fp_pscB
.text.avr-libc.fplib
0x00000a44 0x22 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_round.o)
0x00000a44 __fp_round
0x00000a66 . = ALIGN (0x2)
*(.fini9)
.fini9 0x00000a66 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_exit.o)
0x00000a66 _exit
0x00000a66 exit
*(.fini9)
*(.fini8)
*(.fini8)
*(.fini7)
*(.fini7)
*(.fini6)
*(.fini6)
*(.fini5)
*(.fini5)
*(.fini4)
*(.fini4)
*(.fini3)
*(.fini3)
*(.fini2)
*(.fini2)
*(.fini1)
*(.fini1)
*(.fini0)
.fini0 0x00000a66 0x4 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_exit.o)
*(.fini0)
0x00000a6a _etext = .

.data 0x00800100 0x24 load address 0x00000a6a
0x00800100 PROVIDE (__data_start, .)
*(.data)
*(.data*)
.data.g_au8Digits
0x00800100 0x3 main.o
0x00800100 g_au8Digits
*(.rodata)
*(.rodata*)
.rodata.g_au8Symbols
0x00800103 0x20 main.o
*(.gnu.linkonce.d*)
0x00800124 . = ALIGN (0x2)
*fill* 0x00800123 0x1
0x00800124 _edata = .
0x00800124 PROVIDE (__data_end, .)

.bss 0x00800124 0x4
0x00800124 PROVIDE (__bss_start, .)
*(.bss)
*(.bss*)
.bss.g_u8ISRDigitSelect
0x00800124 0x1 main.o
0x00800124 g_u8ISRDigitSelect
.bss.g_u8Mode 0x00800125 0x1 main.o
.bss.g_u8ButtonCountBot
0x00800126 0x1 main.o
.bss.g_u8ButtonCountTop
0x00800127 0x1 main.o
*(COMMON)
0x00800128 PROVIDE (__bss_end, .)
0x00000a6a __data_load_start = LOADADDR (.data)
0x00000a8e __data_load_end = (__data_load_start + SIZEOF (.data))

.noinit 0x00800128 0x0
[!provide] PROVIDE (__noinit_start, .)
*(.noinit*)
[!provide] PROVIDE (__noinit_end, .)
0x00800128 _end = .
[!provide] 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 0x30
*(.comment)
.comment 0x00000000 0x30 main.o
0x31 (size before relaxing)

.note.gnu.avr.deviceinfo
0x00000000 0x40
.note.gnu.avr.deviceinfo
0x00000000 0x40 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o

.note.gnu.build-id
*(.note.gnu.build-id)

.debug
*(.debug)

.line
*(.line)

.debug_srcinfo
*(.debug_srcinfo)

.debug_sfnames
*(.debug_sfnames)

.debug_aranges 0x00000000 0x78
*(.debug_aranges)
.debug_aranges
0x00000000 0x78 main.o

.debug_pubnames
*(.debug_pubnames)

.debug_info 0x00000000 0x22e0
*(.debug_info .gnu.linkonce.wi.*)
.debug_info 0x00000000 0x5f4 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o
.debug_info 0x000005f4 0x1cec main.o

.debug_abbrev 0x00000000 0x861
*(.debug_abbrev)
.debug_abbrev 0x00000000 0x5a2 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o
.debug_abbrev 0x000005a2 0x2bf main.o

.debug_line 0x00000000 0xba9
*(.debug_line .debug_line.* .debug_line_end)
.debug_line 0x00000000 0x133 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o
.debug_line 0x00000133 0xa76 main.o

.debug_frame 0x00000000 0x134
*(.debug_frame)
.debug_frame 0x00000000 0x134 main.o

.debug_str 0x00000000 0x535
*(.debug_str)
.debug_str 0x00000000 0x208 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o
.debug_str 0x00000208 0x32d main.o
0x361 (size before relaxing)

.debug_loc 0x00000000 0x1d8e
*(.debug_loc)
.debug_loc 0x00000000 0x1d8e main.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 0xc8
*(.debug_ranges)
.debug_ranges 0x00000000 0xc8 main.o

.debug_macro
*(.debug_macro)
OUTPUT(PoolClockWaterTemp.elf elf32-avr)
LOAD linker stubs

+ 172
- 0
PoolClock/Debug/PoolClockWaterTemp.srec Voir le fichier

@@ -0,0 +1,172 @@
S01A0000506F6F6C436C6F636B576174657254656D702E73726563EB
S113000019C033C032C031C030C02FC02EC02DC083
S11300102CC02BC02AC07FC028C027C026C025C042
S113002024C023C022C021C020C01FC01EC01DC0C8
S11300301CC01BC011241FBECFEFD4E0DEBFCDBF58
S113004011E0A0E0B1E0EAE6FAE002C005900D920A
S1130050A432B107D9F721E0A4E2B1E001C01D92B6
S1130060A832B207E1F7E2D2FEC4CACF8FEF8AB951
S113007087E084B980E388B9109280008AE0809395
S1130080810084EC99E09093890080938800EFE6E6
S1130090F0E0808182608083789408959DEC899F4C
S11300A0912D1124969596959695E0E0F1E0928332
S11300B0990F292F220F220F920F891B81836083AE
S11300C00895349906C0809127018F5F809327019A
S11300D002C01092270135990AC0809126018F5FD2
S11300E08093260190912701933368F006C0109203
S11300F0260180912701833368F01092270181E063
S1130100809325010895833328F01092260182E01C
S11301108093250108951F920F920FB60F92112418
S11301202F933F934F935F936F937F938F939F93FB
S1130130AF93BF93EF93FF9315B81BB88DE08A95E7
S1130140F1F7000081E090E00090240102C0880FE4
S1130150991F0A94E2F785B9E0912401F0E0E05098
S1130160FF4FE081F0E0ED5FFE4F80818BB980911D
S113017024018F5F833018F48093240102C010920D
S113018024019FDFFF91EF91BF91AF919F918F91D8
S11301907F916F915F914F913F912F910F900FBE7F
S11301A00F901F901895E0E0F1E090E19283918325
S11301B090832FEB35E444E0215030404040E1F798
S11301C000C00000813021F0823009F4E2C0C1C1D6
S11301D0E0E0F1E022E1228390E1918390835FEB00
S11301E065E474E0515060407040E1F700C00000E5
S11301F03CE03283918390838FEBA5E444E081500B
S1130200A0404040E1F700C0000088E08283918371
S113021090835FEB65E474E0515060407040E1F717
S113022000C00000828321839083AFEB45E454E057
S1130230A15040405040E1F700C000008283318368
S113024090836FEB75E4A4E061507040A040E1F747
S113025000C000008283818390834FEB55E464E007
S1130260415050406040E1F700C000008283818328
S113027041E040837FEBA5E454E07150A04050403E
S1130280E1F700C000008283818353E050836FEB69
S113029075E4A4E061507040A040E1F700C00000A4
S11302A08283818380836FEB75E4A4E061507040A6
S11302B0A040E1F700C000008283818380836FEB5C
S11302C075E4A4E061507040A040E1F700C0000074
S11302D08283818350835FEB65E474E05150604016
S11302E07040E1F700C00000828381834083AFEB5C
S11302F045E454E0A15040405040E1F700C0000004
S11303008283818390836FEB75E4A4E06150704035
S1130310A040E1F700C000008283318390834FEB5B
S113032055E464E0415050406040E1F700C00000F3
S11303308283218390837FEBA5E444E07150A04045
S11303404040E1F700C000008283918390835FEB1B
S113035065E474E0515060407040E1F700C0000073
S11303603283918390838FEBA5E434E08150A040E5
S11303703040E1F700C000002283918390834FEB6B
S113038055E464E0415050406040E1F700C0000093
S1130390E0C0E0E0F1E022E1228380E18183808318
S11303A07FEB95E4A4E071509040A040E1F700C0D9
S11303B000003CE03283818380834FEB55E464E0AA
S11303C0415050406040E1F700C0000098E0928343
S11303D0818380837FEBA5E444E07150A0404040DA
S11303E0E1F700C000009283218380835FEB65E422
S11303F074E0515060407040E1F700C00000928307
S113040031838083AFEB45E454E0A1504040504039
S1130410E1F700C000009283918380836FEB75E461
S1130420A4E061507040A040E1F700C00000928356
S1130430918341E040835FEB65E474E05150604098
S11304407040E1F700C000009283918353E0508331
S1130450AFEB65E474E0A15060407040E1F700C088
S11304600000928391839083AFEB65E474E0A15024
S113047060407040E1F700C0000052839183908394
S1130480AFEB65E474E0A15060407040E1F700C058
S11304900000428391839083AFEB65E474E0A15044
S11304A060407040E1F700C0000082839183908334
S11304B0AFEB65E474E0A15060407040E1F700C028
S11304C00000828351839083AFEB55E464E0A15034
S11304D050406040E1F700C0000082834183908374
S11304E07FEBA5E444E07150A0404040E1F700C038
S11304F000008283818390835FEB65E474E0515054
S113050060407040E1F700C0000082838183308343
S11305109FEBA5E434E09150A0403040E1F700C0E7
S113052000008283818320834FEB55E464E04150D3
S113053050406040E1F700C00000828381838083E3
S11305407FEB85E494E0715080409040E1F700C077
S11305500000E0E0F1E080E1828381838083AFEBFF
S113056025E434E0A15020403040E1F700C0000011
S1130570089543983B9A8FE599E00197F1F700C0FD
S113058000003B98EBE2F1E03197F1F700C0000086
S113059086B1E3E3F8E03197F1F700C0000088701A
S11305A0089543983B9A96E09A95F1F700C08130FC
S11305B009F43B988BE291E00197F1F700C0000049
S11305C03B980895CF93DF93D82FC8E08D2F817087
S11305D0E8DFD695C150D1F7DF91CF9108954398C4
S11305E03B9A86E08A95F1F700C03B98EDE5EA95E1
S11305F0F1F7000086B1E0EEF0E03197F1F700C0CA
S1130600000083FB882780F90895CF93DF93D8E017
S1130610C0E0E5DF20E8829FC0011124C695C82B05
S1130620D150B9F78C2FDF91CF9108951FDDE0E011
S1130630F1E080E1828381838083AFE4B3EC11979E
S1130640F1F700C0000093E1928381838083BFE7C8
S1130650CFE422E1B150C0402040E1F700C00000E7
S11306609283918380833FE74FE482E1315040409D
S11306708040E1F700C000009283918386E180838B
S11306809FE7AFE4B2E19150A040B040E1F700C071
S1130690000035E080E123E17CE16DE15EE196E17B
S11306A04FE1828321837083CFEBA5E4B4E0C15092
S11306B0A040B040E1F700C00000828381836083E2
S11306C0CFEBA5E4B4E0C150A040B040E1F700C0D6
S11306D00000828381835083CFEBA5E4B4E0C15052
S11306E0A040B040E1F700C00000828391834083C2
S11306F0CFEBA5E4B4E0C150A040B040E1F700C0A6
S11307000000928391832083CFEBA5E4B4E0C15031
S1130710A040B040E1F700C0000072839183808361
S1130720CFEBA5E4B4E0C150A040B040E1F700C075
S11307300000628381838083CFEBA5E4B4E0C150E1
S1130740A040B040E1F700C0000052838183808361
S1130750CFEBA5E4B4E0C150A040B040E1F700C045
S11307600000428321838083CFEBA5E4B4E0C15031
S1130770A040B040E1F700C00000228321839083B1
S1130780CFEBA5E4B4E0C150A040B040E1F700C015
S11307900000315009F085CFE0E0F1E080E1828390
S11307A081838083809125018130B1F118F08230FA
S11307B0C1F1FACFDEDE8CEC05DF84E403DF0FDF6A
S11307C08823E9F3D6DE8CECFDDE8EEBFBDE1DDF49
S11307D0C82F1BDF682F70E0762F66276C0F711D02
S11307E0072E000C880B990B4FD020E030E040E836
S11307F05DE3AED01BD0862F6EE050DC80912501E6
S11308008111D0CFCFE724E83EE1C15020403040F1
S1130810E1F700C00000C6CF81E0C5DC10922501DD
S1130820C1CF82E0C0DC10922501BCCF70D088F02B
S11308309F5790F0B92F9927B751A0F0D1F0660FC8
S1130840771F881F991F1AF0BA95C9F712C0B130E3
S113085081F077D0B1E0089574C0672F782F88278E
S1130860B85F39F0B93FCCF3869577956795B39522
S1130870D9F73EF490958095709561957F4F8F4F91
S11308809F4F0895E89409C097FB3EF49095809596
S1130890709561957F4F8F4F9F4F9923A9F0F92F42
S11308A096E9BB279395F695879577956795B795C0
S11308B0F111F8CFFAF4BB0F11F460FF1BC06F5FA6
S11308C07F4F8F4F9F4F16C0882311F096E911C0B8
S11308D0772321F09EE8872F762F05C0662371F0D9
S11308E096E8862F70E060E02AF09A95660F771FED
S11308F0881FDAF7880F9695879597F9089557FD1D
S11309009058440F551F59F05F3F71F04795880F79
S113091097FB991F61F09F3F79F087950895121610
S113092013061406551FF2CF4695F1DF08C01616BC
S113093017061806991FF1CF86957105610508946D
S11309400895E894BB2766277727CB0197F9089584
S11309500BD078C069D028F06ED018F0952309F038
S11309605AC05FC01124EECFCADFA0F3959FD1F324
S1130970950F50E0551F629FF001729FBB27F00D49
S1130980B11D639FAA27F00DB11DAA1F649F66279E
S1130990B00DA11D661F829F2227B00DA11D621FED
S11309A0739FB00DA11D621F839FA00D611D221FA7
S11309B0749F3327A00D611D231F849F600D211D8B
S11309C0822F762F6A2F11249F5750408AF0E1F02E
S11309D088234AF0EE0FFF1FBB1F661F771F881F77
S11309E091505040A9F79E3F510570F014C0AACF12
S11309F05F3FECF3983EDCF3869577956795B79562
S1130A00F795E7959F5FC1F7FE2B880F911D96958B
S1130A10879597F9089597F99F6780E870E060E0FB
S1130A2008959FEF80EC089500240A941616170683
S1130A3018060906089500240A94121613061406CB
S1130A4005060895092E0394000C11F4882352F02E
S1130A50BB0F40F4BF2B11F460FF04C06F5F7F4FE6
S10D0A608F4F9F4F0895F894FFCFC5
S1130A6A101010FC24BAAE66CEDEA4FEEE161EDA10
S1130A7A12ADF3000250802004081040A02C0C1878
S1070A8A58D0C0007C
S9030000FC

+ 49
- 0
PoolClock/Debug/main.d Voir le fichier

@@ -0,0 +1,49 @@
main.d main.o: .././main.c \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdbool.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \
C:\Program\ Files\ (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.132\include/avr/iom88pa.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h

c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdbool.h:

c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h:

c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:

c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h:

c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h:

c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h:

C:\Program\ Files\ (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.132\include/avr/iom88pa.h:

c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h:

c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h:

c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h:

c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h:

c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h:

c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h:

c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h:

c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h:

c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h:

BIN
PoolClock/Debug/main.o Voir le fichier


+ 6
- 0
PoolClock/Debug/makedep.mk Voir le fichier

@@ -0,0 +1,6 @@
################################################################################
# Automatically-generated file. Do not edit or delete the file
################################################################################

main.c


+ 86
- 0
PoolClock/PoolClockWaterTemp.componentinfo.xml Voir le fichier

@@ -0,0 +1,86 @@
<?xml version="1.0" encoding="utf-8"?>
<Store xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="AtmelPackComponentManagement">
<ProjectComponents>
<ProjectComponent z:Id="i1" xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/">
<CApiVersion></CApiVersion>
<CBundle></CBundle>
<CClass>Device</CClass>
<CGroup>Startup</CGroup>
<CSub></CSub>
<CVariant></CVariant>
<CVendor>Atmel</CVendor>
<CVersion>1.2.0</CVersion>
<DefaultRepoPath>C:/Program Files (x86)\Atmel\Studio\7.0\Packs</DefaultRepoPath>
<DependentComponents xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
<Description></Description>
<Files xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d4p1:anyType i:type="FileInfo">
<AbsolutePath>C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.132\include</AbsolutePath>
<Attribute></Attribute>
<Category>include</Category>
<Condition>C</Condition>
<FileContentHash i:nil="true" />
<FileVersion></FileVersion>
<Name>include</Name>
<SelectString></SelectString>
<SourcePath></SourcePath>
</d4p1:anyType>
<d4p1:anyType i:type="FileInfo">
<AbsolutePath>C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.132\include\avr\iom88pa.h</AbsolutePath>
<Attribute></Attribute>
<Category>header</Category>
<Condition>C</Condition>
<FileContentHash>PWoJcvZZTeGBgzC7OP4j4w==</FileContentHash>
<FileVersion></FileVersion>
<Name>include/avr/iom88pa.h</Name>
<SelectString></SelectString>
<SourcePath></SourcePath>
</d4p1:anyType>
<d4p1:anyType i:type="FileInfo">
<AbsolutePath>C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.132\templates\main.c</AbsolutePath>
<Attribute>template</Attribute>
<Category>source</Category>
<Condition>C Exe</Condition>
<FileContentHash>gxHbyEN2bS28BbjX5Z61rw==</FileContentHash>
<FileVersion></FileVersion>
<Name>templates/main.c</Name>
<SelectString>Main file (.c)</SelectString>
<SourcePath></SourcePath>
</d4p1:anyType>
<d4p1:anyType i:type="FileInfo">
<AbsolutePath>C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.132\templates\main.cpp</AbsolutePath>
<Attribute>template</Attribute>
<Category>source</Category>
<Condition>C Exe</Condition>
<FileContentHash>YXFphlh0CtZJU+ebktABgQ==</FileContentHash>
<FileVersion></FileVersion>
<Name>templates/main.cpp</Name>
<SelectString>Main file (.cpp)</SelectString>
<SourcePath></SourcePath>
</d4p1:anyType>
<d4p1:anyType i:type="FileInfo">
<AbsolutePath>C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.132\gcc\dev\atmega88pa</AbsolutePath>
<Attribute></Attribute>
<Category>libraryPrefix</Category>
<Condition>GCC</Condition>
<FileContentHash i:nil="true" />
<FileVersion></FileVersion>
<Name>gcc/dev/atmega88pa</Name>
<SelectString></SelectString>
<SourcePath></SourcePath>
</d4p1:anyType>
</Files>
<PackName>ATmega_DFP</PackName>
<PackPath>C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/Atmel.ATmega_DFP.pdsc</PackPath>
<PackVersion>1.2.132</PackVersion>
<PresentInProject>true</PresentInProject>
<ReferenceConditionId>ATmega88PA</ReferenceConditionId>
<RteComponents xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d4p1:string></d4p1:string>
</RteComponents>
<Status>Resolved</Status>
<VersionMode>Fixed</VersionMode>
<IsComponentInAtProject>true</IsComponentInAtProject>
</ProjectComponent>
</ProjectComponents>
</Store>

+ 139
- 0
PoolClock/PoolClockWaterTemp.cproj Voir le fichier

@@ -0,0 +1,139 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="14.0">
<PropertyGroup>
<SchemaVersion>2.0</SchemaVersion>
<ProjectVersion>7.0</ProjectVersion>
<ToolchainName>com.Atmel.AVRGCC8.C</ToolchainName>
<ProjectGuid>dce6c7e3-ee26-4d79-826b-08594b9ad897</ProjectGuid>
<avrdevice>ATmega88PA</avrdevice>
<avrdeviceseries>none</avrdeviceseries>
<OutputType>Executable</OutputType>
<Language>C</Language>
<OutputFileName>$(MSBuildProjectName)</OutputFileName>
<OutputFileExtension>.elf</OutputFileExtension>
<OutputDirectory>$(MSBuildProjectDirectory)\$(Configuration)</OutputDirectory>
<AssemblyName>PoolClock</AssemblyName>
<Name>PoolClockWaterTemp</Name>
<RootNamespace>PoolClock</RootNamespace>
<ToolchainFlavour>Native</ToolchainFlavour>
<KeepTimersRunning>true</KeepTimersRunning>
<OverrideVtor>false</OverrideVtor>
<CacheFlash>true</CacheFlash>
<ProgFlashFromRam>true</ProgFlashFromRam>
<RamSnippetAddress>0x20000000</RamSnippetAddress>
<UncachedRange />
<preserveEEPROM>true</preserveEEPROM>
<OverrideVtorValue>exception_table</OverrideVtorValue>
<BootSegment>2</BootSegment>
<eraseonlaunchrule>2</eraseonlaunchrule>
<AsfFrameworkConfig>
<framework-data xmlns="">
<options />
<configurations />
<files />
<documentation help="" />
<offline-documentation help="" />
<dependencies>
<content-extension eid="atmel.asf" uuidref="Atmel.ASF" version="3.34.1" />
</dependencies>
</framework-data>
</AsfFrameworkConfig>
<avrtool>com.atmel.avrdbg.tool.simulator</avrtool>
<avrtoolserialnumber />
<avrdeviceexpectedsignature>0x1E930F</avrdeviceexpectedsignature>
<com_atmel_avrdbg_tool_simulator>
<ToolOptions xmlns="">
<InterfaceProperties>
</InterfaceProperties>
</ToolOptions>
<ToolType xmlns="">com.atmel.avrdbg.tool.simulator</ToolType>
<ToolNumber xmlns="">
</ToolNumber>
<ToolName xmlns="">Simulator</ToolName>
</com_atmel_avrdbg_tool_simulator>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<ToolchainSettings>
<AvrGcc>
<avrgcc.common.Device>-mmcu=atmega88pa -B "%24(PackRepoDir)\atmel\ATmega_DFP\1.2.132\gcc\dev\atmega88pa"</avrgcc.common.Device>
<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.common.outputfiles.usersignatures>False</avrgcc.common.outputfiles.usersignatures>
<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.directories.IncludePaths>
<ListValues>
<Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.2.132\include</Value>
</ListValues>
</avrgcc.compiler.directories.IncludePaths>
<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>
<avrgcc.linker.libraries.Libraries>
<ListValues>
<Value>libm</Value>
</ListValues>
</avrgcc.linker.libraries.Libraries>
<avrgcc.assembler.general.IncludePaths>
<ListValues>
<Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.2.132\include</Value>
</ListValues>
</avrgcc.assembler.general.IncludePaths>
</AvrGcc>
</ToolchainSettings>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<ToolchainSettings>
<AvrGcc>
<avrgcc.common.Device>-mmcu=atmega88pa -B "%24(PackRepoDir)\atmel\ATmega_DFP\1.2.132\gcc\dev\atmega88pa"</avrgcc.common.Device>
<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.common.outputfiles.usersignatures>False</avrgcc.common.outputfiles.usersignatures>
<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.directories.IncludePaths>
<ListValues>
<Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.2.132\include</Value>
</ListValues>
</avrgcc.compiler.directories.IncludePaths>
<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>
<avrgcc.linker.libraries.Libraries>
<ListValues>
<Value>libm</Value>
</ListValues>
</avrgcc.linker.libraries.Libraries>
<avrgcc.assembler.general.IncludePaths>
<ListValues>
<Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.2.132\include</Value>
</ListValues>
</avrgcc.assembler.general.IncludePaths>
<avrgcc.assembler.debugging.DebugLevel>Default (-Wa,-g)</avrgcc.assembler.debugging.DebugLevel>
</AvrGcc>
</ToolchainSettings>
</PropertyGroup>
<ItemGroup>
<Compile Include="main.c">
<SubType>compile</SubType>
</Compile>
</ItemGroup>
<Import Project="$(AVRSTUDIO_EXE_PATH)\\Vs\\Compiler.targets" />
</Project>

+ 266
- 0
PoolClock/main - Kopie.c Voir le fichier

@@ -0,0 +1,266 @@
#include <stdbool.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#define F_CPU 20000000UL //20 MHz
#include <util/delay.h>

/* 7-Segment display: */
#define NUM_DIGITS 3U //3 Digits
#define DIGIT_TENS 2U //left
#define DIGIT_ONES 1U //middle
#define DIGIT_UNIT 0U //right
#define SELECT_DIGIT(digit) (1U << digit)

#define TEMP_MIN 0U
#define TEMP_MAX 50U

#define BUTTON_THRESHOLD 50U //software debounce

/* Symbol indexes: */
#define SYM_n 10U
#define SYM_o 11U
#define SYM_E 12U
#define SYM_R 13U
#define SYM_DEG_CELCIUS 14U
#define SYM_P_P 15U
#define SYM_OFF 16U
#define SYM_DASH 17U

/*
7-Segment Layout:

A
F B
G
E C
D P

Pin 7 6 5 4 3 2 1 0
Segment A F B E D C G P
*/
static uint8_t g_au8Symbols[18U] =
{
/* 00 */ 0b11111100U, //0 (ABCDEF)
/* 01 */ 0b00100100U, //1 (BC)
/* 02 */ 0b10111010U, //2 (ABDEG)
/* 03 */ 0b10101110U, //3 (ABCDG)
/* 04 */ 0b01100110U, //4 (BCFG)
/* 05 */ 0b11001110U, //5 (ACDFG)
/* 06 */ 0b11011110U, //6 (ACDEFG)
/* 07 */ 0b10100100U, //7 (ABC)
/* 08 */ 0b11111110U, //8 (ABCDEFG)
/* 09 */ 0b11101110U, //9 (ABCDFG)
/* 10 */ 0b00010110U, //n (CEG) SYM_n
/* 11 */ 0b00011110U, //o (CDEG) SYM_o
/* 12 */ 0b11011010U, //E (ADEFG) SYM_E
/* 13 */ 0b00010010U, //r (EG) SYM_r
/* 14 */ 0b10101101U, //degC (ABCDP) SYM_DEG_CELCIUS
/* 15 */ 0b11110011U, //P. (ABEFGP) SYM_P_P
/* 16 */ 0b00000000U, //OFF SYM_OFF
/* 17 */ 0b00000010U //- (G) SYM_DASH
};

static uint8_t g_u8WaterTemperature = 24U; //Water temperature, default 24 degree celcius
static uint8_t g_u8CountIncs = 0U; //'+' button counter
static uint8_t g_u8CountDecs = 0U; //'-' button counter

uint8_t g_u8ISRDigitSelect = 0U;
uint8_t g_au8Digits[3U] =
{
SYM_OFF, //unit
SYM_OFF, //ones
SYM_OFF //tens
};

void vInit( void );
void vSetValue( uint8_t u8Value, uint8_t u8Unit );
void vSetDisplayDigits( uint8_t u8Tens, uint8_t u8Ones, uint8_t u8Unit );
void vReadButtons( void );
void vCalculate( void );

/************************************************************************/
/* Timer1 ISR - show values on display */
/************************************************************************/
ISR ( TIMER1_COMPA_vect )
{
PORTB = 0;
PORTD = 0;
_delay_us(2);
PORTB = SELECT_DIGIT(g_u8ISRDigitSelect);
PORTD = g_au8Symbols[g_au8Digits[g_u8ISRDigitSelect]];
g_u8ISRDigitSelect++;
if (g_u8ISRDigitSelect > 2U)
{
g_u8ISRDigitSelect = 0U;
}
}

/************************************************************************/
/* main() */
/************************************************************************/
int main(void)
{
/* Init I/O: */
vInit();
/* Set default value: */
vSetDisplayDigits( SYM_DASH, SYM_DASH, SYM_DASH );
/* wait 3 seconds */
_delay_ms(3000);
/* Set default value: */
vSetValue( g_u8WaterTemperature, SYM_DEG_CELCIUS );
while ( 1 )
{
vReadButtons();
vCalculate();
_delay_ms(3);
}

return 0;
}

/************************************************************************/
/* Initialize inputs and outputs */
/************************************************************************/
void vInit( void )
{
/* Port D - Pins 0-7: Outputs */
DDRD = 0b11111111U;
/* Port B - Pins 0-2: Outputs */
DDRB = 0b00000111U;
/* Port C - Pins 4-5: Inputs with internal Pull-up */
PORTC = 0b00110000U;
/* 16-bit TIMER1 in CTC mode
* prescaler = 8
* 20 MHz / 8 = 2.5 MHz
* Compare value = 2500 => 1 ms IRQ
*/
TCCR1A = 0U;
TCCR1B = (1<<WGM12) | (1<<CS11);
OCR1A = 2500U;
TIMSK1 |= (1<<OCIE1A);
sei();
return; //void
}

/************************************************************************/
/* */
/************************************************************************/
void vDigitTest( void)
{
PORTB = SELECT_DIGIT(DIGIT_TENS);
PORTD = 0xFF;
_delay_ms(1000);
PORTD = 0;
_delay_ms(100);
PORTB = SELECT_DIGIT(DIGIT_ONES);
PORTD = 0xFF;
_delay_ms(1000);
PORTD = 0;
_delay_ms(100);
PORTB = SELECT_DIGIT(DIGIT_UNIT);
PORTD = 0xFF;
_delay_ms(1000);
PORTD = 0;
_delay_ms(100);

return; //void
}

/************************************************************************/
/* Set new values to be shown on display */
/************************************************************************/
void vSetValue( uint8_t u8Value, uint8_t u8Unit )
{
uint8_t u8Tmp = u8Value / 10U;
vSetDisplayDigits(u8Tmp, u8Value - (u8Tmp * 10U), u8Unit);

return; //void
}

/************************************************************************/
/* Set display digits individually */
/************************************************************************/
void vSetDisplayDigits( uint8_t u8Tens, uint8_t u8Ones, uint8_t u8Unit )
{
g_au8Digits[DIGIT_TENS] = u8Tens;
g_au8Digits[DIGIT_ONES] = u8Ones;
g_au8Digits[DIGIT_UNIT] = u8Unit;
return; //void
}

/************************************************************************/
/* Read button status */
/************************************************************************/
void vReadButtons( void )
{
if ( !(PINC & (1<<PINC4)) ) //if button '+' pressed
{
g_u8CountIncs++;
}
else
{
g_u8CountIncs = 0U; //reset button counter
}
if ( !(PINC & (1<<PINC5)) ) //if button '-' pressed
{
g_u8CountDecs++;
}
else
{
g_u8CountDecs = 0U; //reset button counter
}

return; //void
}

/************************************************************************/
/* */
/************************************************************************/
void vCalculate( void )
{
bool blChanged = false;
if ( g_u8CountIncs > BUTTON_THRESHOLD )
{
g_u8WaterTemperature++;
if ( g_u8WaterTemperature > TEMP_MAX )
{
g_u8WaterTemperature = TEMP_MIN;
}
blChanged = true;
g_u8CountIncs = 0U; //reset increment counter
}
if ( g_u8CountDecs > BUTTON_THRESHOLD )
{
if ( g_u8WaterTemperature == TEMP_MIN )
{
g_u8WaterTemperature = TEMP_MAX;
}
else
{
g_u8WaterTemperature--;
}
blChanged = true;
g_u8CountDecs = 0U; //reset decrement counter
}

if ( blChanged )
{
vSetValue( g_u8WaterTemperature, SYM_DEG_CELCIUS );
}

return; //void
}

+ 559
- 0
PoolClock/main.c Voir le fichier

@@ -0,0 +1,559 @@
#include <stdbool.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#define F_CPU 20000000UL //20 MHz
#include <util/delay.h>

/* 7-Segment display: */
#define NUM_DIGITS 3U //3 Digits
#define DIGIT_TENS 2U //left
#define DIGIT_ONES 1U //middle
#define DIGIT_UNIT 0U //right
#define SELECT_DIGIT(digit) (1U << digit)

/* DS18B20 peripherals: */
#define DS18B20_PORT PORTC
#define DS18B20_DDR DDRC
#define DS18B20_PIN PINC
#define DS18B20_DQ PINC3

/* DS18B20 commands: */
#define DS18B20_CMD_CONVERTTEMP 0x44U
#define DS18B20_CMD_RSCRATCHPAD 0xBEU
#define DS18B20_CMD_WSCRATCHPAD 0x4EU
#define DS18B20_CMD_CPYSCRATCHPAD 0x48U
#define DS18B20_CMD_RECEEPROM 0xB8U
#define DS18B20_CMD_RPWRSUPPLY 0xB4U
#define DS18B20_CMD_SEARCHROM 0xF0U
#define DS18B20_CMD_READROM 0x33U
#define DS18B20_CMD_MATCHROM 0x55U
#define DS18B20_CMD_SKIPROM 0xCCU
#define DS18B20_CMD_ALARMSEARCH 0xECU

//#define TEMP_MIN 0U
//#define TEMP_MAX 50U

#define MODE_MEASURE 0U
#define MODE_ANIMATION_1 1U
#define MODE_ANIMATION_2 2U

#define ANIMATION_DELAY_MS 70U

#define ANIMATION_START_DELAY_MS 70U

#define BUTTON_THRESHOLD 50 //software debounce

/* Symbol indexes: */
#define SYM_n 10U
#define SYM_o 11U
#define SYM_E 12U
#define SYM_R 13U
#define SYM_DEG_CELCIUS 14U
#define SYM_P_P 15U
#define SYM_OFF 16U
#define SYM_DASH 17U
#define SYM_I 18U
#define SYM_SEG_A 19U
#define SYM_SEG_B 20U
#define SYM_SEG_C 21U
#define SYM_SEG_D 22U
#define SYM_SEG_E 23U
#define SYM_SEG_F 24U
#define SYM_SEG_AB 25U
#define SYM_SEG_BCD 26U
#define SYM_SEG_CD 27U
#define SYM_SEG_DE 28U
#define SYM_SEG_DEF 29U
#define SYM_SEG_AEF 30U
#define SYM_SEG_AF 31U

/*
7-Segment Layout:

A
F B
G
E C
D P

Pin 7 6 5 4 3 2 1 0
Segment A F B E D C G P
*/
static uint8_t g_au8Symbols[32U] =
{
/* 00 */ 0b11111100U, //0 (ABCDEF)
/* 01 */ 0b00100100U, //1 (BC)
/* 02 */ 0b10111010U, //2 (ABDEG)
/* 03 */ 0b10101110U, //3 (ABCDG)
/* 04 */ 0b01100110U, //4 (BCFG)
/* 05 */ 0b11001110U, //5 (ACDFG)
/* 06 */ 0b11011110U, //6 (ACDEFG)
/* 07 */ 0b10100100U, //7 (ABC)
/* 08 */ 0b11111110U, //8 (ABCDEFG)
/* 09 */ 0b11101110U, //9 (ABCDFG)
/* 10 */ 0b00010110U, //n (CEG) SYM_n
/* 11 */ 0b00011110U, //o (CDEG) SYM_o
/* 12 */ 0b11011010U, //E (ADEFG) SYM_E
/* 13 */ 0b00010010U, //r (EG) SYM_r
/* 14 */ 0b10101101U, //degC (ABCDP) SYM_DEG_CELCIUS
/* 15 */ 0b11110011U, //P. (ABEFGP) SYM_P_P
/* 16 */ 0b00000000U, //OFF SYM_OFF
/* 17 */ 0b00000010U, //- (G) SYM_DASH
/* 18 */ 0b01010000U, //I (EF) SYM_I
/* 19 */ 0b10000000U, //SegA SYM_SEG_A
/* 20 */ 0b00100000U, //SegB SYM_SEG_B
/* 21 */ 0b00000100U, //SegC SYM_SEG_C
/* 22 */ 0b00001000U, //SegD SYM_SEG_D
/* 23 */ 0b00010000U, //SegE SYM_SEG_E
/* 24 */ 0b01000000U, //SegF SYM_SEG_F
/* 25 */ 0b10100000U, //SegAB SYM_SEG_AB
/* 26 */ 0b00101100U, //SegBCD SYM_SEG_BCD
/* 27 */ 0b00001100U, //SegCD SYM_SEG_CD
/* 28 */ 0b00011000U, //SegDE SYM_SEG_DE
/* 29 */ 0b01011000U, //SegDEF SYM_SEG_DEF
/* 30 */ 0b11010000U, //SegAEF SYM_SEG_AEF
/* 31 */ 0b11000000U, //SegAF SYM_SEG_AF
};

//static uint8_t g_u8WaterTemperature = 24U; //Water temperature, default 24 degree celcius
static uint8_t g_u8ButtonCountTop = 0U; //upper button counter
static uint8_t g_u8ButtonCountBot = 0U; //lower button counter
static uint8_t g_u8Mode = MODE_MEASURE; //Current display mode

uint8_t g_u8ISRDigitSelect = 0U;
uint8_t g_au8Digits[3U] =
{
SYM_OFF, //unit
SYM_OFF, //ones
SYM_OFF //tens
};

void s_vInit( void );
void s_vSetValue( uint8_t u8Value, uint8_t u8Unit );
void s_vSetDisplayDigits( uint8_t u8Tens, uint8_t u8Ones, uint8_t u8Unit );

void s_vReadButtons( void );
void s_vShowAnim( uint8_t u8Select );

uint8_t s_u8DS18B20_Reset( void );
void s_vDS18B20_WriteByte( uint8_t u8Byte );
void s_vDS18B20_WriteBit( uint8_t u8Bit );
uint8_t s_u8DS18B20_ReadByte( void );
uint8_t s_u8DS18B20_ReadBit( void );


/************************************************************************/
/* Timer1 ISR - show values on display */
/************************************************************************/
ISR ( TIMER1_COMPA_vect )
{
PORTB = 0;
PORTD = 0;
_delay_us(2);
PORTB = SELECT_DIGIT(g_u8ISRDigitSelect);
PORTD = g_au8Symbols[g_au8Digits[g_u8ISRDigitSelect]];
g_u8ISRDigitSelect++;
if (g_u8ISRDigitSelect > 2U)
{
g_u8ISRDigitSelect = 0U;
}
/* Read and evaluate button status */
s_vReadButtons();
}

/************************************************************************/
/* main() */
/************************************************************************/
int main(void)
{
uint8_t u8TempLo, u8TempHi;
float f32Temperature;
uint8_t u8Loop = 0U;
/* Init I/O: */
s_vInit();
s_vSetDisplayDigits( SYM_OFF, SYM_OFF, SYM_OFF );
_delay_ms(10);
s_vSetDisplayDigits( SYM_SEG_A, SYM_OFF, SYM_OFF );
_delay_ms(300);
s_vSetDisplayDigits( SYM_SEG_A, SYM_SEG_A, SYM_OFF );
_delay_ms(300);
s_vSetDisplayDigits( SYM_SEG_A, SYM_SEG_A, SYM_SEG_D );
_delay_ms(300);
while ( u8Loop < 5U )
{
s_vSetDisplayDigits( SYM_OFF, SYM_SEG_A, SYM_SEG_DE );
_delay_ms(ANIMATION_START_DELAY_MS);
s_vSetDisplayDigits( SYM_OFF, SYM_OFF, SYM_SEG_DEF );
_delay_ms(ANIMATION_START_DELAY_MS);
s_vSetDisplayDigits( SYM_OFF, SYM_OFF, SYM_SEG_AEF );
_delay_ms(ANIMATION_START_DELAY_MS);
s_vSetDisplayDigits( SYM_OFF, SYM_SEG_D, SYM_SEG_AF );
_delay_ms(ANIMATION_START_DELAY_MS);
s_vSetDisplayDigits( SYM_SEG_D, SYM_SEG_D, SYM_SEG_A );
_delay_ms(ANIMATION_START_DELAY_MS);
s_vSetDisplayDigits( SYM_SEG_DE, SYM_SEG_D, SYM_OFF );
_delay_ms(ANIMATION_START_DELAY_MS);
s_vSetDisplayDigits( SYM_SEG_DEF, SYM_OFF, SYM_OFF );
_delay_ms(ANIMATION_START_DELAY_MS);
s_vSetDisplayDigits( SYM_SEG_AEF, SYM_OFF, SYM_OFF );
_delay_ms(ANIMATION_START_DELAY_MS);
s_vSetDisplayDigits( SYM_SEG_AF, SYM_SEG_A, SYM_OFF );
_delay_ms(ANIMATION_START_DELAY_MS);
s_vSetDisplayDigits( SYM_SEG_A, SYM_SEG_A, SYM_SEG_D );
_delay_ms(ANIMATION_START_DELAY_MS);
u8Loop++;
}
/* Set default value: */
s_vSetDisplayDigits( SYM_OFF, SYM_OFF, SYM_OFF );
while ( 1 )
{

/* perform mode action */
switch ( g_u8Mode )
{
case MODE_MEASURE:
(void) s_u8DS18B20_Reset();
s_vDS18B20_WriteByte( DS18B20_CMD_SKIPROM );
s_vDS18B20_WriteByte( DS18B20_CMD_CONVERTTEMP );
while ( !s_u8DS18B20_ReadBit() );
(void) s_u8DS18B20_Reset();
s_vDS18B20_WriteByte( DS18B20_CMD_SKIPROM );
s_vDS18B20_WriteByte( DS18B20_CMD_RSCRATCHPAD );
u8TempLo = s_u8DS18B20_ReadByte();
u8TempHi = s_u8DS18B20_ReadByte();
f32Temperature = ((u8TempHi << 8) + u8TempLo) * 0.0625;
s_vSetValue( (uint8_t) f32Temperature, SYM_DEG_CELCIUS );
if ( g_u8Mode == MODE_MEASURE )
{
_delay_ms(500);
}
break;
case MODE_ANIMATION_1:
s_vShowAnim(g_u8Mode);
g_u8Mode = MODE_MEASURE;
break;
case MODE_ANIMATION_2:
s_vShowAnim(g_u8Mode);
g_u8Mode = MODE_MEASURE;
break;
default:
break;
} //end switch
}

return 0;
}

/************************************************************************/
/* Initialize inputs and outputs */
/************************************************************************/
void s_vInit( void )
{
/* Port D - Pins 0-7: Outputs */
DDRD = 0b11111111U;
/* Port B - Pins 0-2: Outputs */
DDRB = 0b00000111U;
/* Port C - Pins 4-5: Inputs with internal Pull-up */
PORTC = 0b00110000U;
/* 16-bit TIMER1 in CTC mode
* prescaler = 8
* 20 MHz / 8 = 2.5 MHz
* Compare value = 2500 => 1 ms IRQ
*/
TCCR1A = 0U;
TCCR1B = (1<<WGM12) | (1<<CS11);
OCR1A = 2500U;
TIMSK1 |= (1<<OCIE1A);
sei();
return; //void
}


/************************************************************************/
/* Set new values to be shown on display */
/************************************************************************/
void s_vSetValue( uint8_t u8Value, uint8_t u8Unit )
{
uint8_t u8Tmp = u8Value / 10U;
s_vSetDisplayDigits(u8Tmp, u8Value - (u8Tmp * 10U), u8Unit);

return; //void
}

/************************************************************************/
/* Set display digits individually */
/************************************************************************/
void s_vSetDisplayDigits( uint8_t u8Tens, uint8_t u8Ones, uint8_t u8Unit )
{
g_au8Digits[DIGIT_TENS] = u8Tens;
g_au8Digits[DIGIT_ONES] = u8Ones;
g_au8Digits[DIGIT_UNIT] = u8Unit;
return; //void
}

/************************************************************************/
/* Read button status */
/************************************************************************/
void s_vReadButtons( void )
{
if ( !(PINC & (1<<PINC4)) ) //if button '+' pressed
{
g_u8ButtonCountTop++;
}
else
{
g_u8ButtonCountTop = 0U; //reset button counter
}
if ( !(PINC & (1<<PINC5)) ) //if button '-' pressed
{
g_u8ButtonCountBot++;
}
else
{
g_u8ButtonCountBot = 0U; //reset button counter
}
if ( g_u8ButtonCountTop > BUTTON_THRESHOLD )
{
g_u8ButtonCountTop = 0U; //reset top counter
g_u8Mode = MODE_ANIMATION_1;
}
else if ( g_u8ButtonCountBot > BUTTON_THRESHOLD )
{
g_u8ButtonCountBot = 0U; //reset bottom counter
g_u8Mode = MODE_ANIMATION_2;
}
//else
//{
//return MODE_MEASURE;
//}
return; //void
}


/************************************************************************/
/* */
/************************************************************************/
void s_vShowAnim( uint8_t u8Select )
{
s_vSetDisplayDigits( SYM_OFF, SYM_OFF, SYM_OFF );
_delay_ms(ANIMATION_DELAY_MS);
switch ( u8Select )
{
case MODE_ANIMATION_1: //fade from left to right and from right to left
s_vSetDisplayDigits( SYM_I, SYM_OFF, SYM_OFF );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( SYM_E, SYM_OFF, SYM_OFF );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( 8U, SYM_OFF, SYM_OFF );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( 8U, SYM_I, SYM_OFF );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( 8U, SYM_E, SYM_OFF );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( 8U, 8U, SYM_OFF );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( 8U, 8U, 1U );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( 8U, 8U, 3U );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( 8U, 8U, 8U );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( 8U, 8U, 8U );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( 8U, 8U, 3U );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( 8U, 8U, 1U );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( 8U, 8U, SYM_OFF );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( 8U, SYM_E, SYM_OFF );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( 8U, SYM_I, SYM_OFF );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( 8U, SYM_OFF, SYM_OFF );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( SYM_E, SYM_OFF, SYM_OFF );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( SYM_I, SYM_OFF, SYM_OFF );
_delay_ms(ANIMATION_DELAY_MS);
break;
case MODE_ANIMATION_2: //fade from left to right and clear
s_vSetDisplayDigits( SYM_I, SYM_OFF, SYM_OFF );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( SYM_E, SYM_OFF, SYM_OFF );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( 8U, SYM_OFF, SYM_OFF );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( 8U, SYM_I, SYM_OFF );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( 8U, SYM_E, SYM_OFF );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( 8U, 8U, SYM_OFF );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( 8U, 8U, 1U );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( 8U, 8U, 3U );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( 8U, 8U, 8U );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( 3U, 8U, 8U );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( 1U, 8U, 8U );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( SYM_OFF, 8U, 8U );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( SYM_OFF, 3U, 8U );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( SYM_OFF, 1U, 8U );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( SYM_OFF, SYM_OFF, 8U );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( SYM_OFF, SYM_OFF, SYM_E );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( SYM_OFF, SYM_OFF, SYM_I );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( SYM_OFF, SYM_OFF, SYM_OFF );
_delay_ms(ANIMATION_DELAY_MS);
break;
default:
break;
} //end switch
s_vSetDisplayDigits( SYM_OFF, SYM_OFF, SYM_OFF );
_delay_ms(ANIMATION_DELAY_MS);
return; //void
}


/************************************************************************/
/* Reset DS18B20 (960 us) */
/************************************************************************/
uint8_t s_u8DS18B20_Reset( void )
{
uint8_t u8Status;

//low for 480 us
DS18B20_PORT &= ~ (1<<DS18B20_DQ); //low
DS18B20_DDR |= (1<<DS18B20_DQ); //output
_delay_us(480);

//release line and wait for 60 us
DS18B20_DDR &= ~(1<<DS18B20_DQ); //input
_delay_us(60);

//get value and wait 420 us
u8Status = (DS18B20_PIN & (1<<DS18B20_DQ));
_delay_us(420);

//return the read value: 0=okay, 1=error
return u8Status;
}

/************************************************************************/
/* Write byte to DS18B20 (8 * 61 us = 488 us) */
/************************************************************************/
void s_vDS18B20_WriteByte( uint8_t u8Byte )
{
uint8_t u8Bits = 8U;
while ( u8Bits-- )
{
s_vDS18B20_WriteBit( u8Byte & 1U );
u8Byte >>= 1U;
}
return; //void
}


/************************************************************************/
/* Write single bit to DS18B20 (61 us) */
/************************************************************************/
void s_vDS18B20_WriteBit( uint8_t u8Bit )
{
//low for 1 us
DS18B20_PORT &= ~ (1U<<DS18B20_DQ); //low
DS18B20_DDR |= (1U<<DS18B20_DQ); //output
_delay_us(1);

//if we want to write 1, release the line (if not will keep low)
if (1U == u8Bit )
{
DS18B20_DDR &= ~(1<<DS18B20_DQ); //input
}

//wait 60 us and release the line
_delay_us(60);
DS18B20_DDR &= ~(1<<DS18B20_DQ); //input
return; //void
}

/************************************************************************/
/* Read byte from DS18B20 (8 * 60 us = 480 us) */
/************************************************************************/
uint8_t s_u8DS18B20_ReadByte( void )
{
uint8_t u8Bits = 8U;
uint8_t n = 0U;
while ( u8Bits-- )
{
n >>= 1U;
n |= (s_u8DS18B20_ReadBit()<<7U);
}

return n;
}

/************************************************************************/
/* Read single bit from DS18B20 (60 us) */
/************************************************************************/
uint8_t s_u8DS18B20_ReadBit( void )
{
uint8_t u8Bit = 0U;

//low for 1 us
DS18B20_PORT &= ~ (1U<<DS18B20_DQ); //low
DS18B20_DDR |= (1U<<DS18B20_DQ); //output
_delay_us(1);

//release line and wait for 14 us
DS18B20_DDR &= ~(1U<<DS18B20_DQ); //input
_delay_us(14);

//read the value
if ( DS18B20_PIN & (1U<<DS18B20_DQ) )
{
u8Bit = 1U;
}
//wait 45 us and return read value
_delay_us(45);
return u8Bit;
}

+ 129
- 0
PoolClockAirTemp/Debug/Makefile Voir le fichier

@@ -0,0 +1,129 @@
################################################################################
# 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:=
LINKER_SCRIPT_DEP:=

# Every subdirectory with source files must be described here
SUBDIRS :=


# Add inputs and outputs from these tool invocations to the build variables
C_SRCS += \
../main.c


PREPROCESSING_SRCS +=


ASM_SRCS +=


OBJS += \
main.o

OBJS_AS_ARGS += \
main.o

C_DEPS += \
main.d

C_DEPS_AS_ARGS += \
main.d

OUTPUT_FILE_PATH +=PoolClockAirTemp.elf

OUTPUT_FILE_PATH_AS_ARGS +=PoolClockAirTemp.elf

ADDITIONAL_DEPENDENCIES:=

OUTPUT_FILE_DEP:= ./makedep.mk

LIB_DEP+=

LINKER_SCRIPT_DEP+=


# AVR32/GNU C Compiler



./%.o: .././%.c
@echo Building file: $<
@echo Invoking: AVR/GNU C Compiler : 5.4.0
$(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.132\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega88pa -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.132\gcc\dev\atmega88pa" -c -std=gnu99 -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) $(LINKER_SCRIPT_DEP)
@echo Building target: $@
@echo Invoking: AVR/GNU Linker : 5.4.0
$(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -o$(OUTPUT_FILE_PATH_AS_ARGS) $(OBJS_AS_ARGS) $(USER_OBJS) $(LIBS) -Wl,-Map="PoolClockAirTemp.map" -Wl,--start-group -Wl,-lm -Wl,--end-group -Wl,--gc-sections -mmcu=atmega88pa -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.132\gcc\dev\atmega88pa"
@echo Finished building target: $@
"C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O ihex -R .eeprom -R .fuse -R .lock -R .signature -R .user_signatures "PoolClockAirTemp.elf" "PoolClockAirTemp.hex"
"C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy.exe" -j .eeprom --set-section-flags=.eeprom=alloc,load --change-section-lma .eeprom=0 --no-change-warnings -O ihex "PoolClockAirTemp.elf" "PoolClockAirTemp.eep" || exit 0
"C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objdump.exe" -h -S "PoolClockAirTemp.elf" > "PoolClockAirTemp.lss"
"C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O srec -R .eeprom -R .fuse -R .lock -R .signature -R .user_signatures "PoolClockAirTemp.elf" "PoolClockAirTemp.srec"
"C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-size.exe" "PoolClockAirTemp.elf"





# Other Targets
clean:
-$(RM) $(OBJS_AS_ARGS) $(EXECUTABLES)
-$(RM) $(C_DEPS_AS_ARGS)
rm -rf "PoolClockAirTemp.elf" "PoolClockAirTemp.a" "PoolClockAirTemp.hex" "PoolClockAirTemp.lss" "PoolClockAirTemp.eep" "PoolClockAirTemp.map" "PoolClockAirTemp.srec" "PoolClockAirTemp.usersignatures"

+ 1
- 0
PoolClockAirTemp/Debug/PoolClockAirTemp.eep Voir le fichier

@@ -0,0 +1 @@
:00000001FF

BIN
PoolClockAirTemp/Debug/PoolClockAirTemp.elf Voir le fichier


+ 77
- 0
PoolClockAirTemp/Debug/PoolClockAirTemp.hex Voir le fichier

@@ -0,0 +1,77 @@
:1000000019C033C032C031C030C02FC02EC02DC087
:100010002CC02BC02AC02AC028C027C026C025C09B
:1000200024C023C022C021C020C01FC01EC01DC0CC
:100030001CC01BC011241FBECFEFD4E0DEBFCDBF5C
:1000400011E0A0E0B1E0E0EAF4E002C005900D921A
:10005000A631B107D9F721E0A6E1B1E001C01D92B8
:10006000A731B207E1F7BFD019C2CACF1F920F92D2
:100070000FB60F9211248F939F93EF93FF9315B8B0
:100080001BB88DE08A95F1F7000081E090E00090C8
:10009000160102C0880F991F0A94E2F785B9E09112
:1000A0001601F0E0E050FF4FE081F0E0ED5FFE4F21
:1000B00080818BB9809116018F5F833018F4809313
:1000C000160102C010921601FF91EF919F918F913E
:1000D0000F900FBE0F901F9018958FEF8AB987E091
:1000E00084B9109280008AE08093810084EC99E0CA
:1000F0009093890080938800EFE6F0E08081826031
:100100008083789408959DEC899F912D1124969574
:1001100096959695E0E0F1E09283990F292F220FB2
:10012000220F920F891B81836083089543983B9A25
:100130008FE599E00197F1F700C000003B98EBE2F2
:10014000F1E03197F1F700C0000086B1E3E3F8E099
:100150003197F1F700C000008870089543983B9AEA
:1001600096E09A95F1F700C0813009F43B988BE254
:1001700091E00197F1F700C000003B980895CF93FC
:10018000DF93D82FC8E08D2F8170E8DFD695C1505E
:10019000D1F7DF91CF91089543983B9A86E08A95F5
:1001A000F1F700C03B98EDE5EA95F1F7000086B164
:1001B000E0EEF0E03197F1F700C0000083FB882704
:1001C00080F90895CF93DF93D8E0C0E0E5DF20E821
:1001D000829FC0011124C695C82BD150B9F78C2F2E
:1001E000DF91CF91089579DFE0E0F1E081E1828352
:1001F000818380832FEF8BE792E9215080409040EC
:10020000E1F700C0000092DF8CECB9DF84E4B7DFD7
:10021000C3DF8823E9F38ADF8CECB1DF8EEBAFDF3D
:10022000D1DFC82FCFDF682F70E0762F66276C0FE5
:10023000711D072E000C880B990B41D020E030E097
:1002400040E85DE3A0D00DD0862F6EE05CDF2FE7A5
:1002500084E89EE1215080409040E1F700C000001A
:10026000D2CF70D088F09F5790F0B92F9927B7510F
:10027000A0F0D1F0660F771F881F991F1AF0BA956A
:10028000C9F712C0B13081F077D0B1E0089574C0E1
:10029000672F782F8827B85F39F0B93FCCF3869560
:1002A00077956795B395D9F73EF4909580957095BD
:1002B00061957F4F8F4F9F4F0895E89409C097FB3A
:1002C0003EF490958095709561957F4F8F4F9F4F2D
:1002D0009923A9F0F92F96E9BB279395F695879571
:1002E00077956795B795F111F8CFFAF4BB0F11F434
:1002F00060FF1BC06F5F7F4F8F4F9F4F16C08823DB
:1003000011F096E911C0772321F09EE8872F762F10
:1003100005C0662371F096E8862F70E060E02AF051
:100320009A95660F771F881FDAF7880F969587953D
:1003300097F9089557FD9058440F551F59F05F3FA6
:1003400071F04795880F97FB991F61F09F3F79F0F7
:1003500087950895121613061406551FF2CF469579
:10036000F1DF08C0161617061806991FF1CF8695FB
:100370007105610508940895E894BB2766277727DF
:10038000CB0197F908950BD078C069D028F06ED0D2
:1003900018F0952309F05AC05FC01124EECFCADFD0
:1003A000A0F3959FD1F3950F50E0551F629FF00188
:1003B000729FBB27F00DB11D639FAA27F00DB11DE1
:1003C000AA1F649F6627B00DA11D661F829F22276A
:1003D000B00DA11D621F739FB00DA11D621F839FF1
:1003E000A00D611D221F749F3327A00D611D231FC7
:1003F000849F600D211D822F762F6A2F11249F5715
:1004000050408AF0E1F088234AF0EE0FFF1FBB1F37
:10041000661F771F881F91505040A9F79E3F5105D6
:1004200070F014C0AACF5F3FECF3983EDCF38695E2
:1004300077956795B795F795E7959F5FC1F7FE2B81
:10044000880F911D9695879597F9089597F99F675D
:1004500080E870E060E008959FEF80EC089500244C
:100460000A941616170618060906089500240A9419
:1004700012161306140605060895092E0394000C9F
:1004800011F4882352F0BB0F40F4BF2B11F460FF2E
:1004900004C06F5F7F4F8F4F9F4F0895F894FFCF39
:1004A000101010FC24BAAE66CEDEA4FEEE161EDAE4
:0604B00012ADF300020092
:00000001FF

+ 837
- 0
PoolClockAirTemp/Debug/PoolClockAirTemp.lss Voir le fichier

@@ -0,0 +1,837 @@

PoolClockAirTemp.elf: file format elf32-avr

Sections:
Idx Name Size VMA LMA File off Algn
0 .data 00000016 00800100 000004a0 00000534 2**0
CONTENTS, ALLOC, LOAD, DATA
1 .text 000004a0 00000000 00000000 00000094 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE
2 .bss 00000001 00800116 00800116 0000054a 2**0
ALLOC
3 .comment 00000030 00000000 00000000 0000054a 2**0
CONTENTS, READONLY
4 .note.gnu.avr.deviceinfo 00000040 00000000 00000000 0000057c 2**2
CONTENTS, READONLY
5 .debug_aranges 00000068 00000000 00000000 000005bc 2**0
CONTENTS, READONLY, DEBUGGING
6 .debug_info 00000cee 00000000 00000000 00000624 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_abbrev 0000084b 00000000 00000000 00001312 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_line 000004ba 00000000 00000000 00001b5d 2**0
CONTENTS, READONLY, DEBUGGING
9 .debug_frame 000000ec 00000000 00000000 00002018 2**2
CONTENTS, READONLY, DEBUGGING
10 .debug_str 000004d2 00000000 00000000 00002104 2**0
CONTENTS, READONLY, DEBUGGING
11 .debug_loc 0000059b 00000000 00000000 000025d6 2**0
CONTENTS, READONLY, DEBUGGING
12 .debug_ranges 00000058 00000000 00000000 00002b71 2**0
CONTENTS, READONLY, DEBUGGING

Disassembly of section .text:

00000000 <__vectors>:
0: 19 c0 rjmp .+50 ; 0x34 <__ctors_end>
2: 33 c0 rjmp .+102 ; 0x6a <__bad_interrupt>
4: 32 c0 rjmp .+100 ; 0x6a <__bad_interrupt>
6: 31 c0 rjmp .+98 ; 0x6a <__bad_interrupt>
8: 30 c0 rjmp .+96 ; 0x6a <__bad_interrupt>
a: 2f c0 rjmp .+94 ; 0x6a <__bad_interrupt>
c: 2e c0 rjmp .+92 ; 0x6a <__bad_interrupt>
e: 2d c0 rjmp .+90 ; 0x6a <__bad_interrupt>
10: 2c c0 rjmp .+88 ; 0x6a <__bad_interrupt>
12: 2b c0 rjmp .+86 ; 0x6a <__bad_interrupt>
14: 2a c0 rjmp .+84 ; 0x6a <__bad_interrupt>
16: 2a c0 rjmp .+84 ; 0x6c <__vector_11>
18: 28 c0 rjmp .+80 ; 0x6a <__bad_interrupt>
1a: 27 c0 rjmp .+78 ; 0x6a <__bad_interrupt>
1c: 26 c0 rjmp .+76 ; 0x6a <__bad_interrupt>
1e: 25 c0 rjmp .+74 ; 0x6a <__bad_interrupt>
20: 24 c0 rjmp .+72 ; 0x6a <__bad_interrupt>
22: 23 c0 rjmp .+70 ; 0x6a <__bad_interrupt>
24: 22 c0 rjmp .+68 ; 0x6a <__bad_interrupt>
26: 21 c0 rjmp .+66 ; 0x6a <__bad_interrupt>
28: 20 c0 rjmp .+64 ; 0x6a <__bad_interrupt>
2a: 1f c0 rjmp .+62 ; 0x6a <__bad_interrupt>
2c: 1e c0 rjmp .+60 ; 0x6a <__bad_interrupt>
2e: 1d c0 rjmp .+58 ; 0x6a <__bad_interrupt>
30: 1c c0 rjmp .+56 ; 0x6a <__bad_interrupt>
32: 1b c0 rjmp .+54 ; 0x6a <__bad_interrupt>

00000034 <__ctors_end>:
34: 11 24 eor r1, r1
36: 1f be out 0x3f, r1 ; 63
38: cf ef ldi r28, 0xFF ; 255
3a: d4 e0 ldi r29, 0x04 ; 4
3c: de bf out 0x3e, r29 ; 62
3e: cd bf out 0x3d, r28 ; 61

00000040 <__do_copy_data>:
40: 11 e0 ldi r17, 0x01 ; 1
42: a0 e0 ldi r26, 0x00 ; 0
44: b1 e0 ldi r27, 0x01 ; 1
46: e0 ea ldi r30, 0xA0 ; 160
48: f4 e0 ldi r31, 0x04 ; 4
4a: 02 c0 rjmp .+4 ; 0x50 <__do_copy_data+0x10>
4c: 05 90 lpm r0, Z+
4e: 0d 92 st X+, r0
50: a6 31 cpi r26, 0x16 ; 22
52: b1 07 cpc r27, r17
54: d9 f7 brne .-10 ; 0x4c <__do_copy_data+0xc>

00000056 <__do_clear_bss>:
56: 21 e0 ldi r18, 0x01 ; 1
58: a6 e1 ldi r26, 0x16 ; 22
5a: b1 e0 ldi r27, 0x01 ; 1
5c: 01 c0 rjmp .+2 ; 0x60 <.do_clear_bss_start>

0000005e <.do_clear_bss_loop>:
5e: 1d 92 st X+, r1

00000060 <.do_clear_bss_start>:
60: a7 31 cpi r26, 0x17 ; 23
62: b2 07 cpc r27, r18
64: e1 f7 brne .-8 ; 0x5e <.do_clear_bss_loop>
66: bf d0 rcall .+382 ; 0x1e6 <main>
68: 19 c2 rjmp .+1074 ; 0x49c <_exit>

0000006a <__bad_interrupt>:
6a: ca cf rjmp .-108 ; 0x0 <__vectors>

0000006c <__vector_11>:
/************************************************************************/
void vSetDisplayDigits( uint8_t u8Tens, uint8_t u8Ones, uint8_t u8Unit )
{
g_au8Digits[DIGIT_TENS] = u8Tens;
g_au8Digits[DIGIT_ONES] = u8Ones;
g_au8Digits[DIGIT_UNIT] = u8Unit;
6c: 1f 92 push r1
6e: 0f 92 push r0
70: 0f b6 in r0, 0x3f ; 63
72: 0f 92 push r0
74: 11 24 eor r1, r1
76: 8f 93 push r24
78: 9f 93 push r25
7a: ef 93 push r30
7c: ff 93 push r31
7e: 15 b8 out 0x05, r1 ; 5
80: 1b b8 out 0x0b, r1 ; 11
82: 8d e0 ldi r24, 0x0D ; 13
84: 8a 95 dec r24
86: f1 f7 brne .-4 ; 0x84 <__vector_11+0x18>
88: 00 00 nop
8a: 81 e0 ldi r24, 0x01 ; 1
8c: 90 e0 ldi r25, 0x00 ; 0
8e: 00 90 16 01 lds r0, 0x0116 ; 0x800116 <__data_end>
92: 02 c0 rjmp .+4 ; 0x98 <__vector_11+0x2c>
94: 88 0f add r24, r24
96: 99 1f adc r25, r25
98: 0a 94 dec r0
9a: e2 f7 brpl .-8 ; 0x94 <__vector_11+0x28>
9c: 85 b9 out 0x05, r24 ; 5
9e: e0 91 16 01 lds r30, 0x0116 ; 0x800116 <__data_end>
a2: f0 e0 ldi r31, 0x00 ; 0
a4: e0 50 subi r30, 0x00 ; 0
a6: ff 4f sbci r31, 0xFF ; 255
a8: e0 81 ld r30, Z
aa: f0 e0 ldi r31, 0x00 ; 0
ac: ed 5f subi r30, 0xFD ; 253
ae: fe 4f sbci r31, 0xFE ; 254
b0: 80 81 ld r24, Z
b2: 8b b9 out 0x0b, r24 ; 11
b4: 80 91 16 01 lds r24, 0x0116 ; 0x800116 <__data_end>
b8: 8f 5f subi r24, 0xFF ; 255
ba: 83 30 cpi r24, 0x03 ; 3
bc: 18 f4 brcc .+6 ; 0xc4 <__vector_11+0x58>
be: 80 93 16 01 sts 0x0116, r24 ; 0x800116 <__data_end>
c2: 02 c0 rjmp .+4 ; 0xc8 <__vector_11+0x5c>
c4: 10 92 16 01 sts 0x0116, r1 ; 0x800116 <__data_end>
c8: ff 91 pop r31
ca: ef 91 pop r30
cc: 9f 91 pop r25
ce: 8f 91 pop r24
d0: 0f 90 pop r0
d2: 0f be out 0x3f, r0 ; 63
d4: 0f 90 pop r0
d6: 1f 90 pop r1
d8: 18 95 reti

000000da <vInit>:
da: 8f ef ldi r24, 0xFF ; 255
dc: 8a b9 out 0x0a, r24 ; 10
de: 87 e0 ldi r24, 0x07 ; 7
e0: 84 b9 out 0x04, r24 ; 4
e2: 10 92 80 00 sts 0x0080, r1 ; 0x800080 <__EEPROM_REGION_LENGTH__+0x7f0080>
e6: 8a e0 ldi r24, 0x0A ; 10
e8: 80 93 81 00 sts 0x0081, r24 ; 0x800081 <__EEPROM_REGION_LENGTH__+0x7f0081>
ec: 84 ec ldi r24, 0xC4 ; 196
ee: 99 e0 ldi r25, 0x09 ; 9
f0: 90 93 89 00 sts 0x0089, r25 ; 0x800089 <__EEPROM_REGION_LENGTH__+0x7f0089>
f4: 80 93 88 00 sts 0x0088, r24 ; 0x800088 <__EEPROM_REGION_LENGTH__+0x7f0088>
f8: ef e6 ldi r30, 0x6F ; 111
fa: f0 e0 ldi r31, 0x00 ; 0
fc: 80 81 ld r24, Z
fe: 82 60 ori r24, 0x02 ; 2
100: 80 83 st Z, r24
102: 78 94 sei
104: 08 95 ret

00000106 <vSetValue>:
106: 9d ec ldi r25, 0xCD ; 205
108: 89 9f mul r24, r25
10a: 91 2d mov r25, r1
10c: 11 24 eor r1, r1
10e: 96 95 lsr r25
110: 96 95 lsr r25
112: 96 95 lsr r25
114: e0 e0 ldi r30, 0x00 ; 0
116: f1 e0 ldi r31, 0x01 ; 1
118: 92 83 std Z+2, r25 ; 0x02
11a: 99 0f add r25, r25
11c: 29 2f mov r18, r25
11e: 22 0f add r18, r18
120: 22 0f add r18, r18
122: 92 0f add r25, r18
124: 89 1b sub r24, r25
126: 81 83 std Z+1, r24 ; 0x01
128: 60 83 st Z, r22
12a: 08 95 ret

0000012c <u8DS18B20_Reset>:
uint8_t u8DS18B20_Reset( void )
{
uint8_t u8Status;

//low for 480 us
DS18B20_PORT &= ~ (1<<DS18B20_DQ); //low
12c: 43 98 cbi 0x08, 3 ; 8
DS18B20_DDR |= (1<<DS18B20_DQ); //output
12e: 3b 9a sbi 0x07, 3 ; 7
#else
//round up by default
__ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
#endif

__builtin_avr_delay_cycles(__ticks_dc);
130: 8f e5 ldi r24, 0x5F ; 95
132: 99 e0 ldi r25, 0x09 ; 9
134: 01 97 sbiw r24, 0x01 ; 1
136: f1 f7 brne .-4 ; 0x134 <u8DS18B20_Reset+0x8>
138: 00 c0 rjmp .+0 ; 0x13a <u8DS18B20_Reset+0xe>
13a: 00 00 nop
_delay_us(480);

//release line and wait for 60 us
DS18B20_DDR &= ~(1<<DS18B20_DQ); //input
13c: 3b 98 cbi 0x07, 3 ; 7
13e: eb e2 ldi r30, 0x2B ; 43
140: f1 e0 ldi r31, 0x01 ; 1
142: 31 97 sbiw r30, 0x01 ; 1
144: f1 f7 brne .-4 ; 0x142 <u8DS18B20_Reset+0x16>
146: 00 c0 rjmp .+0 ; 0x148 <u8DS18B20_Reset+0x1c>
148: 00 00 nop
_delay_us(60);

//get value and wait 420 us
u8Status = (DS18B20_PIN & (1<<DS18B20_DQ));
14a: 86 b1 in r24, 0x06 ; 6
14c: e3 e3 ldi r30, 0x33 ; 51
14e: f8 e0 ldi r31, 0x08 ; 8
150: 31 97 sbiw r30, 0x01 ; 1
152: f1 f7 brne .-4 ; 0x150 <u8DS18B20_Reset+0x24>
154: 00 c0 rjmp .+0 ; 0x156 <u8DS18B20_Reset+0x2a>
156: 00 00 nop
_delay_us(420);

//return the read value: 0=okay, 1=error
return u8Status;
}
158: 88 70 andi r24, 0x08 ; 8
15a: 08 95 ret

0000015c <vDS18B20_WriteBit>:
/* Write single bit to DS18B20 (61 us) */
/************************************************************************/
void vDS18B20_WriteBit( uint8_t u8Bit )
{
//low for 1 us
DS18B20_PORT &= ~ (1U<<DS18B20_DQ); //low
15c: 43 98 cbi 0x08, 3 ; 8
DS18B20_DDR |= (1U<<DS18B20_DQ); //output
15e: 3b 9a sbi 0x07, 3 ; 7
160: 96 e0 ldi r25, 0x06 ; 6
162: 9a 95 dec r25
164: f1 f7 brne .-4 ; 0x162 <vDS18B20_WriteBit+0x6>
166: 00 c0 rjmp .+0 ; 0x168 <vDS18B20_WriteBit+0xc>
_delay_us(1);

//if we want to write 1, release the line (if not will keep low)
if (1U == u8Bit )
168: 81 30 cpi r24, 0x01 ; 1
16a: 09 f4 brne .+2 ; 0x16e <vDS18B20_WriteBit+0x12>
{
DS18B20_DDR &= ~(1<<DS18B20_DQ); //input
16c: 3b 98 cbi 0x07, 3 ; 7
16e: 8b e2 ldi r24, 0x2B ; 43
170: 91 e0 ldi r25, 0x01 ; 1
172: 01 97 sbiw r24, 0x01 ; 1
174: f1 f7 brne .-4 ; 0x172 <vDS18B20_WriteBit+0x16>
176: 00 c0 rjmp .+0 ; 0x178 <vDS18B20_WriteBit+0x1c>
178: 00 00 nop
}

//wait 60 us and release the line
_delay_us(60);
DS18B20_DDR &= ~(1<<DS18B20_DQ); //input
17a: 3b 98 cbi 0x07, 3 ; 7
17c: 08 95 ret

0000017e <vDS18B20_WriteByte>:

/************************************************************************/
/* Write byte to DS18B20 (8 * 61 us = 488 us) */
/************************************************************************/
void vDS18B20_WriteByte( uint8_t u8Byte )
{
17e: cf 93 push r28
180: df 93 push r29
182: d8 2f mov r29, r24
184: c8 e0 ldi r28, 0x08 ; 8
uint8_t u8Bits = 8U;
while ( u8Bits-- )
{
vDS18B20_WriteBit( u8Byte & 1U );
186: 8d 2f mov r24, r29
188: 81 70 andi r24, 0x01 ; 1
18a: e8 df rcall .-48 ; 0x15c <vDS18B20_WriteBit>
u8Byte >>= 1U;
18c: d6 95 lsr r29
18e: c1 50 subi r28, 0x01 ; 1
/************************************************************************/
void vDS18B20_WriteByte( uint8_t u8Byte )
{
uint8_t u8Bits = 8U;
while ( u8Bits-- )
190: d1 f7 brne .-12 ; 0x186 <vDS18B20_WriteByte+0x8>
vDS18B20_WriteBit( u8Byte & 1U );
u8Byte >>= 1U;
}
return; //void
}
192: df 91 pop r29
194: cf 91 pop r28
196: 08 95 ret

00000198 <u8DS18B20_ReadBit>:
uint8_t u8DS18B20_ReadBit( void )
{
uint8_t u8Bit = 0U;

//low for 1 us
DS18B20_PORT &= ~ (1U<<DS18B20_DQ); //low
198: 43 98 cbi 0x08, 3 ; 8
DS18B20_DDR |= (1U<<DS18B20_DQ); //output
19a: 3b 9a sbi 0x07, 3 ; 7
19c: 86 e0 ldi r24, 0x06 ; 6
19e: 8a 95 dec r24
1a0: f1 f7 brne .-4 ; 0x19e <u8DS18B20_ReadBit+0x6>
1a2: 00 c0 rjmp .+0 ; 0x1a4 <u8DS18B20_ReadBit+0xc>
_delay_us(1);

//release line and wait for 14 us
DS18B20_DDR &= ~(1U<<DS18B20_DQ); //input
1a4: 3b 98 cbi 0x07, 3 ; 7
1a6: ed e5 ldi r30, 0x5D ; 93
1a8: ea 95 dec r30
1aa: f1 f7 brne .-4 ; 0x1a8 <u8DS18B20_ReadBit+0x10>
1ac: 00 00 nop
_delay_us(14);

//read the value
if ( DS18B20_PIN & (1U<<DS18B20_DQ) )
1ae: 86 b1 in r24, 0x06 ; 6
1b0: e0 ee ldi r30, 0xE0 ; 224
1b2: f0 e0 ldi r31, 0x00 ; 0
1b4: 31 97 sbiw r30, 0x01 ; 1
1b6: f1 f7 brne .-4 ; 0x1b4 <u8DS18B20_ReadBit+0x1c>
1b8: 00 c0 rjmp .+0 ; 0x1ba <u8DS18B20_ReadBit+0x22>
1ba: 00 00 nop
//wait 45 us and return read value
_delay_us(45);
return u8Bit;
}
1bc: 83 fb bst r24, 3
1be: 88 27 eor r24, r24
1c0: 80 f9 bld r24, 0
1c2: 08 95 ret

000001c4 <u8DS18B20_ReadByte>:

/************************************************************************/
/* Read byte from DS18B20 (8 * 60 us = 480 us) */
/************************************************************************/
uint8_t u8DS18B20_ReadByte( void )
{
1c4: cf 93 push r28
1c6: df 93 push r29
1c8: d8 e0 ldi r29, 0x08 ; 8
uint8_t u8Bits = 8U;
uint8_t n = 0U;
1ca: c0 e0 ldi r28, 0x00 ; 0
while ( u8Bits-- )
{
n >>= 1U;
n |= (u8DS18B20_ReadBit()<<7U);
1cc: e5 df rcall .-54 ; 0x198 <u8DS18B20_ReadBit>
1ce: 20 e8 ldi r18, 0x80 ; 128
1d0: 82 9f mul r24, r18
1d2: c0 01 movw r24, r0
1d4: 11 24 eor r1, r1
1d6: c6 95 lsr r28
1d8: c8 2b or r28, r24
1da: d1 50 subi r29, 0x01 ; 1
/************************************************************************/
uint8_t u8DS18B20_ReadByte( void )
{
uint8_t u8Bits = 8U;
uint8_t n = 0U;
while ( u8Bits-- )
1dc: b9 f7 brne .-18 ; 0x1cc <u8DS18B20_ReadByte+0x8>
n >>= 1U;
n |= (u8DS18B20_ReadBit()<<7U);
}

return n;
}
1de: 8c 2f mov r24, r28
1e0: df 91 pop r29
1e2: cf 91 pop r28
1e4: 08 95 ret

000001e6 <main>:
{
uint8_t u8TempLo, u8TempHi;
float f32Temperature;
/* Init I/O: */
vInit();
1e6: 79 df rcall .-270 ; 0xda <vInit>
/************************************************************************/
/* Set display digits individually */
/************************************************************************/
void vSetDisplayDigits( uint8_t u8Tens, uint8_t u8Ones, uint8_t u8Unit )
{
g_au8Digits[DIGIT_TENS] = u8Tens;
1e8: e0 e0 ldi r30, 0x00 ; 0
1ea: f1 e0 ldi r31, 0x01 ; 1
1ec: 81 e1 ldi r24, 0x11 ; 17
1ee: 82 83 std Z+2, r24 ; 0x02
g_au8Digits[DIGIT_ONES] = u8Ones;
1f0: 81 83 std Z+1, r24 ; 0x01
g_au8Digits[DIGIT_UNIT] = u8Unit;
1f2: 80 83 st Z, r24
#else
//round up by default
__ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
#endif

__builtin_avr_delay_cycles(__ticks_dc);
1f4: 2f ef ldi r18, 0xFF ; 255
1f6: 8b e7 ldi r24, 0x7B ; 123
1f8: 92 e9 ldi r25, 0x92 ; 146
1fa: 21 50 subi r18, 0x01 ; 1
1fc: 80 40 sbci r24, 0x00 ; 0
1fe: 90 40 sbci r25, 0x00 ; 0
200: e1 f7 brne .-8 ; 0x1fa <main+0x14>
202: 00 c0 rjmp .+0 ; 0x204 <main+0x1e>
204: 00 00 nop
/* wait 3 seconds for DS18B20 sensor */
_delay_ms(2400);
while (1)
{
(void) u8DS18B20_Reset();
206: 92 df rcall .-220 ; 0x12c <u8DS18B20_Reset>
vDS18B20_WriteByte( DS18B20_CMD_SKIPROM );
208: 8c ec ldi r24, 0xCC ; 204
20a: b9 df rcall .-142 ; 0x17e <vDS18B20_WriteByte>
vDS18B20_WriteByte( DS18B20_CMD_CONVERTTEMP );
20c: 84 e4 ldi r24, 0x44 ; 68
20e: b7 df rcall .-146 ; 0x17e <vDS18B20_WriteByte>
while ( !u8DS18B20_ReadBit() );
210: c3 df rcall .-122 ; 0x198 <u8DS18B20_ReadBit>
212: 88 23 and r24, r24
214: e9 f3 breq .-6 ; 0x210 <main+0x2a>
(void) u8DS18B20_Reset();
216: 8a df rcall .-236 ; 0x12c <u8DS18B20_Reset>
vDS18B20_WriteByte( DS18B20_CMD_SKIPROM );
218: 8c ec ldi r24, 0xCC ; 204
21a: b1 df rcall .-158 ; 0x17e <vDS18B20_WriteByte>
vDS18B20_WriteByte( DS18B20_CMD_RSCRATCHPAD );
21c: 8e eb ldi r24, 0xBE ; 190
21e: af df rcall .-162 ; 0x17e <vDS18B20_WriteByte>
u8TempLo = u8DS18B20_ReadByte();
220: d1 df rcall .-94 ; 0x1c4 <u8DS18B20_ReadByte>
222: c8 2f mov r28, r24
u8TempHi = u8DS18B20_ReadByte();
224: cf df rcall .-98 ; 0x1c4 <u8DS18B20_ReadByte>
f32Temperature = ((u8TempHi << 8) + u8TempLo) * 0.0625;
vSetValue( (uint8_t) f32Temperature, SYM_DEG_CELCIUS );
226: 68 2f mov r22, r24
228: 70 e0 ldi r23, 0x00 ; 0
22a: 76 2f mov r23, r22
22c: 66 27 eor r22, r22
22e: 6c 0f add r22, r28
230: 71 1d adc r23, r1
232: 07 2e mov r0, r23
234: 00 0c add r0, r0
236: 88 0b sbc r24, r24
238: 99 0b sbc r25, r25
23a: 41 d0 rcall .+130 ; 0x2be <__floatsisf>
23c: 20 e0 ldi r18, 0x00 ; 0
23e: 30 e0 ldi r19, 0x00 ; 0
240: 40 e8 ldi r20, 0x80 ; 128
242: 5d e3 ldi r21, 0x3D ; 61
244: a0 d0 rcall .+320 ; 0x386 <__mulsf3>
246: 0d d0 rcall .+26 ; 0x262 <__fixunssfsi>
248: 86 2f mov r24, r22
24a: 6e e0 ldi r22, 0x0E ; 14
24c: 5c df rcall .-328 ; 0x106 <vSetValue>
24e: 2f e7 ldi r18, 0x7F ; 127
250: 84 e8 ldi r24, 0x84 ; 132
252: 9e e1 ldi r25, 0x1E ; 30
254: 21 50 subi r18, 0x01 ; 1
256: 80 40 sbci r24, 0x00 ; 0
258: 90 40 sbci r25, 0x00 ; 0
25a: e1 f7 brne .-8 ; 0x254 <main+0x6e>
25c: 00 c0 rjmp .+0 ; 0x25e <main+0x78>
25e: 00 00 nop
260: d2 cf rjmp .-92 ; 0x206 <main+0x20>

00000262 <__fixunssfsi>:
262: 70 d0 rcall .+224 ; 0x344 <__fp_splitA>
264: 88 f0 brcs .+34 ; 0x288 <__fixunssfsi+0x26>
266: 9f 57 subi r25, 0x7F ; 127
268: 90 f0 brcs .+36 ; 0x28e <__fixunssfsi+0x2c>
26a: b9 2f mov r27, r25
26c: 99 27 eor r25, r25
26e: b7 51 subi r27, 0x17 ; 23
270: a0 f0 brcs .+40 ; 0x29a <__fixunssfsi+0x38>
272: d1 f0 breq .+52 ; 0x2a8 <__fixunssfsi+0x46>
274: 66 0f add r22, r22
276: 77 1f adc r23, r23
278: 88 1f adc r24, r24
27a: 99 1f adc r25, r25
27c: 1a f0 brmi .+6 ; 0x284 <__fixunssfsi+0x22>
27e: ba 95 dec r27
280: c9 f7 brne .-14 ; 0x274 <__fixunssfsi+0x12>
282: 12 c0 rjmp .+36 ; 0x2a8 <__fixunssfsi+0x46>
284: b1 30 cpi r27, 0x01 ; 1
286: 81 f0 breq .+32 ; 0x2a8 <__fixunssfsi+0x46>
288: 77 d0 rcall .+238 ; 0x378 <__fp_zero>
28a: b1 e0 ldi r27, 0x01 ; 1
28c: 08 95 ret
28e: 74 c0 rjmp .+232 ; 0x378 <__fp_zero>
290: 67 2f mov r22, r23
292: 78 2f mov r23, r24
294: 88 27 eor r24, r24
296: b8 5f subi r27, 0xF8 ; 248
298: 39 f0 breq .+14 ; 0x2a8 <__fixunssfsi+0x46>
29a: b9 3f cpi r27, 0xF9 ; 249
29c: cc f3 brlt .-14 ; 0x290 <__fixunssfsi+0x2e>
29e: 86 95 lsr r24
2a0: 77 95 ror r23
2a2: 67 95 ror r22
2a4: b3 95 inc r27
2a6: d9 f7 brne .-10 ; 0x29e <__fixunssfsi+0x3c>
2a8: 3e f4 brtc .+14 ; 0x2b8 <__fixunssfsi+0x56>
2aa: 90 95 com r25
2ac: 80 95 com r24
2ae: 70 95 com r23
2b0: 61 95 neg r22
2b2: 7f 4f sbci r23, 0xFF ; 255
2b4: 8f 4f sbci r24, 0xFF ; 255
2b6: 9f 4f sbci r25, 0xFF ; 255
2b8: 08 95 ret

000002ba <__floatunsisf>:
2ba: e8 94 clt
2bc: 09 c0 rjmp .+18 ; 0x2d0 <__floatsisf+0x12>

000002be <__floatsisf>:
2be: 97 fb bst r25, 7
2c0: 3e f4 brtc .+14 ; 0x2d0 <__floatsisf+0x12>
2c2: 90 95 com r25
2c4: 80 95 com r24
2c6: 70 95 com r23
2c8: 61 95 neg r22
2ca: 7f 4f sbci r23, 0xFF ; 255
2cc: 8f 4f sbci r24, 0xFF ; 255
2ce: 9f 4f sbci r25, 0xFF ; 255
2d0: 99 23 and r25, r25
2d2: a9 f0 breq .+42 ; 0x2fe <__floatsisf+0x40>
2d4: f9 2f mov r31, r25
2d6: 96 e9 ldi r25, 0x96 ; 150
2d8: bb 27 eor r27, r27
2da: 93 95 inc r25
2dc: f6 95 lsr r31
2de: 87 95 ror r24
2e0: 77 95 ror r23
2e2: 67 95 ror r22
2e4: b7 95 ror r27
2e6: f1 11 cpse r31, r1
2e8: f8 cf rjmp .-16 ; 0x2da <__floatsisf+0x1c>
2ea: fa f4 brpl .+62 ; 0x32a <__floatsisf+0x6c>
2ec: bb 0f add r27, r27
2ee: 11 f4 brne .+4 ; 0x2f4 <__floatsisf+0x36>
2f0: 60 ff sbrs r22, 0
2f2: 1b c0 rjmp .+54 ; 0x32a <__floatsisf+0x6c>
2f4: 6f 5f subi r22, 0xFF ; 255
2f6: 7f 4f sbci r23, 0xFF ; 255
2f8: 8f 4f sbci r24, 0xFF ; 255
2fa: 9f 4f sbci r25, 0xFF ; 255
2fc: 16 c0 rjmp .+44 ; 0x32a <__floatsisf+0x6c>
2fe: 88 23 and r24, r24
300: 11 f0 breq .+4 ; 0x306 <__floatsisf+0x48>
302: 96 e9 ldi r25, 0x96 ; 150
304: 11 c0 rjmp .+34 ; 0x328 <__floatsisf+0x6a>
306: 77 23 and r23, r23
308: 21 f0 breq .+8 ; 0x312 <__floatsisf+0x54>
30a: 9e e8 ldi r25, 0x8E ; 142
30c: 87 2f mov r24, r23
30e: 76 2f mov r23, r22
310: 05 c0 rjmp .+10 ; 0x31c <__floatsisf+0x5e>
312: 66 23 and r22, r22
314: 71 f0 breq .+28 ; 0x332 <__floatsisf+0x74>
316: 96 e8 ldi r25, 0x86 ; 134
318: 86 2f mov r24, r22
31a: 70 e0 ldi r23, 0x00 ; 0
31c: 60 e0 ldi r22, 0x00 ; 0
31e: 2a f0 brmi .+10 ; 0x32a <__floatsisf+0x6c>
320: 9a 95 dec r25
322: 66 0f add r22, r22
324: 77 1f adc r23, r23
326: 88 1f adc r24, r24
328: da f7 brpl .-10 ; 0x320 <__floatsisf+0x62>
32a: 88 0f add r24, r24
32c: 96 95 lsr r25
32e: 87 95 ror r24
330: 97 f9 bld r25, 7
332: 08 95 ret

00000334 <__fp_split3>:
334: 57 fd sbrc r21, 7
336: 90 58 subi r25, 0x80 ; 128
338: 44 0f add r20, r20
33a: 55 1f adc r21, r21
33c: 59 f0 breq .+22 ; 0x354 <__fp_splitA+0x10>
33e: 5f 3f cpi r21, 0xFF ; 255
340: 71 f0 breq .+28 ; 0x35e <__fp_splitA+0x1a>
342: 47 95 ror r20

00000344 <__fp_splitA>:
344: 88 0f add r24, r24
346: 97 fb bst r25, 7
348: 99 1f adc r25, r25
34a: 61 f0 breq .+24 ; 0x364 <__fp_splitA+0x20>
34c: 9f 3f cpi r25, 0xFF ; 255
34e: 79 f0 breq .+30 ; 0x36e <__fp_splitA+0x2a>
350: 87 95 ror r24
352: 08 95 ret
354: 12 16 cp r1, r18
356: 13 06 cpc r1, r19
358: 14 06 cpc r1, r20
35a: 55 1f adc r21, r21
35c: f2 cf rjmp .-28 ; 0x342 <__fp_split3+0xe>
35e: 46 95 lsr r20
360: f1 df rcall .-30 ; 0x344 <__fp_splitA>
362: 08 c0 rjmp .+16 ; 0x374 <__fp_splitA+0x30>
364: 16 16 cp r1, r22
366: 17 06 cpc r1, r23
368: 18 06 cpc r1, r24
36a: 99 1f adc r25, r25
36c: f1 cf rjmp .-30 ; 0x350 <__fp_splitA+0xc>
36e: 86 95 lsr r24
370: 71 05 cpc r23, r1
372: 61 05 cpc r22, r1
374: 08 94 sec
376: 08 95 ret

00000378 <__fp_zero>:
378: e8 94 clt

0000037a <__fp_szero>:
37a: bb 27 eor r27, r27
37c: 66 27 eor r22, r22
37e: 77 27 eor r23, r23
380: cb 01 movw r24, r22
382: 97 f9 bld r25, 7
384: 08 95 ret

00000386 <__mulsf3>:
386: 0b d0 rcall .+22 ; 0x39e <__mulsf3x>
388: 78 c0 rjmp .+240 ; 0x47a <__fp_round>
38a: 69 d0 rcall .+210 ; 0x45e <__fp_pscA>
38c: 28 f0 brcs .+10 ; 0x398 <__mulsf3+0x12>
38e: 6e d0 rcall .+220 ; 0x46c <__fp_pscB>
390: 18 f0 brcs .+6 ; 0x398 <__mulsf3+0x12>
392: 95 23 and r25, r21
394: 09 f0 breq .+2 ; 0x398 <__mulsf3+0x12>
396: 5a c0 rjmp .+180 ; 0x44c <__fp_inf>
398: 5f c0 rjmp .+190 ; 0x458 <__fp_nan>
39a: 11 24 eor r1, r1
39c: ee cf rjmp .-36 ; 0x37a <__fp_szero>

0000039e <__mulsf3x>:
39e: ca df rcall .-108 ; 0x334 <__fp_split3>
3a0: a0 f3 brcs .-24 ; 0x38a <__mulsf3+0x4>

000003a2 <__mulsf3_pse>:
3a2: 95 9f mul r25, r21
3a4: d1 f3 breq .-12 ; 0x39a <__mulsf3+0x14>
3a6: 95 0f add r25, r21
3a8: 50 e0 ldi r21, 0x00 ; 0
3aa: 55 1f adc r21, r21
3ac: 62 9f mul r22, r18
3ae: f0 01 movw r30, r0
3b0: 72 9f mul r23, r18
3b2: bb 27 eor r27, r27
3b4: f0 0d add r31, r0
3b6: b1 1d adc r27, r1
3b8: 63 9f mul r22, r19
3ba: aa 27 eor r26, r26
3bc: f0 0d add r31, r0
3be: b1 1d adc r27, r1
3c0: aa 1f adc r26, r26
3c2: 64 9f mul r22, r20
3c4: 66 27 eor r22, r22
3c6: b0 0d add r27, r0
3c8: a1 1d adc r26, r1
3ca: 66 1f adc r22, r22
3cc: 82 9f mul r24, r18
3ce: 22 27 eor r18, r18
3d0: b0 0d add r27, r0
3d2: a1 1d adc r26, r1
3d4: 62 1f adc r22, r18
3d6: 73 9f mul r23, r19
3d8: b0 0d add r27, r0
3da: a1 1d adc r26, r1
3dc: 62 1f adc r22, r18
3de: 83 9f mul r24, r19
3e0: a0 0d add r26, r0
3e2: 61 1d adc r22, r1
3e4: 22 1f adc r18, r18
3e6: 74 9f mul r23, r20
3e8: 33 27 eor r19, r19
3ea: a0 0d add r26, r0
3ec: 61 1d adc r22, r1
3ee: 23 1f adc r18, r19
3f0: 84 9f mul r24, r20
3f2: 60 0d add r22, r0
3f4: 21 1d adc r18, r1
3f6: 82 2f mov r24, r18
3f8: 76 2f mov r23, r22
3fa: 6a 2f mov r22, r26
3fc: 11 24 eor r1, r1
3fe: 9f 57 subi r25, 0x7F ; 127
400: 50 40 sbci r21, 0x00 ; 0
402: 8a f0 brmi .+34 ; 0x426 <__LOCK_REGION_LENGTH__+0x26>
404: e1 f0 breq .+56 ; 0x43e <__LOCK_REGION_LENGTH__+0x3e>
406: 88 23 and r24, r24
408: 4a f0 brmi .+18 ; 0x41c <__LOCK_REGION_LENGTH__+0x1c>
40a: ee 0f add r30, r30
40c: ff 1f adc r31, r31
40e: bb 1f adc r27, r27
410: 66 1f adc r22, r22
412: 77 1f adc r23, r23
414: 88 1f adc r24, r24
416: 91 50 subi r25, 0x01 ; 1
418: 50 40 sbci r21, 0x00 ; 0
41a: a9 f7 brne .-22 ; 0x406 <__LOCK_REGION_LENGTH__+0x6>
41c: 9e 3f cpi r25, 0xFE ; 254
41e: 51 05 cpc r21, r1
420: 70 f0 brcs .+28 ; 0x43e <__LOCK_REGION_LENGTH__+0x3e>
422: 14 c0 rjmp .+40 ; 0x44c <__fp_inf>
424: aa cf rjmp .-172 ; 0x37a <__fp_szero>
426: 5f 3f cpi r21, 0xFF ; 255
428: ec f3 brlt .-6 ; 0x424 <__LOCK_REGION_LENGTH__+0x24>
42a: 98 3e cpi r25, 0xE8 ; 232
42c: dc f3 brlt .-10 ; 0x424 <__LOCK_REGION_LENGTH__+0x24>
42e: 86 95 lsr r24
430: 77 95 ror r23
432: 67 95 ror r22
434: b7 95 ror r27
436: f7 95 ror r31
438: e7 95 ror r30
43a: 9f 5f subi r25, 0xFF ; 255
43c: c1 f7 brne .-16 ; 0x42e <__LOCK_REGION_LENGTH__+0x2e>
43e: fe 2b or r31, r30
440: 88 0f add r24, r24
442: 91 1d adc r25, r1
444: 96 95 lsr r25
446: 87 95 ror r24
448: 97 f9 bld r25, 7
44a: 08 95 ret

0000044c <__fp_inf>:
44c: 97 f9 bld r25, 7
44e: 9f 67 ori r25, 0x7F ; 127
450: 80 e8 ldi r24, 0x80 ; 128
452: 70 e0 ldi r23, 0x00 ; 0
454: 60 e0 ldi r22, 0x00 ; 0
456: 08 95 ret

00000458 <__fp_nan>:
458: 9f ef ldi r25, 0xFF ; 255
45a: 80 ec ldi r24, 0xC0 ; 192
45c: 08 95 ret

0000045e <__fp_pscA>:
45e: 00 24 eor r0, r0
460: 0a 94 dec r0
462: 16 16 cp r1, r22
464: 17 06 cpc r1, r23
466: 18 06 cpc r1, r24
468: 09 06 cpc r0, r25
46a: 08 95 ret

0000046c <__fp_pscB>:
46c: 00 24 eor r0, r0
46e: 0a 94 dec r0
470: 12 16 cp r1, r18
472: 13 06 cpc r1, r19
474: 14 06 cpc r1, r20
476: 05 06 cpc r0, r21
478: 08 95 ret

0000047a <__fp_round>:
47a: 09 2e mov r0, r25
47c: 03 94 inc r0
47e: 00 0c add r0, r0
480: 11 f4 brne .+4 ; 0x486 <__fp_round+0xc>
482: 88 23 and r24, r24
484: 52 f0 brmi .+20 ; 0x49a <__fp_round+0x20>
486: bb 0f add r27, r27
488: 40 f4 brcc .+16 ; 0x49a <__fp_round+0x20>
48a: bf 2b or r27, r31
48c: 11 f4 brne .+4 ; 0x492 <__fp_round+0x18>
48e: 60 ff sbrs r22, 0
490: 04 c0 rjmp .+8 ; 0x49a <__fp_round+0x20>
492: 6f 5f subi r22, 0xFF ; 255
494: 7f 4f sbci r23, 0xFF ; 255
496: 8f 4f sbci r24, 0xFF ; 255
498: 9f 4f sbci r25, 0xFF ; 255
49a: 08 95 ret

0000049c <_exit>:
49c: f8 94 cli

0000049e <__stop_program>:
49e: ff cf rjmp .-2 ; 0x49e <__stop_program>

+ 582
- 0
PoolClockAirTemp/Debug/PoolClockAirTemp.map Voir le fichier

@@ -0,0 +1,582 @@
Archive member included to satisfy reference by file (symbol)

c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fixunssfsi.o)
main.o (__fixunssfsi)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(floatsisf.o)
main.o (__floatsisf)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_split3.o)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fixunssfsi.o) (__fp_splitA)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_zero.o)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fixunssfsi.o) (__fp_zero)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(mulsf3.o)
main.o (__mulsf3)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(mulsf3x.o)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(mulsf3.o) (__mulsf3x)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_inf.o)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(mulsf3x.o) (__fp_inf)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_nan.o)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(mulsf3x.o) (__fp_nan)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_pscA.o)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(mulsf3x.o) (__fp_pscA)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_pscB.o)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(mulsf3x.o) (__fp_pscB)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_round.o)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(mulsf3.o) (__fp_round)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_exit.o)
C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o (exit)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_copy_data.o)
main.o (__do_copy_data)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_clear_bss.o)
main.o (__do_clear_bss)

Discarded input sections

.data 0x00000000 0x0 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o
.bss 0x00000000 0x0 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o
.text 0x00000000 0x0 main.o
.data 0x00000000 0x0 main.o
.bss 0x00000000 0x0 main.o
.text.vSetDisplayDigits
0x00000000 0xc main.o
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fixunssfsi.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fixunssfsi.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fixunssfsi.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(floatsisf.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(floatsisf.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(floatsisf.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_split3.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_split3.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_split3.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_zero.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_zero.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_zero.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(mulsf3.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(mulsf3.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(mulsf3.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(mulsf3x.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(mulsf3x.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(mulsf3x.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_inf.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_inf.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_inf.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_nan.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_nan.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_nan.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_pscA.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_pscA.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_pscA.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_pscB.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_pscB.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_pscB.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_round.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_round.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_round.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_exit.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_exit.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_exit.o)
.text.libgcc.mul
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_exit.o)
.text.libgcc.div
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_exit.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_exit.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_exit.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_exit.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_exit.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_exit.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_copy_data.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_copy_data.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_copy_data.o)
.text.libgcc.mul
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_copy_data.o)
.text.libgcc.div
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_copy_data.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_copy_data.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_copy_data.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_copy_data.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_copy_data.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_copy_data.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_clear_bss.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_clear_bss.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_clear_bss.o)
.text.libgcc.mul
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_clear_bss.o)
.text.libgcc.div
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_clear_bss.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_clear_bss.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_clear_bss.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_clear_bss.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_clear_bss.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_clear_bss.o)

Memory Configuration

Name Origin Length Attributes
text 0x00000000 0x00002000 xr
data 0x00800060 0x0000ffa0 rw !x
eeprom 0x00810000 0x00010000 rw !x
fuse 0x00820000 0x00000003 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/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o
LOAD main.o
START GROUP
LOAD c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a
END GROUP
START GROUP
LOAD c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a
LOAD c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a
LOAD c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libc.a
LOAD C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4\libatmega88pa.a
END GROUP
0x00002000 __TEXT_REGION_LENGTH__ = DEFINED (__TEXT_REGION_LENGTH__)?__TEXT_REGION_LENGTH__:0x2000
0x0000ffa0 __DATA_REGION_LENGTH__ = DEFINED (__DATA_REGION_LENGTH__)?__DATA_REGION_LENGTH__:0xffa0
0x00010000 __EEPROM_REGION_LENGTH__ = DEFINED (__EEPROM_REGION_LENGTH__)?__EEPROM_REGION_LENGTH__:0x10000
[0x00000003] __FUSE_REGION_LENGTH__ = DEFINED (__FUSE_REGION_LENGTH__)?__FUSE_REGION_LENGTH__:0x400
0x00000400 __LOCK_REGION_LENGTH__ = DEFINED (__LOCK_REGION_LENGTH__)?__LOCK_REGION_LENGTH__:0x400
0x00000400 __SIGNATURE_REGION_LENGTH__ = DEFINED (__SIGNATURE_REGION_LENGTH__)?__SIGNATURE_REGION_LENGTH__:0x400
0x00000400 __USER_SIGNATURE_REGION_LENGTH__ = DEFINED (__USER_SIGNATURE_REGION_LENGTH__)?__USER_SIGNATURE_REGION_LENGTH__:0x400

.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 0x4a0
*(.vectors)
.vectors 0x00000000 0x34 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o
0x00000000 __vector_default
0x00000000 __vectors
*(.vectors)
*(.progmem.gcc*)
0x00000034 . = ALIGN (0x2)
0x00000034 __trampolines_start = .
*(.trampolines)
.trampolines 0x00000034 0x0 linker stubs
*(.trampolines*)
0x00000034 __trampolines_end = .
*libprintf_flt.a:*(.progmem.data)
*libc.a:*(.progmem.data)
*(.progmem*)
0x00000034 . = ALIGN (0x2)
*(.jumptables)
*(.jumptables*)
*(.lowtext)
*(.lowtext*)
0x00000034 __ctors_start = .
*(.ctors)
0x00000034 __ctors_end = .
0x00000034 __dtors_start = .
*(.dtors)
0x00000034 __dtors_end = .
SORT(*)(.ctors)
SORT(*)(.dtors)
*(.init0)
.init0 0x00000034 0x0 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o
0x00000034 __init
*(.init0)
*(.init1)
*(.init1)
*(.init2)
.init2 0x00000034 0xc C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o
*(.init2)
*(.init3)
*(.init3)
*(.init4)
.init4 0x00000040 0x16 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_copy_data.o)
0x00000040 __do_copy_data
.init4 0x00000056 0x10 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_clear_bss.o)
0x00000056 __do_clear_bss
*(.init4)
*(.init5)
*(.init5)
*(.init6)
*(.init6)
*(.init7)
*(.init7)
*(.init8)
*(.init8)
*(.init9)
.init9 0x00000066 0x4 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o
*(.init9)
*(.text)
.text 0x0000006a 0x2 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o
0x0000006a __vector_22
0x0000006a __vector_1
0x0000006a __vector_24
0x0000006a __vector_12
0x0000006a __bad_interrupt
0x0000006a __vector_6
0x0000006a __vector_3
0x0000006a __vector_23
0x0000006a __vector_25
0x0000006a __vector_13
0x0000006a __vector_17
0x0000006a __vector_19
0x0000006a __vector_7
0x0000006a __vector_5
0x0000006a __vector_4
0x0000006a __vector_9
0x0000006a __vector_2
0x0000006a __vector_21
0x0000006a __vector_15
0x0000006a __vector_8
0x0000006a __vector_14
0x0000006a __vector_10
0x0000006a __vector_16
0x0000006a __vector_18
0x0000006a __vector_20
0x0000006c . = ALIGN (0x2)
*(.text.*)
.text.__vector_11
0x0000006c 0x6e main.o
0x0000006c __vector_11
.text.vInit 0x000000da 0x2c main.o
0x000000da vInit
.text.vSetValue
0x00000106 0x26 main.o
0x00000106 vSetValue
.text.u8DS18B20_Reset
0x0000012c 0x30 main.o
0x0000012c u8DS18B20_Reset
.text.vDS18B20_WriteBit
0x0000015c 0x22 main.o
0x0000015c vDS18B20_WriteBit
.text.vDS18B20_WriteByte
0x0000017e 0x1a main.o
0x0000017e vDS18B20_WriteByte
.text.u8DS18B20_ReadBit
0x00000198 0x2c main.o
0x00000198 u8DS18B20_ReadBit
.text.u8DS18B20_ReadByte
0x000001c4 0x22 main.o
0x000001c4 u8DS18B20_ReadByte
.text.main 0x000001e6 0x7c main.o
0x000001e6 main
.text.avr-libc.fplib
0x00000262 0x58 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fixunssfsi.o)
0x00000262 __fixunssfsi
.text.avr-libc.fplib
0x000002ba 0x7a c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(floatsisf.o)
0x000002ba __floatunsisf
0x000002be __floatsisf
.text.avr-libc.fplib
0x00000334 0x44 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_split3.o)
0x00000334 __fp_split3
0x00000344 __fp_splitA
.text.avr-libc.fplib
0x00000378 0xe c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_zero.o)
0x00000378 __fp_zero
0x0000037a __fp_szero
.text.avr-libc.fplib
0x00000386 0x4 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(mulsf3.o)
0x00000386 __mulsf3
.text.avr-libc.fplib
0x0000038a 0xc2 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(mulsf3x.o)
0x0000039e __mulsf3x
0x000003a2 __mulsf3_pse
.text.avr-libc.fplib
0x0000044c 0xc c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_inf.o)
0x0000044c __fp_inf
.text.avr-libc.fplib
0x00000458 0x6 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_nan.o)
0x00000458 __fp_nan
.text.avr-libc.fplib
0x0000045e 0xe c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_pscA.o)
0x0000045e __fp_pscA
.text.avr-libc.fplib
0x0000046c 0xe c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_pscB.o)
0x0000046c __fp_pscB
.text.avr-libc.fplib
0x0000047a 0x22 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a(fp_round.o)
0x0000047a __fp_round
0x0000049c . = ALIGN (0x2)
*(.fini9)
.fini9 0x0000049c 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_exit.o)
0x0000049c _exit
0x0000049c exit
*(.fini9)
*(.fini8)
*(.fini8)
*(.fini7)
*(.fini7)
*(.fini6)
*(.fini6)
*(.fini5)
*(.fini5)
*(.fini4)
*(.fini4)
*(.fini3)
*(.fini3)
*(.fini2)
*(.fini2)
*(.fini1)
*(.fini1)
*(.fini0)
.fini0 0x0000049c 0x4 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_exit.o)
*(.fini0)
0x000004a0 _etext = .

.data 0x00800100 0x16 load address 0x000004a0
0x00800100 PROVIDE (__data_start, .)
*(.data)
*(.data*)
.data.g_au8Digits
0x00800100 0x3 main.o
0x00800100 g_au8Digits
*(.rodata)
*(.rodata*)
.rodata.g_au8Symbols
0x00800103 0x12 main.o
*(.gnu.linkonce.d*)
0x00800116 . = ALIGN (0x2)
*fill* 0x00800115 0x1
0x00800116 _edata = .
0x00800116 PROVIDE (__data_end, .)

.bss 0x00800116 0x1
0x00800116 PROVIDE (__bss_start, .)
*(.bss)
*(.bss*)
.bss.g_u8ISRDigitSelect
0x00800116 0x1 main.o
0x00800116 g_u8ISRDigitSelect
*(COMMON)
0x00800117 PROVIDE (__bss_end, .)
0x000004a0 __data_load_start = LOADADDR (.data)
0x000004b6 __data_load_end = (__data_load_start + SIZEOF (.data))

.noinit 0x00800117 0x0
[!provide] PROVIDE (__noinit_start, .)
*(.noinit*)
[!provide] PROVIDE (__noinit_end, .)
0x00800117 _end = .
[!provide] 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 0x30
*(.comment)
.comment 0x00000000 0x30 main.o
0x31 (size before relaxing)

.note.gnu.avr.deviceinfo
0x00000000 0x40
.note.gnu.avr.deviceinfo
0x00000000 0x40 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o

.note.gnu.build-id
*(.note.gnu.build-id)

.debug
*(.debug)

.line
*(.line)

.debug_srcinfo
*(.debug_srcinfo)

.debug_sfnames
*(.debug_sfnames)

.debug_aranges 0x00000000 0x68
*(.debug_aranges)
.debug_aranges
0x00000000 0x68 main.o

.debug_pubnames
*(.debug_pubnames)

.debug_info 0x00000000 0xcee
*(.debug_info .gnu.linkonce.wi.*)
.debug_info 0x00000000 0x5f4 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o
.debug_info 0x000005f4 0x6fa main.o

.debug_abbrev 0x00000000 0x84b
*(.debug_abbrev)
.debug_abbrev 0x00000000 0x5a2 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o
.debug_abbrev 0x000005a2 0x2a9 main.o

.debug_line 0x00000000 0x4ba
*(.debug_line .debug_line.* .debug_line_end)
.debug_line 0x00000000 0x133 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o
.debug_line 0x00000133 0x387 main.o

.debug_frame 0x00000000 0xec
*(.debug_frame)
.debug_frame 0x00000000 0xec main.o

.debug_str 0x00000000 0x4d2
*(.debug_str)
.debug_str 0x00000000 0x208 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o
.debug_str 0x00000208 0x2ca main.o
0x2fe (size before relaxing)

.debug_loc 0x00000000 0x59b
*(.debug_loc)
.debug_loc 0x00000000 0x59b main.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 0x58
*(.debug_ranges)
.debug_ranges 0x00000000 0x58 main.o

.debug_macro
*(.debug_macro)
OUTPUT(PoolClockAirTemp.elf elf32-avr)
LOAD linker stubs

+ 78
- 0
PoolClockAirTemp/Debug/PoolClockAirTemp.srec Voir le fichier

@@ -0,0 +1,78 @@
S0180000506F6F6C436C6F636B41697254656D702E73726563D4
S113000019C033C032C031C030C02FC02EC02DC083
S11300102CC02BC02AC02AC028C027C026C025C097
S113002024C023C022C021C020C01FC01EC01DC0C8
S11300301CC01BC011241FBECFEFD4E0DEBFCDBF58
S113004011E0A0E0B1E0E0EAF4E002C005900D9216
S1130050A631B107D9F721E0A6E1B1E001C01D92B4
S1130060A731B207E1F7BFD019C2CACF1F920F92CE
S11300700FB60F9211248F939F93EF93FF9315B8AC
S11300801BB88DE08A95F1F7000081E090E00090C4
S1130090160102C0880F991F0A94E2F785B9E0910E
S11300A01601F0E0E050FF4FE081F0E0ED5FFE4F1D
S11300B080818BB9809116018F5F833018F480930F
S11300C0160102C010921601FF91EF919F918F913A
S11300D00F900FBE0F901F9018958FEF8AB987E08D
S11300E084B9109280008AE08093810084EC99E0C6
S11300F09093890080938800EFE6F0E0808182602D
S11301008083789408959DEC899F912D1124969570
S113011096959695E0E0F1E09283990F292F220FAE
S1130120220F920F891B81836083089543983B9A21
S11301308FE599E00197F1F700C000003B98EBE2EE
S1130140F1E03197F1F700C0000086B1E3E3F8E095
S11301503197F1F700C000008870089543983B9AE6
S113016096E09A95F1F700C0813009F43B988BE250
S113017091E00197F1F700C000003B980895CF93F8
S1130180DF93D82FC8E08D2F8170E8DFD695C1505A
S1130190D1F7DF91CF91089543983B9A86E08A95F1
S11301A0F1F700C03B98EDE5EA95F1F7000086B160
S11301B0E0EEF0E03197F1F700C0000083FB882700
S11301C080F90895CF93DF93D8E0C0E0E5DF20E81D
S11301D0829FC0011124C695C82BD150B9F78C2F2A
S11301E0DF91CF91089579DFE0E0F1E081E182834E
S11301F0818380832FEF8BE792E9215080409040E8
S1130200E1F700C0000092DF8CECB9DF84E4B7DFD3
S1130210C3DF8823E9F38ADF8CECB1DF8EEBAFDF39
S1130220D1DFC82FCFDF682F70E0762F66276C0FE1
S1130230711D072E000C880B990B41D020E030E093
S113024040E85DE3A0D00DD0862F6EE05CDF2FE7A1
S113025084E89EE1215080409040E1F700C0000016
S1130260D2CF70D088F09F5790F0B92F9927B7510B
S1130270A0F0D1F0660F771F881F991F1AF0BA9566
S1130280C9F712C0B13081F077D0B1E0089574C0DD
S1130290672F782F8827B85F39F0B93FCCF386955C
S11302A077956795B395D9F73EF4909580957095B9
S11302B061957F4F8F4F9F4F0895E89409C097FB36
S11302C03EF490958095709561957F4F8F4F9F4F29
S11302D09923A9F0F92F96E9BB279395F69587956D
S11302E077956795B795F111F8CFFAF4BB0F11F430
S11302F060FF1BC06F5F7F4F8F4F9F4F16C08823D7
S113030011F096E911C0772321F09EE8872F762F0C
S113031005C0662371F096E8862F70E060E02AF04D
S11303209A95660F771F881FDAF7880F9695879539
S113033097F9089557FD9058440F551F59F05F3FA2
S113034071F04795880F97FB991F61F09F3F79F0F3
S113035087950895121613061406551FF2CF469575
S1130360F1DF08C0161617061806991FF1CF8695F7
S11303707105610508940895E894BB2766277727DB
S1130380CB0197F908950BD078C069D028F06ED0CE
S113039018F0952309F05AC05FC01124EECFCADFCC
S11303A0A0F3959FD1F3950F50E0551F629FF00184
S11303B0729FBB27F00DB11D639FAA27F00DB11DDD
S11303C0AA1F649F6627B00DA11D661F829F222766
S11303D0B00DA11D621F739FB00DA11D621F839FED
S11303E0A00D611D221F749F3327A00D611D231FC3
S11303F0849F600D211D822F762F6A2F11249F5711
S113040050408AF0E1F088234AF0EE0FFF1FBB1F33
S1130410661F771F881F91505040A9F79E3F5105D2
S113042070F014C0AACF5F3FECF3983EDCF38695DE
S113043077956795B795F795E7959F5FC1F7FE2B7D
S1130440880F911D9695879597F9089597F99F6759
S113045080E870E060E008959FEF80EC0895002448
S11304600A941616170618060906089500240A9415
S113047012161306140605060895092E0394000C9B
S113048011F4882352F0BB0F40F4BF2B11F460FF2A
S113049004C06F5F7F4F8F4F9F4F0895F894FFCF35
S11304A0101010FC24BAAE66CEDEA4FEEE161EDAE0
S10904B012ADF30002008E
S9030000FC

+ 49
- 0
PoolClockAirTemp/Debug/main.d Voir le fichier

@@ -0,0 +1,49 @@
main.d main.o: .././main.c \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdbool.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \
C:\Program\ Files\ (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.132\include/avr/iom88pa.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h

c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdbool.h:

c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h:

c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:

c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h:

c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h:

c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h:

C:\Program\ Files\ (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.132\include/avr/iom88pa.h:

c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h:

c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h:

c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h:

c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h:

c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h:

c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h:

c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h:

c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h:

c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h:

BIN
PoolClockAirTemp/Debug/main.o Voir le fichier


+ 6
- 0
PoolClockAirTemp/Debug/makedep.mk Voir le fichier

@@ -0,0 +1,6 @@
################################################################################
# Automatically-generated file. Do not edit or delete the file
################################################################################

main.c


+ 86
- 0
PoolClockAirTemp/PoolClockAirTemp.componentinfo.xml Voir le fichier

@@ -0,0 +1,86 @@
<?xml version="1.0" encoding="utf-8"?>
<Store xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="AtmelPackComponentManagement">
<ProjectComponents>
<ProjectComponent z:Id="i1" xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/">
<CApiVersion></CApiVersion>
<CBundle></CBundle>
<CClass>Device</CClass>
<CGroup>Startup</CGroup>
<CSub></CSub>
<CVariant></CVariant>
<CVendor>Atmel</CVendor>
<CVersion>1.2.0</CVersion>
<DefaultRepoPath>C:/Program Files (x86)\Atmel\Studio\7.0\Packs</DefaultRepoPath>
<DependentComponents xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
<Description></Description>
<Files xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d4p1:anyType i:type="FileInfo">
<AbsolutePath>C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.132\include</AbsolutePath>
<Attribute></Attribute>
<Category>include</Category>
<Condition>C</Condition>
<FileContentHash i:nil="true" />
<FileVersion></FileVersion>
<Name>include</Name>
<SelectString></SelectString>
<SourcePath></SourcePath>
</d4p1:anyType>
<d4p1:anyType i:type="FileInfo">
<AbsolutePath>C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.132\include\avr\iom88pa.h</AbsolutePath>
<Attribute></Attribute>
<Category>header</Category>
<Condition>C</Condition>
<FileContentHash>PWoJcvZZTeGBgzC7OP4j4w==</FileContentHash>
<FileVersion></FileVersion>
<Name>include/avr/iom88pa.h</Name>
<SelectString></SelectString>
<SourcePath></SourcePath>
</d4p1:anyType>
<d4p1:anyType i:type="FileInfo">
<AbsolutePath>C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.132\templates\main.c</AbsolutePath>
<Attribute>template</Attribute>
<Category>source</Category>
<Condition>C Exe</Condition>
<FileContentHash>ScNpxY7iwOxCD8VURzPFGA==</FileContentHash>
<FileVersion></FileVersion>
<Name>templates/main.c</Name>
<SelectString>Main file (.c)</SelectString>
<SourcePath></SourcePath>
</d4p1:anyType>
<d4p1:anyType i:type="FileInfo">
<AbsolutePath>C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.132\templates\main.cpp</AbsolutePath>
<Attribute>template</Attribute>
<Category>source</Category>
<Condition>C Exe</Condition>
<FileContentHash>YXFphlh0CtZJU+ebktABgQ==</FileContentHash>
<FileVersion></FileVersion>
<Name>templates/main.cpp</Name>
<SelectString>Main file (.cpp)</SelectString>
<SourcePath></SourcePath>
</d4p1:anyType>
<d4p1:anyType i:type="FileInfo">
<AbsolutePath>C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.132\gcc\dev\atmega88pa</AbsolutePath>
<Attribute></Attribute>
<Category>libraryPrefix</Category>
<Condition>GCC</Condition>
<FileContentHash i:nil="true" />
<FileVersion></FileVersion>
<Name>gcc/dev/atmega88pa</Name>
<SelectString></SelectString>
<SourcePath></SourcePath>
</d4p1:anyType>
</Files>
<PackName>ATmega_DFP</PackName>
<PackPath>C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/Atmel.ATmega_DFP.pdsc</PackPath>
<PackVersion>1.2.132</PackVersion>
<PresentInProject>true</PresentInProject>
<ReferenceConditionId>ATmega88PA</ReferenceConditionId>
<RteComponents xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d4p1:string></d4p1:string>
</RteComponents>
<Status>Resolved</Status>
<VersionMode>Fixed</VersionMode>
<IsComponentInAtProject>true</IsComponentInAtProject>
</ProjectComponent>
</ProjectComponents>
</Store>

+ 126
- 0
PoolClockAirTemp/PoolClockAirTemp.cproj Voir le fichier

@@ -0,0 +1,126 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="14.0">
<PropertyGroup>
<SchemaVersion>2.0</SchemaVersion>
<ProjectVersion>7.0</ProjectVersion>
<ToolchainName>com.Atmel.AVRGCC8.C</ToolchainName>
<ProjectGuid>{0c83e3a6-3ddd-4274-8944-ae653dc4ac74}</ProjectGuid>
<avrdevice>ATmega88PA</avrdevice>
<avrdeviceseries>none</avrdeviceseries>
<OutputType>Executable</OutputType>
<Language>C</Language>
<OutputFileName>$(MSBuildProjectName)</OutputFileName>
<OutputFileExtension>.elf</OutputFileExtension>
<OutputDirectory>$(MSBuildProjectDirectory)\$(Configuration)</OutputDirectory>
<AssemblyName>PoolClockAirTemp</AssemblyName>
<Name>PoolClockAirTemp</Name>
<RootNamespace>PoolClockAirTemp</RootNamespace>
<ToolchainFlavour>Native</ToolchainFlavour>
<KeepTimersRunning>true</KeepTimersRunning>
<OverrideVtor>false</OverrideVtor>
<CacheFlash>true</CacheFlash>
<ProgFlashFromRam>true</ProgFlashFromRam>
<RamSnippetAddress />
<UncachedRange />
<preserveEEPROM>true</preserveEEPROM>
<OverrideVtorValue />
<BootSegment>2</BootSegment>
<eraseonlaunchrule>0</eraseonlaunchrule>
<AsfFrameworkConfig>
<framework-data xmlns="">
<options />
<configurations />
<files />
<documentation help="" />
<offline-documentation help="" />
<dependencies>
<content-extension eid="atmel.asf" uuidref="Atmel.ASF" version="3.34.1" />
</dependencies>
</framework-data>
</AsfFrameworkConfig>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<ToolchainSettings>
<AvrGcc>
<avrgcc.common.Device>-mmcu=atmega88pa -B "%24(PackRepoDir)\atmel\ATmega_DFP\1.2.132\gcc\dev\atmega88pa"</avrgcc.common.Device>
<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.common.outputfiles.usersignatures>False</avrgcc.common.outputfiles.usersignatures>
<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.directories.IncludePaths>
<ListValues>
<Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.2.132\include</Value>
</ListValues>
</avrgcc.compiler.directories.IncludePaths>
<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>
<avrgcc.linker.libraries.Libraries>
<ListValues>
<Value>libm</Value>
</ListValues>
</avrgcc.linker.libraries.Libraries>
<avrgcc.assembler.general.IncludePaths>
<ListValues>
<Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.2.132\include</Value>
</ListValues>
</avrgcc.assembler.general.IncludePaths>
</AvrGcc>
</ToolchainSettings>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<ToolchainSettings>
<AvrGcc>
<avrgcc.common.Device>-mmcu=atmega88pa -B "%24(PackRepoDir)\atmel\ATmega_DFP\1.2.132\gcc\dev\atmega88pa"</avrgcc.common.Device>
<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.common.outputfiles.usersignatures>False</avrgcc.common.outputfiles.usersignatures>
<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.directories.IncludePaths>
<ListValues>
<Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.2.132\include</Value>
</ListValues>
</avrgcc.compiler.directories.IncludePaths>
<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>
<avrgcc.linker.libraries.Libraries>
<ListValues>
<Value>libm</Value>
</ListValues>
</avrgcc.linker.libraries.Libraries>
<avrgcc.assembler.general.IncludePaths>
<ListValues>
<Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.2.132\include</Value>
</ListValues>
</avrgcc.assembler.general.IncludePaths>
<avrgcc.assembler.debugging.DebugLevel>Default (-Wa,-g)</avrgcc.assembler.debugging.DebugLevel>
</AvrGcc>
</ToolchainSettings>
</PropertyGroup>
<ItemGroup>
<Compile Include="main.c">
<SubType>compile</SubType>
</Compile>
</ItemGroup>
<Import Project="$(AVRSTUDIO_EXE_PATH)\\Vs\\Compiler.targets" />
</Project>

+ 302
- 0
PoolClockAirTemp/main.c Voir le fichier

@@ -0,0 +1,302 @@
#include <stdbool.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#define F_CPU 20000000UL //20 MHz
#include <util/delay.h>

NO LONGER USED

/* 7-Segment display: */
#define NUM_DIGITS 3U //3 Digits
#define DIGIT_TENS 2U //left
#define DIGIT_ONES 1U //middle
#define DIGIT_UNIT 0U //right
#define SELECT_DIGIT(digit) (1U << digit)

/* DS18B20 peripherals: */
#define DS18B20_PORT PORTC
#define DS18B20_DDR DDRC
#define DS18B20_PIN PINC
#define DS18B20_DQ PINC3

/* DS18B20 commands: */
#define DS18B20_CMD_CONVERTTEMP 0x44U
#define DS18B20_CMD_RSCRATCHPAD 0xBEU
#define DS18B20_CMD_WSCRATCHPAD 0x4EU
#define DS18B20_CMD_CPYSCRATCHPAD 0x48U
#define DS18B20_CMD_RECEEPROM 0xB8U
#define DS18B20_CMD_RPWRSUPPLY 0xB4U
#define DS18B20_CMD_SEARCHROM 0xF0U
#define DS18B20_CMD_READROM 0x33U
#define DS18B20_CMD_MATCHROM 0x55U
#define DS18B20_CMD_SKIPROM 0xCCU
#define DS18B20_CMD_ALARMSEARCH 0xECU

/* Symbol indexes: */
#define SYM_n 10U
#define SYM_o 11U
#define SYM_E 12U
#define SYM_R 13U
#define SYM_DEG_CELCIUS 14U
#define SYM_P_P 15U
#define SYM_OFF 16U
#define SYM_DASH 17U

/*
7-Segment Layout:

A
F B
G
E C
D P

Pin 7 6 5 4 3 2 1 0
Segment A F B E D C G P
*/
static uint8_t g_au8Symbols[18U] =
{
/* 00 */ 0b11111100U, //0 (ABCDEF)
/* 01 */ 0b00100100U, //1 (BC)
/* 02 */ 0b10111010U, //2 (ABDEG)
/* 03 */ 0b10101110U, //3 (ABCDG)
/* 04 */ 0b01100110U, //4 (BCFG)
/* 05 */ 0b11001110U, //5 (ACDFG)
/* 06 */ 0b11011110U, //6 (ACDEFG)
/* 07 */ 0b10100100U, //7 (ABC)
/* 08 */ 0b11111110U, //8 (ABCDEFG)
/* 09 */ 0b11101110U, //9 (ABCDFG)
/* 10 */ 0b00010110U, //n (CEG) SYM_n
/* 11 */ 0b00011110U, //o (CDEG) SYM_o
/* 12 */ 0b11011010U, //E (ADEFG) SYM_E
/* 13 */ 0b00010010U, //r (EG) SYM_r
/* 14 */ 0b10101101U, //degC (ABCDP) SYM_DEG_CELCIUS
/* 15 */ 0b11110011U, //P. (ABEFGP) SYM_P_P
/* 16 */ 0b00000000U, //OFF SYM_OFF
/* 17 */ 0b00000010U //- (G) SYM_DASH
};

uint8_t g_u8ISRDigitSelect = 0U;
uint8_t g_au8Digits[3U] =
{
SYM_OFF, //unit
SYM_OFF, //ones
SYM_OFF //tens
};

void vInit( void );
void vSetValue( uint8_t u8Value, uint8_t u8Unit );
void vSetDisplayDigits( uint8_t u8Tens, uint8_t u8Ones, uint8_t u8Unit );
uint8_t u8DS18B20_Reset( void );
void vDS18B20_WriteByte( uint8_t u8Byte );
void vDS18B20_WriteBit( uint8_t u8Bit );
uint8_t u8DS18B20_ReadByte( void );
uint8_t u8DS18B20_ReadBit( void );


/************************************************************************/
/* Timer1 ISR - show values on display */
/************************************************************************/
ISR ( TIMER1_COMPA_vect )
{
PORTB = 0;
PORTD = 0;
_delay_us(2);
PORTB = SELECT_DIGIT(g_u8ISRDigitSelect);
PORTD = g_au8Symbols[g_au8Digits[g_u8ISRDigitSelect]];
g_u8ISRDigitSelect++;
if (g_u8ISRDigitSelect > 2U)
{
g_u8ISRDigitSelect = 0U;
}
}

/************************************************************************/
/* main() */
/************************************************************************/
int main(void)
{
uint8_t u8TempLo, u8TempHi;
float f32Temperature;
/* Init I/O: */
vInit();
/* Set default value: */
vSetDisplayDigits( SYM_DASH, SYM_DASH, SYM_DASH );
/* wait 3 seconds for DS18B20 sensor */
_delay_ms(2400);
while (1)
{
(void) u8DS18B20_Reset();
vDS18B20_WriteByte( DS18B20_CMD_SKIPROM );
vDS18B20_WriteByte( DS18B20_CMD_CONVERTTEMP );
while ( !u8DS18B20_ReadBit() );
(void) u8DS18B20_Reset();
vDS18B20_WriteByte( DS18B20_CMD_SKIPROM );
vDS18B20_WriteByte( DS18B20_CMD_RSCRATCHPAD );
u8TempLo = u8DS18B20_ReadByte();
u8TempHi = u8DS18B20_ReadByte();
f32Temperature = ((u8TempHi << 8) + u8TempLo) * 0.0625;
vSetValue( (uint8_t) f32Temperature, SYM_DEG_CELCIUS );
_delay_ms(500);
} //end while(1)
}

/************************************************************************/
/* Initialize inputs and outputs */
/************************************************************************/
void vInit( void )
{
/* Port D - Pins 0-7: Outputs */
DDRD = 0b11111111U;
/* Port B - Pins 0-2: Outputs */
DDRB = 0b00000111U;
/* 16-bit TIMER1 in CTC mode
* prescaler = 8
* 20 MHz / 8 = 2.5 MHz
* Compare value = 2500 => 1 ms IRQ
*/
TCCR1A = 0U;
TCCR1B = (1<<WGM12) | (1<<CS11);
OCR1A = 2500U;
TIMSK1 |= (1<<OCIE1A);
sei();
return; //void
}

/************************************************************************/
/* Set new values to be shown on display */
/************************************************************************/
void vSetValue( uint8_t u8Value, uint8_t u8Unit )
{
uint8_t u8Tmp = u8Value / 10U;
vSetDisplayDigits(u8Tmp, u8Value - (u8Tmp * 10U), u8Unit);

return; //void
}

/************************************************************************/
/* Set display digits individually */
/************************************************************************/
void vSetDisplayDigits( uint8_t u8Tens, uint8_t u8Ones, uint8_t u8Unit )
{
g_au8Digits[DIGIT_TENS] = u8Tens;
g_au8Digits[DIGIT_ONES] = u8Ones;
g_au8Digits[DIGIT_UNIT] = u8Unit;
return; //void
}

/************************************************************************/
/* Reset DS18B20 (960 us) */
/************************************************************************/
uint8_t u8DS18B20_Reset( void )
{
uint8_t u8Status;

//low for 480 us
DS18B20_PORT &= ~ (1<<DS18B20_DQ); //low
DS18B20_DDR |= (1<<DS18B20_DQ); //output
_delay_us(480);

//release line and wait for 60 us
DS18B20_DDR &= ~(1<<DS18B20_DQ); //input
_delay_us(60);

//get value and wait 420 us
u8Status = (DS18B20_PIN & (1<<DS18B20_DQ));
_delay_us(420);

//return the read value: 0=okay, 1=error
return u8Status;
}

/************************************************************************/
/* Write byte to DS18B20 (8 * 61 us = 488 us) */
/************************************************************************/
void vDS18B20_WriteByte( uint8_t u8Byte )
{
uint8_t u8Bits = 8U;
while ( u8Bits-- )
{
vDS18B20_WriteBit( u8Byte & 1U );
u8Byte >>= 1U;
}
return; //void
}


/************************************************************************/
/* Write single bit to DS18B20 (61 us) */
/************************************************************************/
void vDS18B20_WriteBit( uint8_t u8Bit )
{
//low for 1 us
DS18B20_PORT &= ~ (1U<<DS18B20_DQ); //low
DS18B20_DDR |= (1U<<DS18B20_DQ); //output
_delay_us(1);

//if we want to write 1, release the line (if not will keep low)
if (1U == u8Bit )
{
DS18B20_DDR &= ~(1<<DS18B20_DQ); //input
}

//wait 60 us and release the line
_delay_us(60);
DS18B20_DDR &= ~(1<<DS18B20_DQ); //input
return; //void
}

/************************************************************************/
/* Read byte from DS18B20 (8 * 60 us = 480 us) */
/************************************************************************/
uint8_t u8DS18B20_ReadByte( void )
{
uint8_t u8Bits = 8U;
uint8_t n = 0U;
while ( u8Bits-- )
{
n >>= 1U;
n |= (u8DS18B20_ReadBit()<<7U);
}

return n;
}

/************************************************************************/
/* Read single bit from DS18B20 (60 us) */
/************************************************************************/
uint8_t u8DS18B20_ReadBit( void )
{
uint8_t u8Bit = 0U;

//low for 1 us
DS18B20_PORT &= ~ (1U<<DS18B20_DQ); //low
DS18B20_DDR |= (1U<<DS18B20_DQ); //output
_delay_us(1);

//release line and wait for 14 us
DS18B20_DDR &= ~(1U<<DS18B20_DQ); //input
_delay_us(14);

//read the value
if ( DS18B20_PIN & (1U<<DS18B20_DQ) )
{
u8Bit = 1U;
}
//wait 45 us and return read value
_delay_us(45);
return u8Bit;
}

+ 129
- 0
PoolClockHumidity/Debug/Makefile Voir le fichier

@@ -0,0 +1,129 @@
################################################################################
# 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:=
LINKER_SCRIPT_DEP:=

# Every subdirectory with source files must be described here
SUBDIRS :=


# Add inputs and outputs from these tool invocations to the build variables
C_SRCS += \
../main.c


PREPROCESSING_SRCS +=


ASM_SRCS +=


OBJS += \
main.o

OBJS_AS_ARGS += \
main.o

C_DEPS += \
main.d

C_DEPS_AS_ARGS += \
main.d

OUTPUT_FILE_PATH +=PoolClockHumidity.elf

OUTPUT_FILE_PATH_AS_ARGS +=PoolClockHumidity.elf

ADDITIONAL_DEPENDENCIES:=

OUTPUT_FILE_DEP:= ./makedep.mk

LIB_DEP+=

LINKER_SCRIPT_DEP+=


# AVR32/GNU C Compiler



./%.o: .././%.c
@echo Building file: $<
@echo Invoking: AVR/GNU C Compiler : 5.4.0
$(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.132\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega88pa -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.132\gcc\dev\atmega88pa" -c -std=gnu99 -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) $(LINKER_SCRIPT_DEP)
@echo Building target: $@
@echo Invoking: AVR/GNU Linker : 5.4.0
$(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -o$(OUTPUT_FILE_PATH_AS_ARGS) $(OBJS_AS_ARGS) $(USER_OBJS) $(LIBS) -Wl,-Map="PoolClockHumidity.map" -Wl,--start-group -Wl,-lm -Wl,--end-group -Wl,--gc-sections -mmcu=atmega88pa -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.132\gcc\dev\atmega88pa"
@echo Finished building target: $@
"C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O ihex -R .eeprom -R .fuse -R .lock -R .signature -R .user_signatures "PoolClockHumidity.elf" "PoolClockHumidity.hex"
"C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy.exe" -j .eeprom --set-section-flags=.eeprom=alloc,load --change-section-lma .eeprom=0 --no-change-warnings -O ihex "PoolClockHumidity.elf" "PoolClockHumidity.eep" || exit 0
"C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objdump.exe" -h -S "PoolClockHumidity.elf" > "PoolClockHumidity.lss"
"C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O srec -R .eeprom -R .fuse -R .lock -R .signature -R .user_signatures "PoolClockHumidity.elf" "PoolClockHumidity.srec"
"C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-size.exe" "PoolClockHumidity.elf"





# Other Targets
clean:
-$(RM) $(OBJS_AS_ARGS) $(EXECUTABLES)
-$(RM) $(C_DEPS_AS_ARGS)
rm -rf "PoolClockHumidity.elf" "PoolClockHumidity.a" "PoolClockHumidity.hex" "PoolClockHumidity.lss" "PoolClockHumidity.eep" "PoolClockHumidity.map" "PoolClockHumidity.srec" "PoolClockHumidity.usersignatures"

+ 1
- 0
PoolClockHumidity/Debug/PoolClockHumidity.eep Voir le fichier

@@ -0,0 +1 @@
:00000001FF

BIN
PoolClockHumidity/Debug/PoolClockHumidity.elf Voir le fichier


+ 148
- 0
PoolClockHumidity/Debug/PoolClockHumidity.hex Voir le fichier

@@ -0,0 +1,148 @@
:1000000019C033C032C031C030C02FC02EC02DC087
:100010002CC02BC02AC081C028C027C026C025C044
:1000200024C023C022C021C020C01FC01EC01DC0CC
:100030001CC01BC011241FBECFEFD4E0DEBFCDBF5C
:1000400011E0A0E0B1E0E0E0F9E002C005900D921F
:10005000A432B107D9F721E0A4E2B1E001C01D92BA
:10006000AC32B207E1F71DD349C4CACF8FEF8AB9CA
:1000700087E084B980E388B93B9843981092800068
:100080008AE08093810084EC99E0909389008093CA
:100090008800EFE6F0E080818260808378940895A4
:1000A0009DEC899F912D1124969596959695E0E06B
:1000B000F1E09283990F292F220F220F920F891BB3
:1000C000818360830895349906C080912B018F5FEE
:1000D00080932B0102C010922B0135990AC08091A8
:1000E0002A018F5F80932A0190912B01933368F04E
:1000F00006C010922A0180912B01833368F0109280
:100100002B0181E0809329010895833328F0109218
:100110002A0182E08093290108951F920F920FB661
:100120000F9211242F933F934F935F936F937F937D
:100130008F939F93AF93BF93EF93FF9315B81BB823
:100140008DE08A95F1F7000081E090E000902401B5
:1001500002C0880F991F0A94E2F785B9E091240143
:10016000F0E0E050FF4FE081F0E0ED5FFE4F808176
:100170008BB9809124018F5F833018F48093240120
:1001800002C0109224019FDFFF91EF91BF91AF91C8
:100190009F918F917F916F915F914F913F912F919F
:1001A0000F900FBE0F901F901895E0E0F1E090E1E6
:1001B0009283918390832FEB35E444E021503040CB
:1001C0004040E1F700C00000813021F0823009F4A6
:1001D000E2C0C1C1E0E0F1E022E1228390E191833D
:1001E00090835FEB65E474E0515060407040E1F74C
:1001F00000C000003CE03283918390838FEBA5E444
:1002000044E08150A0404040E1F700C0000088E099
:100210008283918390835FEB65E474E0515060408A
:100220007040E1F700C00000828321839083AFEB30
:1002300045E454E0A15040405040E1F700C00000C8
:100240008283318390836FEB75E4A4E0615070404A
:10025000A040E1F700C000008283818390834FEBD0
:1002600055E464E0415050406040E1F700C00000B8
:100270008283818341E040837FEBA5E454E07150A9
:10028000A0405040E1F700C000008283818353E02A
:1002900050836FEB75E4A4E061507040A040E1F73B
:1002A00000C000008283818380836FEB75E4A4E04B
:1002B00061507040A040E1F700C00000828381835C
:1002C00080836FEB75E4A4E061507040A040E1F7DB
:1002D00000C000008283818350835FEB65E474E09B
:1002E000515060407040E1F700C00000828381837C
:1002F0004083AFEB45E454E0A15040405040E1F76B
:1003000000C000008283818390836FEB75E4A4E0DA
:1003100061507040A040E1F700C00000828331834B
:1003200090834FEB55E464E0415050406040E1F76A
:1003300000C000008283218390837FEBA5E444E02A
:100340007150A0404040E1F700C0000082839183DB
:1003500090835FEB65E474E0515060407040E1F7DA
:1003600000C000003283918390838FEBA5E434E0DA
:100370008150A0403040E1F700C00000228391830B
:1003800090834FEB55E464E0415050406040E1F70A
:1003900000C00000E0C0E0E0F1E022E1228380E163
:1003A000818380837FEB95E4A4E071509040A0406E
:1003B000E1F700C000003CE03283818380834FEB93
:1003C00055E464E0415050406040E1F700C0000057
:1003D00098E09283818380837FEBA5E444E07150B1
:1003E000A0404040E1F700C0000092832183808359
:1003F0005FEB65E474E0515060407040E1F700C08D
:100400000000928331838083AFEB45E454E0A15038
:1004100040405040E1F700C0000092839183808308
:100420006FEB75E4A4E061507040A040E1F700C0BC
:1004300000009283918341E040835FEB65E474E0C8
:10044000515060407040E1F700C0000092839183FA
:1004500053E05083AFEB65E474E0A150604070401E
:10046000E1F700C00000928391839083AFEB65E4D5
:1004700074E0A15060407040E1F700C0000052837A
:1004800091839083AFEB65E474E0A15060407040CD
:10049000E1F700C00000428391839083AFEB65E4F5
:1004A00074E0A15060407040E1F700C0000082831A
:1004B00091839083AFEB65E474E0A150604070409D
:1004C000E1F700C00000828351839083AFEB55E4D5
:1004D00064E0A15050406040E1F700C0000082831A
:1004E000418390837FEBA5E444E07150A0404040FD
:1004F000E1F700C000008283818390835FEB65E4B5
:1005000074E0515060407040E1F700C00000828309
:10051000818330839FEBA5E434E09150A0403040CC
:10052000E1F700C000008283818320834FEB55E414
:1005300064E0415050406040E1F700C00000828319
:10054000818380837FEB85E494E07150804090400C
:10055000E1F700C00000E0E0F1E080E18283818308
:100560008083AFEB25E434E0A15020403040E1F738
:1005700000C0000008950F931F93CF93DF9300D026
:1005800000D01F92CDB7DEB73B9889EC07C036E0AC
:100590003A95F1F700C0815009F46EC03399F7CF56
:1005A00086E507C096E09A95F1F700C0815009F4FE
:1005B00065C0339BF7CF86E507C0A6E0AA95F1F7A3
:1005C00000C0815009F45CC03399F7CFFE01319629
:1005D00085E0DF011D928A95E9F7AE014A5F5F4F22
:1005E00022C0B6E0BA95F1F700C0915011F44AC0AC
:1005F00098E3339BF6CF38EC3A95F1F7220F339915
:1006000008C00BC0A6E0AA95F1F700C0915011F404
:100610003BC09EE23399F6CF2160815049F7219388
:100620004E175F0719F088E020E0E2CFA981B0E023
:10063000EA81F0E06B8170E04C8150E09D012E0F6B
:100640003F1F260F371F240F351F33270D8110E062
:1006500020173107D9F4BA2FAA27EA0FFB1FF0930E
:100660002801E0932701762F6627460F571F5093E6
:100670002601409325010BC082E009C083E007C03A
:1006800084E005C085E003C086E001C087E00F90EC
:100690000F900F900F900F90DF91CF911F910F91BE
:1006A0000895E4DCE0E0F1E090E1928391839083AF
:1006B000AFE4B3EC1197F1F700C0000083E182834F
:1006C00091839083BFE70FE412E1B15000401040E6
:1006D000E1F700C000008283818390832FE73FE42D
:1006E00042E1215030404040E1F700C000008283E9
:1006F000818380838FE79FE4A2E181509040A040F6
:10070000E1F700C0000035E080E123E1D9E1C7E076
:10071000BAE196E1ABE17CE16DE15EE182832183A8
:10072000D0830FEB15E444E0015010404040E1F766
:1007300000C0000082838183C0830FEB15E444E096
:10074000015010404040E1F700C0000082838183E7
:10075000B0830FEB15E444E0015010404040E1F756
:1007600000C0000082839183A0830FEB15E444E076
:10077000015010404040E1F700C000009283918397
:1007800090830FEB15E444E0015010404040E1F746
:1007900000C000007283918380830FEB15E444E076
:1007A000015010404040E1F700C0000062838183A7
:1007B00080830FEB15E444E0015010404040E1F726
:1007C00000C000005283818380830FEB15E444E076
:1007D000015010404040E1F700C000000FE10283EB
:1007E000218380831FEB45E404E01150404000402A
:1007F000E1F700C000002283218320831FEB45E442
:1008000004E0115040400040E1F700C000003150CA
:1008100009F084CFE0E0F1E080E18283818380838E
:100820001FEF2EE934E2115020403040E1F700C0C4
:100830000000EF010CE010E1809129018130B1F15D
:1008400020F0823009F440C0F9CF339B25C03B9A99
:1008500043984FE788E391E0415080409040E1F7B2
:1008600000C0000088DE811110C020912701309166
:100870002801ADECBCEC36D096958795969587957A
:10088000969587956FE00CDC03C00A8389831883F3
:10089000809129018111D0CFAFE7B4E82EE1A150BA
:1008A000B0402040E1F700C00000C6CF81E07DDC11
:1008B000109229013FEF44E38CE0315040408040EA
:1008C000E1F700C00000B8CF82E06FDC1092290190
:1008D0009FEFA4E3BCE09150A040B040E1F700C01E
:1008E0000000AACFA29FB001B39FC001A39F01D077
:1008F000B29F700D811D1124911D0895F894FFCFB2
:10090000101010FC24BAAE66CEDEA4FEEE161EDA7F
:1009100012ADF3000250802004081040A02C0C18E7
:0409200058D0C000EB
:00000001FF

+ 1958
- 0
PoolClockHumidity/Debug/PoolClockHumidity.lss
Fichier diff supprimé car celui-ci est trop grand
Voir le fichier


+ 514
- 0
PoolClockHumidity/Debug/PoolClockHumidity.map Voir le fichier

@@ -0,0 +1,514 @@
Archive member included to satisfy reference by file (symbol)

c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_exit.o)
C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o (exit)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_copy_data.o)
main.o (__do_copy_data)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_clear_bss.o)
main.o (__do_clear_bss)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_umulhisi3.o)
main.o (__umulhisi3)

Discarded input sections

.data 0x00000000 0x0 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o
.bss 0x00000000 0x0 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o
.text 0x00000000 0x0 main.o
.data 0x00000000 0x0 main.o
.bss 0x00000000 0x0 main.o
.text.s_vSetDisplayDigits
0x00000000 0xc main.o
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_exit.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_exit.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_exit.o)
.text.libgcc.mul
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_exit.o)
.text.libgcc.div
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_exit.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_exit.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_exit.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_exit.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_exit.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_exit.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_copy_data.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_copy_data.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_copy_data.o)
.text.libgcc.mul
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_copy_data.o)
.text.libgcc.div
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_copy_data.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_copy_data.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_copy_data.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_copy_data.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_copy_data.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_copy_data.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_clear_bss.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_clear_bss.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_clear_bss.o)
.text.libgcc.mul
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_clear_bss.o)
.text.libgcc.div
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_clear_bss.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_clear_bss.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_clear_bss.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_clear_bss.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_clear_bss.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_clear_bss.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_umulhisi3.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_umulhisi3.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_umulhisi3.o)
.text.libgcc.div
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_umulhisi3.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_umulhisi3.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_umulhisi3.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_umulhisi3.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_umulhisi3.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_umulhisi3.o)

Memory Configuration

Name Origin Length Attributes
text 0x00000000 0x00002000 xr
data 0x00800060 0x0000ffa0 rw !x
eeprom 0x00810000 0x00010000 rw !x
fuse 0x00820000 0x00000003 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/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o
LOAD main.o
START GROUP
LOAD c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a
END GROUP
START GROUP
LOAD c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a
LOAD c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libm.a
LOAD c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr4\libc.a
LOAD C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4\libatmega88pa.a
END GROUP
0x00002000 __TEXT_REGION_LENGTH__ = DEFINED (__TEXT_REGION_LENGTH__)?__TEXT_REGION_LENGTH__:0x2000
0x0000ffa0 __DATA_REGION_LENGTH__ = DEFINED (__DATA_REGION_LENGTH__)?__DATA_REGION_LENGTH__:0xffa0
0x00010000 __EEPROM_REGION_LENGTH__ = DEFINED (__EEPROM_REGION_LENGTH__)?__EEPROM_REGION_LENGTH__:0x10000
[0x00000003] __FUSE_REGION_LENGTH__ = DEFINED (__FUSE_REGION_LENGTH__)?__FUSE_REGION_LENGTH__:0x400
0x00000400 __LOCK_REGION_LENGTH__ = DEFINED (__LOCK_REGION_LENGTH__)?__LOCK_REGION_LENGTH__:0x400
0x00000400 __SIGNATURE_REGION_LENGTH__ = DEFINED (__SIGNATURE_REGION_LENGTH__)?__SIGNATURE_REGION_LENGTH__:0x400
0x00000400 __USER_SIGNATURE_REGION_LENGTH__ = DEFINED (__USER_SIGNATURE_REGION_LENGTH__)?__USER_SIGNATURE_REGION_LENGTH__:0x400

.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 0x900
*(.vectors)
.vectors 0x00000000 0x34 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o
0x00000000 __vector_default
0x00000000 __vectors
*(.vectors)
*(.progmem.gcc*)
0x00000034 . = ALIGN (0x2)
0x00000034 __trampolines_start = .
*(.trampolines)
.trampolines 0x00000034 0x0 linker stubs
*(.trampolines*)
0x00000034 __trampolines_end = .
*libprintf_flt.a:*(.progmem.data)
*libc.a:*(.progmem.data)
*(.progmem*)
0x00000034 . = ALIGN (0x2)
*(.jumptables)
*(.jumptables*)
*(.lowtext)
*(.lowtext*)
0x00000034 __ctors_start = .
*(.ctors)
0x00000034 __ctors_end = .
0x00000034 __dtors_start = .
*(.dtors)
0x00000034 __dtors_end = .
SORT(*)(.ctors)
SORT(*)(.dtors)
*(.init0)
.init0 0x00000034 0x0 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o
0x00000034 __init
*(.init0)
*(.init1)
*(.init1)
*(.init2)
.init2 0x00000034 0xc C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o
*(.init2)
*(.init3)
*(.init3)
*(.init4)
.init4 0x00000040 0x16 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_copy_data.o)
0x00000040 __do_copy_data
.init4 0x00000056 0x10 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_clear_bss.o)
0x00000056 __do_clear_bss
*(.init4)
*(.init5)
*(.init5)
*(.init6)
*(.init6)
*(.init7)
*(.init7)
*(.init8)
*(.init8)
*(.init9)
.init9 0x00000066 0x4 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o
*(.init9)
*(.text)
.text 0x0000006a 0x2 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o
0x0000006a __vector_22
0x0000006a __vector_1
0x0000006a __vector_24
0x0000006a __vector_12
0x0000006a __bad_interrupt
0x0000006a __vector_6
0x0000006a __vector_3
0x0000006a __vector_23
0x0000006a __vector_25
0x0000006a __vector_13
0x0000006a __vector_17
0x0000006a __vector_19
0x0000006a __vector_7
0x0000006a __vector_5
0x0000006a __vector_4
0x0000006a __vector_9
0x0000006a __vector_2
0x0000006a __vector_21
0x0000006a __vector_15
0x0000006a __vector_8
0x0000006a __vector_14
0x0000006a __vector_10
0x0000006a __vector_16
0x0000006a __vector_18
0x0000006a __vector_20
0x0000006c . = ALIGN (0x2)
*(.text.*)
.text.s_vInit 0x0000006c 0x34 main.o
0x0000006c s_vInit
.text.s_vSetValue
0x000000a0 0x26 main.o
0x000000a0 s_vSetValue
.text.s_vReadButtons
0x000000c6 0x54 main.o
0x000000c6 s_vReadButtons
.text.__vector_11
0x0000011a 0x90 main.o
0x0000011a __vector_11
.text.s_vShowAnim
0x000001aa 0x3cc main.o
0x000001aa s_vShowAnim
.text.s_u8ReadSensor
0x00000576 0x12c main.o
0x00000576 s_u8ReadSensor
.text.main 0x000006a2 0x242 main.o
0x000006a2 main
.text.libgcc.mul
0x000008e4 0x18 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_umulhisi3.o)
0x000008e4 __umulhisi3
0x000008fc . = ALIGN (0x2)
*(.fini9)
.fini9 0x000008fc 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_exit.o)
0x000008fc _exit
0x000008fc exit
*(.fini9)
*(.fini8)
*(.fini8)
*(.fini7)
*(.fini7)
*(.fini6)
*(.fini6)
*(.fini5)
*(.fini5)
*(.fini4)
*(.fini4)
*(.fini3)
*(.fini3)
*(.fini2)
*(.fini2)
*(.fini1)
*(.fini1)
*(.fini0)
.fini0 0x000008fc 0x4 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr4\libgcc.a(_exit.o)
*(.fini0)
0x00000900 _etext = .

.data 0x00800100 0x24 load address 0x00000900
0x00800100 PROVIDE (__data_start, .)
*(.data)
*(.data*)
.data.g_au8Digits
0x00800100 0x3 main.o
0x00800100 g_au8Digits
*(.rodata)
*(.rodata*)
.rodata.g_au8Symbols
0x00800103 0x20 main.o
*(.gnu.linkonce.d*)
0x00800124 . = ALIGN (0x2)
*fill* 0x00800123 0x1
0x00800124 _edata = .
0x00800124 PROVIDE (__data_end, .)

.bss 0x00800124 0x8
0x00800124 PROVIDE (__bss_start, .)
*(.bss)
*(.bss*)
.bss.g_u8ISRDigitSelect
0x00800124 0x1 main.o
0x00800124 g_u8ISRDigitSelect
.bss.g_u16Temperature
0x00800125 0x2 main.o
0x00800125 g_u16Temperature
.bss.g_u16Humidity
0x00800127 0x2 main.o
0x00800127 g_u16Humidity
.bss.g_u8Mode 0x00800129 0x1 main.o
.bss.g_u8ButtonCountBot
0x0080012a 0x1 main.o
.bss.g_u8ButtonCountTop
0x0080012b 0x1 main.o
*(COMMON)
0x0080012c PROVIDE (__bss_end, .)
0x00000900 __data_load_start = LOADADDR (.data)
0x00000924 __data_load_end = (__data_load_start + SIZEOF (.data))

.noinit 0x0080012c 0x0
[!provide] PROVIDE (__noinit_start, .)
*(.noinit*)
[!provide] PROVIDE (__noinit_end, .)
0x0080012c _end = .
[!provide] 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 0x30
*(.comment)
.comment 0x00000000 0x30 main.o
0x31 (size before relaxing)

.note.gnu.avr.deviceinfo
0x00000000 0x40
.note.gnu.avr.deviceinfo
0x00000000 0x40 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o

.note.gnu.build-id
*(.note.gnu.build-id)

.debug
*(.debug)

.line
*(.line)

.debug_srcinfo
*(.debug_srcinfo)

.debug_sfnames
*(.debug_sfnames)

.debug_aranges 0x00000000 0x58
*(.debug_aranges)
.debug_aranges
0x00000000 0x58 main.o

.debug_pubnames
*(.debug_pubnames)

.debug_info 0x00000000 0x228b
*(.debug_info .gnu.linkonce.wi.*)
.debug_info 0x00000000 0x5f4 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o
.debug_info 0x000005f4 0x1c97 main.o

.debug_abbrev 0x00000000 0x838
*(.debug_abbrev)
.debug_abbrev 0x00000000 0x5a2 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o
.debug_abbrev 0x000005a2 0x296 main.o

.debug_line 0x00000000 0xba4
*(.debug_line .debug_line.* .debug_line_end)
.debug_line 0x00000000 0x133 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o
.debug_line 0x00000133 0xa71 main.o

.debug_frame 0x00000000 0xf8
*(.debug_frame)
.debug_frame 0x00000000 0xf8 main.o

.debug_str 0x00000000 0x4ef
*(.debug_str)
.debug_str 0x00000000 0x208 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/gcc/dev/atmega88pa/avr4/crtatmega88pa.o
.debug_str 0x00000208 0x2e7 main.o
0x31b (size before relaxing)

.debug_loc 0x00000000 0x1e2d
*(.debug_loc)
.debug_loc 0x00000000 0x1e2d main.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 0x168
*(.debug_ranges)
.debug_ranges 0x00000000 0x168 main.o

.debug_macro
*(.debug_macro)
OUTPUT(PoolClockHumidity.elf elf32-avr)
LOAD linker stubs

+ 149
- 0
PoolClockHumidity/Debug/PoolClockHumidity.srec Voir le fichier

@@ -0,0 +1,149 @@
S0190000506F6F6C436C6F636B48756D69646974792E7372656338
S113000019C033C032C031C030C02FC02EC02DC083
S11300102CC02BC02AC081C028C027C026C025C040
S113002024C023C022C021C020C01FC01EC01DC0C8
S11300301CC01BC011241FBECFEFD4E0DEBFCDBF58
S113004011E0A0E0B1E0E0E0F9E002C005900D921B
S1130050A432B107D9F721E0A4E2B1E001C01D92B6
S1130060AC32B207E1F71DD349C4CACF8FEF8AB9C6
S113007087E084B980E388B93B9843981092800064
S11300808AE08093810084EC99E0909389008093C6
S11300908800EFE6F0E080818260808378940895A0
S11300A09DEC899F912D1124969596959695E0E067
S11300B0F1E09283990F292F220F220F920F891BAF
S11300C0818360830895349906C080912B018F5FEA
S11300D080932B0102C010922B0135990AC08091A4
S11300E02A018F5F80932A0190912B01933368F04A
S11300F006C010922A0180912B01833368F010927C
S11301002B0181E0809329010895833328F0109214
S11301102A0182E08093290108951F920F920FB65D
S11301200F9211242F933F934F935F936F937F9379
S11301308F939F93AF93BF93EF93FF9315B81BB81F
S11301408DE08A95F1F7000081E090E000902401B1
S113015002C0880F991F0A94E2F785B9E09124013F
S1130160F0E0E050FF4FE081F0E0ED5FFE4F808172
S11301708BB9809124018F5F833018F4809324011C
S113018002C0109224019FDFFF91EF91BF91AF91C4
S11301909F918F917F916F915F914F913F912F919B
S11301A00F900FBE0F901F901895E0E0F1E090E1E2
S11301B09283918390832FEB35E444E021503040C7
S11301C04040E1F700C00000813021F0823009F4A2
S11301D0E2C0C1C1E0E0F1E022E1228390E1918339
S11301E090835FEB65E474E0515060407040E1F748
S11301F000C000003CE03283918390838FEBA5E440
S113020044E08150A0404040E1F700C0000088E095
S11302108283918390835FEB65E474E05150604086
S11302207040E1F700C00000828321839083AFEB2C
S113023045E454E0A15040405040E1F700C00000C4
S11302408283318390836FEB75E4A4E06150704046
S1130250A040E1F700C000008283818390834FEBCC
S113026055E464E0415050406040E1F700C00000B4
S11302708283818341E040837FEBA5E454E07150A5
S1130280A0405040E1F700C000008283818353E026
S113029050836FEB75E4A4E061507040A040E1F737
S11302A000C000008283818380836FEB75E4A4E047
S11302B061507040A040E1F700C000008283818358
S11302C080836FEB75E4A4E061507040A040E1F7D7
S11302D000C000008283818350835FEB65E474E097
S11302E0515060407040E1F700C000008283818378
S11302F04083AFEB45E454E0A15040405040E1F767
S113030000C000008283818390836FEB75E4A4E0D6
S113031061507040A040E1F700C000008283318347
S113032090834FEB55E464E0415050406040E1F766
S113033000C000008283218390837FEBA5E444E026
S11303407150A0404040E1F700C0000082839183D7
S113035090835FEB65E474E0515060407040E1F7D6
S113036000C000003283918390838FEBA5E434E0D6
S11303708150A0403040E1F700C000002283918307
S113038090834FEB55E464E0415050406040E1F706
S113039000C00000E0C0E0E0F1E022E1228380E15F
S11303A0818380837FEB95E4A4E071509040A0406A
S11303B0E1F700C000003CE03283818380834FEB8F
S11303C055E464E0415050406040E1F700C0000053
S11303D098E09283818380837FEBA5E444E07150AD
S11303E0A0404040E1F700C0000092832183808355
S11303F05FEB65E474E0515060407040E1F700C089
S11304000000928331838083AFEB45E454E0A15034
S113041040405040E1F700C0000092839183808304
S11304206FEB75E4A4E061507040A040E1F700C0B8
S113043000009283918341E040835FEB65E474E0C4
S1130440515060407040E1F700C0000092839183F6
S113045053E05083AFEB65E474E0A150604070401A
S1130460E1F700C00000928391839083AFEB65E4D1
S113047074E0A15060407040E1F700C00000528376
S113048091839083AFEB65E474E0A15060407040C9
S1130490E1F700C00000428391839083AFEB65E4F1
S11304A074E0A15060407040E1F700C00000828316
S11304B091839083AFEB65E474E0A1506040704099
S11304C0E1F700C00000828351839083AFEB55E4D1
S11304D064E0A15050406040E1F700C00000828316
S11304E0418390837FEBA5E444E07150A0404040F9
S11304F0E1F700C000008283818390835FEB65E4B1
S113050074E0515060407040E1F700C00000828305
S1130510818330839FEBA5E434E09150A0403040C8
S1130520E1F700C000008283818320834FEB55E410
S113053064E0415050406040E1F700C00000828315
S1130540818380837FEB85E494E071508040904008
S1130550E1F700C00000E0E0F1E080E18283818304
S11305608083AFEB25E434E0A15020403040E1F734
S113057000C0000008950F931F93CF93DF9300D022
S113058000D01F92CDB7DEB73B9889EC07C036E0A8
S11305903A95F1F700C0815009F46EC03399F7CF52
S11305A086E507C096E09A95F1F700C0815009F4FA
S11305B065C0339BF7CF86E507C0A6E0AA95F1F79F
S11305C000C0815009F45CC03399F7CFFE01319625
S11305D085E0DF011D928A95E9F7AE014A5F5F4F1E
S11305E022C0B6E0BA95F1F700C0915011F44AC0A8
S11305F098E3339BF6CF38EC3A95F1F7220F339911
S113060008C00BC0A6E0AA95F1F700C0915011F400
S11306103BC09EE23399F6CF2160815049F7219384
S11306204E175F0719F088E020E0E2CFA981B0E01F
S1130630EA81F0E06B8170E04C8150E09D012E0F67
S11306403F1F260F371F240F351F33270D8110E05E
S113065020173107D9F4BA2FAA27EA0FFB1FF0930A
S11306602801E0932701762F6627460F571F5093E2
S11306702601409325010BC082E009C083E007C036
S113068084E005C085E003C086E001C087E00F90E8
S11306900F900F900F900F90DF91CF911F910F91BA
S11306A00895E4DCE0E0F1E090E1928391839083AB
S11306B0AFE4B3EC1197F1F700C0000083E182834B
S11306C091839083BFE70FE412E1B15000401040E2
S11306D0E1F700C000008283818390832FE73FE429
S11306E042E1215030404040E1F700C000008283E5
S11306F0818380838FE79FE4A2E181509040A040F2
S1130700E1F700C0000035E080E123E1D9E1C7E072
S1130710BAE196E1ABE17CE16DE15EE182832183A4
S1130720D0830FEB15E444E0015010404040E1F762
S113073000C0000082838183C0830FEB15E444E092
S1130740015010404040E1F700C0000082838183E3
S1130750B0830FEB15E444E0015010404040E1F752
S113076000C0000082839183A0830FEB15E444E072
S1130770015010404040E1F700C000009283918393
S113078090830FEB15E444E0015010404040E1F742
S113079000C000007283918380830FEB15E444E072
S11307A0015010404040E1F700C0000062838183A3
S11307B080830FEB15E444E0015010404040E1F722
S11307C000C000005283818380830FEB15E444E072
S11307D0015010404040E1F700C000000FE10283E7
S11307E0218380831FEB45E404E011504040004026
S11307F0E1F700C000002283218320831FEB45E43E
S113080004E0115040400040E1F700C000003150C6
S113081009F084CFE0E0F1E080E18283818380838A
S11308201FEF2EE934E2115020403040E1F700C0C0
S11308300000EF010CE010E1809129018130B1F159
S113084020F0823009F440C0F9CF339B25C03B9A95
S113085043984FE788E391E0415080409040E1F7AE
S113086000C0000088DE811110C020912701309162
S11308702801ADECBCEC36D0969587959695879576
S1130880969587956FE00CDC03C00A8389831883EF
S1130890809129018111D0CFAFE7B4E82EE1A150B6
S11308A0B0402040E1F700C00000C6CF81E07DDC0D
S11308B0109229013FEF44E38CE0315040408040E6
S11308C0E1F700C00000B8CF82E06FDC109229018C
S11308D09FEFA4E3BCE09150A040B040E1F700C01A
S11308E00000AACFA29FB001B39FC001A39F01D073
S11308F0B29F700D811D1124911D0895F894FFCFAE
S1130900101010FC24BAAE66CEDEA4FEEE161EDA7B
S113091012ADF3000250802004081040A02C0C18E3
S107092058D0C000E7
S9030000FC

+ 49
- 0
PoolClockHumidity/Debug/main.d Voir le fichier

@@ -0,0 +1,49 @@
main.d main.o: .././main.c \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdbool.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \
C:\Program\ Files\ (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.132\include/avr/iom88pa.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h

c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdbool.h:

c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h:

c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:

c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h:

c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h:

c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h:

C:\Program\ Files\ (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.132\include/avr/iom88pa.h:

c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h:

c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h:

c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h:

c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h:

c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h:

c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h:

c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h:

c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h:

c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h:

BIN
PoolClockHumidity/Debug/main.o Voir le fichier


+ 6
- 0
PoolClockHumidity/Debug/makedep.mk Voir le fichier

@@ -0,0 +1,6 @@
################################################################################
# Automatically-generated file. Do not edit or delete the file
################################################################################

main.c


+ 86
- 0
PoolClockHumidity/PoolClockHumidity.componentinfo.xml Voir le fichier

@@ -0,0 +1,86 @@
<?xml version="1.0" encoding="utf-8"?>
<Store xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="AtmelPackComponentManagement">
<ProjectComponents>
<ProjectComponent z:Id="i1" xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/">
<CApiVersion></CApiVersion>
<CBundle></CBundle>
<CClass>Device</CClass>
<CGroup>Startup</CGroup>
<CSub></CSub>
<CVariant></CVariant>
<CVendor>Atmel</CVendor>
<CVersion>1.2.0</CVersion>
<DefaultRepoPath>C:/Program Files (x86)\Atmel\Studio\7.0\Packs</DefaultRepoPath>
<DependentComponents xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
<Description></Description>
<Files xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d4p1:anyType i:type="FileInfo">
<AbsolutePath>C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.132\include</AbsolutePath>
<Attribute></Attribute>
<Category>include</Category>
<Condition>C</Condition>
<FileContentHash i:nil="true" />
<FileVersion></FileVersion>
<Name>include</Name>
<SelectString></SelectString>
<SourcePath></SourcePath>
</d4p1:anyType>
<d4p1:anyType i:type="FileInfo">
<AbsolutePath>C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.132\include\avr\iom88pa.h</AbsolutePath>
<Attribute></Attribute>
<Category>header</Category>
<Condition>C</Condition>
<FileContentHash>PWoJcvZZTeGBgzC7OP4j4w==</FileContentHash>
<FileVersion></FileVersion>
<Name>include/avr/iom88pa.h</Name>
<SelectString></SelectString>
<SourcePath></SourcePath>
</d4p1:anyType>
<d4p1:anyType i:type="FileInfo">
<AbsolutePath>C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.132\templates\main.c</AbsolutePath>
<Attribute>template</Attribute>
<Category>source</Category>
<Condition>C Exe</Condition>
<FileContentHash>kmH2PIOziCxLiJPtoFZn0Q==</FileContentHash>
<FileVersion></FileVersion>
<Name>templates/main.c</Name>
<SelectString>Main file (.c)</SelectString>
<SourcePath></SourcePath>
</d4p1:anyType>
<d4p1:anyType i:type="FileInfo">
<AbsolutePath>C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.132\templates\main.cpp</AbsolutePath>
<Attribute>template</Attribute>
<Category>source</Category>
<Condition>C Exe</Condition>
<FileContentHash>YXFphlh0CtZJU+ebktABgQ==</FileContentHash>
<FileVersion></FileVersion>
<Name>templates/main.cpp</Name>
<SelectString>Main file (.cpp)</SelectString>
<SourcePath></SourcePath>
</d4p1:anyType>
<d4p1:anyType i:type="FileInfo">
<AbsolutePath>C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.132\gcc\dev\atmega88pa</AbsolutePath>
<Attribute></Attribute>
<Category>libraryPrefix</Category>
<Condition>GCC</Condition>
<FileContentHash i:nil="true" />
<FileVersion></FileVersion>
<Name>gcc/dev/atmega88pa</Name>
<SelectString></SelectString>
<SourcePath></SourcePath>
</d4p1:anyType>
</Files>
<PackName>ATmega_DFP</PackName>
<PackPath>C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/Atmel.ATmega_DFP.pdsc</PackPath>
<PackVersion>1.2.132</PackVersion>
<PresentInProject>true</PresentInProject>
<ReferenceConditionId>ATmega88PA</ReferenceConditionId>
<RteComponents xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d4p1:string></d4p1:string>
</RteComponents>
<Status>Resolved</Status>
<VersionMode>Fixed</VersionMode>
<IsComponentInAtProject>true</IsComponentInAtProject>
</ProjectComponent>
</ProjectComponents>
</Store>

+ 126
- 0
PoolClockHumidity/PoolClockHumidity.cproj Voir le fichier

@@ -0,0 +1,126 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="14.0">
<PropertyGroup>
<SchemaVersion>2.0</SchemaVersion>
<ProjectVersion>7.0</ProjectVersion>
<ToolchainName>com.Atmel.AVRGCC8.C</ToolchainName>
<ProjectGuid>{568da8c2-e6fe-4e7c-a24e-9e4900dab3c9}</ProjectGuid>
<avrdevice>ATmega88PA</avrdevice>
<avrdeviceseries>none</avrdeviceseries>
<OutputType>Executable</OutputType>
<Language>C</Language>
<OutputFileName>$(MSBuildProjectName)</OutputFileName>
<OutputFileExtension>.elf</OutputFileExtension>
<OutputDirectory>$(MSBuildProjectDirectory)\$(Configuration)</OutputDirectory>
<AssemblyName>PoolClockHumidity</AssemblyName>
<Name>PoolClockHumidity</Name>
<RootNamespace>PoolClockHumidity</RootNamespace>
<ToolchainFlavour>Native</ToolchainFlavour>
<KeepTimersRunning>true</KeepTimersRunning>
<OverrideVtor>false</OverrideVtor>
<CacheFlash>true</CacheFlash>
<ProgFlashFromRam>true</ProgFlashFromRam>
<RamSnippetAddress />
<UncachedRange />
<preserveEEPROM>true</preserveEEPROM>
<OverrideVtorValue />
<BootSegment>2</BootSegment>
<eraseonlaunchrule>0</eraseonlaunchrule>
<AsfFrameworkConfig>
<framework-data xmlns="">
<options />
<configurations />
<files />
<documentation help="" />
<offline-documentation help="" />
<dependencies>
<content-extension eid="atmel.asf" uuidref="Atmel.ASF" version="3.34.1" />
</dependencies>
</framework-data>
</AsfFrameworkConfig>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<ToolchainSettings>
<AvrGcc>
<avrgcc.common.Device>-mmcu=atmega88pa -B "%24(PackRepoDir)\atmel\ATmega_DFP\1.2.132\gcc\dev\atmega88pa"</avrgcc.common.Device>
<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.common.outputfiles.usersignatures>False</avrgcc.common.outputfiles.usersignatures>
<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.directories.IncludePaths>
<ListValues>
<Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.2.132\include</Value>
</ListValues>
</avrgcc.compiler.directories.IncludePaths>
<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>
<avrgcc.linker.libraries.Libraries>
<ListValues>
<Value>libm</Value>
</ListValues>
</avrgcc.linker.libraries.Libraries>
<avrgcc.assembler.general.IncludePaths>
<ListValues>
<Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.2.132\include</Value>
</ListValues>
</avrgcc.assembler.general.IncludePaths>
</AvrGcc>
</ToolchainSettings>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<ToolchainSettings>
<AvrGcc>
<avrgcc.common.Device>-mmcu=atmega88pa -B "%24(PackRepoDir)\atmel\ATmega_DFP\1.2.132\gcc\dev\atmega88pa"</avrgcc.common.Device>
<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.common.outputfiles.usersignatures>False</avrgcc.common.outputfiles.usersignatures>
<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.directories.IncludePaths>
<ListValues>
<Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.2.132\include</Value>
</ListValues>
</avrgcc.compiler.directories.IncludePaths>
<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>
<avrgcc.linker.libraries.Libraries>
<ListValues>
<Value>libm</Value>
</ListValues>
</avrgcc.linker.libraries.Libraries>
<avrgcc.assembler.general.IncludePaths>
<ListValues>
<Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.2.132\include</Value>
</ListValues>
</avrgcc.assembler.general.IncludePaths>
<avrgcc.assembler.debugging.DebugLevel>Default (-Wa,-g)</avrgcc.assembler.debugging.DebugLevel>
</AvrGcc>
</ToolchainSettings>
</PropertyGroup>
<ItemGroup>
<Compile Include="main.c">
<SubType>compile</SubType>
</Compile>
</ItemGroup>
<Import Project="$(AVRSTUDIO_EXE_PATH)\\Vs\\Compiler.targets" />
</Project>

+ 558
- 0
PoolClockHumidity/main.c Voir le fichier

@@ -0,0 +1,558 @@
#include <stdbool.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#define F_CPU 20000000UL //20 MHz
#include <util/delay.h>

/* 7-Segment display: */
#define NUM_DIGITS 3U //3 Digits
#define DIGIT_TENS 2U //left
#define DIGIT_ONES 1U //middle
#define DIGIT_UNIT 0U //right
#define SELECT_DIGIT(digit) (1U << digit)

/* DHT22 peripherals: */
#define DDR_SENSOR DDRC
#define PORT_SENSOR PORTC
#define PIN_SENSOR PINC
#define SENSOR PINC3

/* DHT22 commands: */
#define SENSOR_sda_out DDR_SENSOR |= (1 << SENSOR)
#define SENSOR_sda_in DDR_SENSOR &= ~(1 << SENSOR) // release sda => hi in consequence of pullup
#define SENSOR_sda_low PORT_SENSOR &= ~(1 << SENSOR)
#define SENSOR_is_hi PIN_SENSOR & (1 << SENSOR)
#define SENSOR_is_low !(PIN_SENSOR & (1 << SENSOR))

#define MODE_MEASURE 0U
#define MODE_ANIMATION_1 1U
#define MODE_ANIMATION_2 2U

#define ANIMATION_DELAY_MS 70U

#define ANIMATION_START_DELAY_MS 70U

#define BUTTON_THRESHOLD 50 //software debounce

/* Symbol indexes: */
#define SYM_n 10U
#define SYM_o 11U
#define SYM_E 12U
#define SYM_R 13U
#define SYM_DEG_CELCIUS 14U
#define SYM_P_P 15U
#define SYM_OFF 16U
#define SYM_DASH 17U
#define SYM_I 18U
#define SYM_SEG_A 19U
#define SYM_SEG_B 20U
#define SYM_SEG_C 21U
#define SYM_SEG_D 22U
#define SYM_SEG_E 23U
#define SYM_SEG_F 24U
#define SYM_SEG_AB 25U
#define SYM_SEG_BCD 26U
#define SYM_SEG_CD 27U
#define SYM_SEG_DE 28U
#define SYM_SEG_DEF 29U
#define SYM_SEG_AEF 30U
#define SYM_SEG_AF 31U

/*
7-Segment Layout:

A
F B
G
E C
D P

Pin 7 6 5 4 3 2 1 0
Segment A F B E D C G P
*/
static uint8_t g_au8Symbols[32U] =
{
/* 00 */ 0b11111100U, //0 (ABCDEF)
/* 01 */ 0b00100100U, //1 (BC)
/* 02 */ 0b10111010U, //2 (ABDEG)
/* 03 */ 0b10101110U, //3 (ABCDG)
/* 04 */ 0b01100110U, //4 (BCFG)
/* 05 */ 0b11001110U, //5 (ACDFG)
/* 06 */ 0b11011110U, //6 (ACDEFG)
/* 07 */ 0b10100100U, //7 (ABC)
/* 08 */ 0b11111110U, //8 (ABCDEFG)
/* 09 */ 0b11101110U, //9 (ABCDFG)
/* 10 */ 0b00010110U, //n (CEG) SYM_n
/* 11 */ 0b00011110U, //o (CDEG) SYM_o
/* 12 */ 0b11011010U, //E (ADEFG) SYM_E
/* 13 */ 0b00010010U, //r (EG) SYM_r
/* 14 */ 0b10101101U, //degC (ABCDP) SYM_DEG_CELCIUS
/* 15 */ 0b11110011U, //P. (ABEFGP) SYM_P_P
/* 16 */ 0b00000000U, //OFF SYM_OFF
/* 17 */ 0b00000010U, //- (G) SYM_DASH
/* 18 */ 0b01010000U, //I (EF) SYM_I
/* 19 */ 0b10000000U, //SegA SYM_SEG_A
/* 20 */ 0b00100000U, //SegB SYM_SEG_B
/* 21 */ 0b00000100U, //SegC SYM_SEG_C
/* 22 */ 0b00001000U, //SegD SYM_SEG_D
/* 23 */ 0b00010000U, //SegE SYM_SEG_E
/* 24 */ 0b01000000U, //SegF SYM_SEG_F
/* 25 */ 0b10100000U, //SegAB SYM_SEG_AB
/* 26 */ 0b00101100U, //SegBCD SYM_SEG_BCD
/* 27 */ 0b00001100U, //SegCD SYM_SEG_CD
/* 28 */ 0b00011000U, //SegDE SYM_SEG_DE
/* 29 */ 0b01011000U, //SegDEF SYM_SEG_DEF
/* 30 */ 0b11010000U, //SegAEF SYM_SEG_AEF
/* 31 */ 0b11000000U //SegAF SYM_SEG_AF
};

static uint8_t g_u8ButtonCountTop = 0U; //upper button counter
static uint8_t g_u8ButtonCountBot = 0U; //lower button counter
static uint8_t g_u8Mode = MODE_MEASURE; //Current display mode


uint16_t g_u16Humidity = 0U;
uint16_t g_u16Temperature = 0U;

uint8_t g_u8ISRDigitSelect = 0U;
uint8_t g_au8Digits[3U] =
{
SYM_OFF, //unit
SYM_OFF, //ones
SYM_OFF //tens
};

void s_vInit( void );
void s_vSetValue( uint8_t u8Value, uint8_t u8Unit );
void s_vSetDisplayDigits( uint8_t u8Tens, uint8_t u8Ones, uint8_t u8Unit );

void s_vReadButtons( void );
void s_vShowAnim( uint8_t u8Select );

uint8_t s_u8ReadSensor( void );

/************************************************************************/
/* Timer1 ISR - show values on display */
/************************************************************************/
ISR ( TIMER1_COMPA_vect )
{
PORTB = 0;
PORTD = 0;
_delay_us(2);
PORTB = SELECT_DIGIT(g_u8ISRDigitSelect);
PORTD = g_au8Symbols[g_au8Digits[g_u8ISRDigitSelect]];
g_u8ISRDigitSelect++;
if (g_u8ISRDigitSelect > 2U)
{
g_u8ISRDigitSelect = 0U;
}
/* Read and evaluate button status */
s_vReadButtons();
}

/************************************************************************/
/* main() */
/************************************************************************/
int main(void)
{
uint8_t u8ErrorCode = 0U;
uint8_t u8Loop = 0U;

s_vInit();
s_vSetDisplayDigits( SYM_OFF, SYM_OFF, SYM_OFF );
_delay_ms(10);
s_vSetDisplayDigits( SYM_SEG_A, SYM_OFF, SYM_OFF );
_delay_ms(300);
s_vSetDisplayDigits( SYM_SEG_A, SYM_SEG_A, SYM_OFF );
_delay_ms(300);
s_vSetDisplayDigits( SYM_SEG_A, SYM_SEG_A, SYM_SEG_A );
_delay_ms(300);
while ( u8Loop < 5U )
{
s_vSetDisplayDigits( SYM_OFF, SYM_SEG_A, SYM_SEG_AB );
_delay_ms(ANIMATION_START_DELAY_MS);
s_vSetDisplayDigits( SYM_OFF, SYM_OFF, 7U );
_delay_ms(ANIMATION_START_DELAY_MS);
s_vSetDisplayDigits( SYM_OFF, SYM_OFF, SYM_SEG_BCD );
_delay_ms(ANIMATION_START_DELAY_MS);
s_vSetDisplayDigits( SYM_OFF, SYM_SEG_D, SYM_SEG_CD );
_delay_ms(ANIMATION_START_DELAY_MS);
s_vSetDisplayDigits( SYM_SEG_D, SYM_SEG_D, SYM_SEG_D );
_delay_ms(ANIMATION_START_DELAY_MS);
s_vSetDisplayDigits( SYM_SEG_DE, SYM_SEG_D, SYM_OFF );
_delay_ms(ANIMATION_START_DELAY_MS);
s_vSetDisplayDigits( SYM_SEG_DEF, SYM_OFF, SYM_OFF );
_delay_ms(ANIMATION_START_DELAY_MS);
s_vSetDisplayDigits( SYM_SEG_AEF, SYM_OFF, SYM_OFF );
_delay_ms(ANIMATION_START_DELAY_MS);
s_vSetDisplayDigits( SYM_SEG_AF, SYM_SEG_A, SYM_OFF );
_delay_ms(ANIMATION_START_DELAY_MS);
s_vSetDisplayDigits( SYM_SEG_A, SYM_SEG_A, SYM_SEG_A );
_delay_ms(ANIMATION_START_DELAY_MS);
u8Loop++;
}
/* Set default value: */
//s_vSetDisplayDigits( SYM_DASH, SYM_DASH, SYM_DASH );
/* wait 3 seconds for humity sensor */
//_delay_ms(3000);
/* Set default value: */
s_vSetDisplayDigits( SYM_OFF, SYM_OFF, SYM_OFF );
_delay_ms(600);

while ( 1 )
{
switch ( g_u8Mode )
{
case MODE_MEASURE:
if ( SENSOR_is_hi )
{
SENSOR_sda_out;
SENSOR_sda_low;
_delay_ms(20);
u8ErrorCode = s_u8ReadSensor();
if ( 0U == u8ErrorCode )
{
s_vSetValue( g_u16Humidity / 10, SYM_P_P );
//vSetDisplayValues( g_u16Temperature / 10, SYM_DEG_CELCIUS );
}
else
{
s_vSetDisplayDigits( SYM_E, u8ErrorCode, SYM_OFF );
}
}
if ( g_u8Mode == MODE_MEASURE )
{
_delay_ms(500);
}
break;
case MODE_ANIMATION_1:
s_vShowAnim(g_u8Mode);
g_u8Mode = MODE_MEASURE;
_delay_ms(200);
break;
case MODE_ANIMATION_2:
s_vShowAnim(g_u8Mode);
g_u8Mode = MODE_MEASURE;
_delay_ms(200);
break;
default:
break;
} //end switch

// _delay_ms(3000); //wait 3 seconds for new measurement
} //end while(1)

return 0;
}

/************************************************************************/
/* Initialize inputs and outputs */
/************************************************************************/
void s_vInit( void )
{
/* Port D - Pins 0-7: Outputs */
DDRD = 0b11111111U;
/* Port B - Pins 0-2: Outputs */
DDRB = 0b00000111U;
/* Port C - Pins 4-5: Inputs with internal Pull-up */
PORTC = 0b00110000U;
/* Sensor init: */
DDR_SENSOR &= ~(1 << SENSOR); // define as input
PORT_SENSOR &= ~(1 << SENSOR); // disable pullup
/* 16-bit TIMER1 in CTC mode
* prescaler = 8
* 20 MHz / 8 = 2.5 MHz
* Compare value = 2500 => 1 ms IRQ
*/
TCCR1A = 0U;
TCCR1B = (1<<WGM12) | (1<<CS11);
OCR1A = 2500U;
TIMSK1 |= (1<<OCIE1A);
sei();
return; //void
}

/************************************************************************/
/* Set new values to be shown on display */
/************************************************************************/
void s_vSetValue( uint8_t u8Value, uint8_t u8Unit )
{
uint8_t u8Tmp = u8Value / 10U;
s_vSetDisplayDigits(u8Tmp, u8Value - (u8Tmp * 10U), u8Unit);

return; //void
}

/************************************************************************/
/* Set display digits individually */
/************************************************************************/
void s_vSetDisplayDigits( uint8_t u8Tens, uint8_t u8Ones, uint8_t u8Unit )
{
g_au8Digits[DIGIT_TENS] = u8Tens;
g_au8Digits[DIGIT_ONES] = u8Ones;
g_au8Digits[DIGIT_UNIT] = u8Unit;
return; //void
}

/************************************************************************/
/* Read button status */
/************************************************************************/
void s_vReadButtons( void )
{
if ( !(PINC & (1<<PINC4)) ) //if button '+' pressed
{
g_u8ButtonCountTop++;
}
else
{
g_u8ButtonCountTop = 0U; //reset button counter
}
if ( !(PINC & (1<<PINC5)) ) //if button '-' pressed
{
g_u8ButtonCountBot++;
}
else
{
g_u8ButtonCountBot = 0U; //reset button counter
}
if ( g_u8ButtonCountTop > BUTTON_THRESHOLD )
{
g_u8ButtonCountTop = 0U; //reset top counter
g_u8Mode = MODE_ANIMATION_1;
}
else if ( g_u8ButtonCountBot > BUTTON_THRESHOLD )
{
g_u8ButtonCountBot = 0U; //reset bottom counter
g_u8Mode = MODE_ANIMATION_2;
}

return; //void
}
/************************************************************************/
/* */
/************************************************************************/
void s_vShowAnim( uint8_t u8Select )
{
s_vSetDisplayDigits( SYM_OFF, SYM_OFF, SYM_OFF );
_delay_ms(ANIMATION_DELAY_MS);
switch ( u8Select )
{
case MODE_ANIMATION_1: //fade from left to right and from right to left
s_vSetDisplayDigits( SYM_I, SYM_OFF, SYM_OFF );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( SYM_E, SYM_OFF, SYM_OFF );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( 8U, SYM_OFF, SYM_OFF );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( 8U, SYM_I, SYM_OFF );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( 8U, SYM_E, SYM_OFF );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( 8U, 8U, SYM_OFF );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( 8U, 8U, 1U );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( 8U, 8U, 3U );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( 8U, 8U, 8U );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( 8U, 8U, 8U );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( 8U, 8U, 3U );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( 8U, 8U, 1U );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( 8U, 8U, SYM_OFF );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( 8U, SYM_E, SYM_OFF );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( 8U, SYM_I, SYM_OFF );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( 8U, SYM_OFF, SYM_OFF );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( SYM_E, SYM_OFF, SYM_OFF );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( SYM_I, SYM_OFF, SYM_OFF );
_delay_ms(ANIMATION_DELAY_MS);
break;
case MODE_ANIMATION_2: //fade from left to right and clear
s_vSetDisplayDigits( SYM_I, SYM_OFF, SYM_OFF );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( SYM_E, SYM_OFF, SYM_OFF );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( 8U, SYM_OFF, SYM_OFF );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( 8U, SYM_I, SYM_OFF );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( 8U, SYM_E, SYM_OFF );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( 8U, 8U, SYM_OFF );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( 8U, 8U, 1U );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( 8U, 8U, 3U );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( 8U, 8U, 8U );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( 3U, 8U, 8U );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( 1U, 8U, 8U );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( SYM_OFF, 8U, 8U );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( SYM_OFF, 3U, 8U );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( SYM_OFF, 1U, 8U );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( SYM_OFF, SYM_OFF, 8U );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( SYM_OFF, SYM_OFF, SYM_E );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( SYM_OFF, SYM_OFF, SYM_I );
_delay_ms(ANIMATION_DELAY_MS);
s_vSetDisplayDigits( SYM_OFF, SYM_OFF, SYM_OFF );
_delay_ms(ANIMATION_DELAY_MS);
break;
default:
break;
} //end switch
s_vSetDisplayDigits( SYM_OFF, SYM_OFF, SYM_OFF );
_delay_ms(ANIMATION_DELAY_MS);
return; //void
}

/************************************************************************/
/* Read humidity and temperature from DHT22 */
/************************************************************************/
uint8_t s_u8ReadSensor( void )
{
uint8_t timeout = 200;
SENSOR_sda_in;

// Bus master has released time min: 20us, typ: 30us, max: 200us
while ( SENSOR_is_hi )
{
_delay_us(1);
if ( !timeout-- )
{
return 2;
}
}

// AM2302 response signal min: 75us typ:80us max:85us
timeout = 85;
while(SENSOR_is_low)
{
_delay_us(1);
if (!timeout--)
{
return 3;
}
} // response to low time

timeout = 85;
while(SENSOR_is_hi)
{
_delay_us(1);
if (!timeout--)
{
return 4;
}
} // response to high time


/*
* time in us: min typ max
* signal 0 high time: 22 26 30 (bit=0)
* signal 1 high time: 68 70 75 (bit=1)
* signal 0,1 down time: 48 50 55
*/

uint8_t sensor_data[5]={0};

for(uint8_t i = 0; i < 5; i++)
{
uint8_t sensor_byte = 0;
// get 8 bits from sensor
for(uint8_t j = 1; j <= 8; j++)
{
// wait for sensor response
timeout = 55;
while(SENSOR_is_low)
{
_delay_us(1);

// if timeout == 0 => sensor do not response
if (!timeout--)
{
return 5;
}
}

// wait 30 us to check if bit is logical "1" or "0"
_delay_us(30);
sensor_byte <<= 1; // add new lower bit

// If sda ist high after 30 us then bit is logical "1" else it was a logical "0"
// For a logical "1" sda have to be low after 75 us.
if (SENSOR_is_hi)
{
sensor_byte |= 1; // add logical "1"
timeout = 45; // 30us - 75us = 45us

while(SENSOR_is_hi)
{
_delay_us(1);
if (!timeout--)
{
return 6;
}
}
}
}

sensor_data[i] = sensor_byte;
}

// checksum
if ( ((sensor_data[0] + sensor_data[1] + sensor_data[2] + sensor_data[3]) & 0xff ) != sensor_data[4])
{
// debug output
//printf("%b %b %b %b %b %b" CR, sensor_data[0], sensor_data[1], sensor_data[2], sensor_data[3], sensor_data[4], ((sensor_data[0]+sensor_data[1]+sensor_data[2]+sensor_data[3]) & 0xff ));
return 7;
}

g_u16Humidity = (sensor_data[0] << 8) + sensor_data[1];
g_u16Temperature = (sensor_data[2] << 8) + sensor_data[3];

return 0;
}

+ 1
- 0
README.md Voir le fichier

@@ -0,0 +1 @@
# Pool Clock

Chargement…
Annuler
Enregistrer