diff --git a/build/default/debug/main.o b/build/default/debug/main.o
deleted file mode 100644
index bd87658..0000000
Binary files a/build/default/debug/main.o and /dev/null differ
diff --git a/build/default/debug/main.o.d b/build/default/debug/main.o.d
deleted file mode 100644
index ded4f03..0000000
--- a/build/default/debug/main.o.d
+++ /dev/null
@@ -1,57 +0,0 @@
-build/default/debug/main.o.d build/default/debug/main.o: main.c \
- /opt/avr8-gnu-toolchain-linux_x86_64/avr/include/avr/io.h \
- /opt/avr8-gnu-toolchain-linux_x86_64/avr/include/avr/sfr_defs.h \
- /opt/avr8-gnu-toolchain-linux_x86_64/avr/include/inttypes.h \
- /opt/avr8-gnu-toolchain-linux_x86_64/lib/gcc/avr/7.3.0/include/stdint.h \
- /opt/avr8-gnu-toolchain-linux_x86_64/avr/include/stdint.h \
- /home/sergeyyarkov/.mchp_packs/Microchip/ATtiny_DFP/3.0.151/include/avr/iotn45.h \
- /opt/avr8-gnu-toolchain-linux_x86_64/avr/include/avr/portpins.h \
- /opt/avr8-gnu-toolchain-linux_x86_64/avr/include/avr/common.h \
- /opt/avr8-gnu-toolchain-linux_x86_64/avr/include/avr/version.h \
- /opt/avr8-gnu-toolchain-linux_x86_64/avr/include/avr/fuse.h \
- /opt/avr8-gnu-toolchain-linux_x86_64/avr/include/avr/lock.h \
- /opt/avr8-gnu-toolchain-linux_x86_64/avr/include/avr/interrupt.h \
- /opt/avr8-gnu-toolchain-linux_x86_64/avr/include/util/delay.h \
- /opt/avr8-gnu-toolchain-linux_x86_64/avr/include/util/delay_basic.h \
- /opt/avr8-gnu-toolchain-linux_x86_64/avr/include/math.h onewire.h \
- /opt/avr8-gnu-toolchain-linux_x86_64/avr/include/stdio.h \
- /opt/avr8-gnu-toolchain-linux_x86_64/lib/gcc/avr/7.3.0/include/stdarg.h \
- /opt/avr8-gnu-toolchain-linux_x86_64/lib/gcc/avr/7.3.0/include/stddef.h
-
-/opt/avr8-gnu-toolchain-linux_x86_64/avr/include/avr/io.h:
-
-/opt/avr8-gnu-toolchain-linux_x86_64/avr/include/avr/sfr_defs.h:
-
-/opt/avr8-gnu-toolchain-linux_x86_64/avr/include/inttypes.h:
-
-/opt/avr8-gnu-toolchain-linux_x86_64/lib/gcc/avr/7.3.0/include/stdint.h:
-
-/opt/avr8-gnu-toolchain-linux_x86_64/avr/include/stdint.h:
-
-/home/sergeyyarkov/.mchp_packs/Microchip/ATtiny_DFP/3.0.151/include/avr/iotn45.h:
-
-/opt/avr8-gnu-toolchain-linux_x86_64/avr/include/avr/portpins.h:
-
-/opt/avr8-gnu-toolchain-linux_x86_64/avr/include/avr/common.h:
-
-/opt/avr8-gnu-toolchain-linux_x86_64/avr/include/avr/version.h:
-
-/opt/avr8-gnu-toolchain-linux_x86_64/avr/include/avr/fuse.h:
-
-/opt/avr8-gnu-toolchain-linux_x86_64/avr/include/avr/lock.h:
-
-/opt/avr8-gnu-toolchain-linux_x86_64/avr/include/avr/interrupt.h:
-
-/opt/avr8-gnu-toolchain-linux_x86_64/avr/include/util/delay.h:
-
-/opt/avr8-gnu-toolchain-linux_x86_64/avr/include/util/delay_basic.h:
-
-/opt/avr8-gnu-toolchain-linux_x86_64/avr/include/math.h:
-
-onewire.h:
-
-/opt/avr8-gnu-toolchain-linux_x86_64/avr/include/stdio.h:
-
-/opt/avr8-gnu-toolchain-linux_x86_64/lib/gcc/avr/7.3.0/include/stdarg.h:
-
-/opt/avr8-gnu-toolchain-linux_x86_64/lib/gcc/avr/7.3.0/include/stddef.h:
diff --git a/build/default/debug/onewire.o b/build/default/debug/onewire.o
deleted file mode 100644
index de67418..0000000
Binary files a/build/default/debug/onewire.o and /dev/null differ
diff --git a/build/default/debug/onewire.o.d b/build/default/debug/onewire.o.d
deleted file mode 100644
index 429c516..0000000
--- a/build/default/debug/onewire.o.d
+++ /dev/null
@@ -1,58 +0,0 @@
-build/default/debug/onewire.o.d build/default/debug/onewire.o: onewire.c \
- onewire.h \
- /opt/avr8-gnu-toolchain-linux_x86_64/lib/gcc/avr/7.3.0/include/stdint.h \
- /opt/avr8-gnu-toolchain-linux_x86_64/avr/include/stdint.h \
- /opt/avr8-gnu-toolchain-linux_x86_64/avr/include/stdio.h \
- /opt/avr8-gnu-toolchain-linux_x86_64/avr/include/inttypes.h \
- /opt/avr8-gnu-toolchain-linux_x86_64/lib/gcc/avr/7.3.0/include/stdarg.h \
- /opt/avr8-gnu-toolchain-linux_x86_64/lib/gcc/avr/7.3.0/include/stddef.h \
- /opt/avr8-gnu-toolchain-linux_x86_64/avr/include/avr/interrupt.h \
- /opt/avr8-gnu-toolchain-linux_x86_64/avr/include/avr/io.h \
- /opt/avr8-gnu-toolchain-linux_x86_64/avr/include/avr/sfr_defs.h \
- /home/sergeyyarkov/.mchp_packs/Microchip/ATtiny_DFP/3.0.151/include/avr/iotn45.h \
- /opt/avr8-gnu-toolchain-linux_x86_64/avr/include/avr/portpins.h \
- /opt/avr8-gnu-toolchain-linux_x86_64/avr/include/avr/common.h \
- /opt/avr8-gnu-toolchain-linux_x86_64/avr/include/avr/version.h \
- /opt/avr8-gnu-toolchain-linux_x86_64/avr/include/avr/fuse.h \
- /opt/avr8-gnu-toolchain-linux_x86_64/avr/include/avr/lock.h \
- /opt/avr8-gnu-toolchain-linux_x86_64/avr/include/util/delay.h \
- /opt/avr8-gnu-toolchain-linux_x86_64/avr/include/util/delay_basic.h \
- /opt/avr8-gnu-toolchain-linux_x86_64/avr/include/math.h
-
-onewire.h:
-
-/opt/avr8-gnu-toolchain-linux_x86_64/lib/gcc/avr/7.3.0/include/stdint.h:
-
-/opt/avr8-gnu-toolchain-linux_x86_64/avr/include/stdint.h:
-
-/opt/avr8-gnu-toolchain-linux_x86_64/avr/include/stdio.h:
-
-/opt/avr8-gnu-toolchain-linux_x86_64/avr/include/inttypes.h:
-
-/opt/avr8-gnu-toolchain-linux_x86_64/lib/gcc/avr/7.3.0/include/stdarg.h:
-
-/opt/avr8-gnu-toolchain-linux_x86_64/lib/gcc/avr/7.3.0/include/stddef.h:
-
-/opt/avr8-gnu-toolchain-linux_x86_64/avr/include/avr/interrupt.h:
-
-/opt/avr8-gnu-toolchain-linux_x86_64/avr/include/avr/io.h:
-
-/opt/avr8-gnu-toolchain-linux_x86_64/avr/include/avr/sfr_defs.h:
-
-/home/sergeyyarkov/.mchp_packs/Microchip/ATtiny_DFP/3.0.151/include/avr/iotn45.h:
-
-/opt/avr8-gnu-toolchain-linux_x86_64/avr/include/avr/portpins.h:
-
-/opt/avr8-gnu-toolchain-linux_x86_64/avr/include/avr/common.h:
-
-/opt/avr8-gnu-toolchain-linux_x86_64/avr/include/avr/version.h:
-
-/opt/avr8-gnu-toolchain-linux_x86_64/avr/include/avr/fuse.h:
-
-/opt/avr8-gnu-toolchain-linux_x86_64/avr/include/avr/lock.h:
-
-/opt/avr8-gnu-toolchain-linux_x86_64/avr/include/util/delay.h:
-
-/opt/avr8-gnu-toolchain-linux_x86_64/avr/include/util/delay_basic.h:
-
-/opt/avr8-gnu-toolchain-linux_x86_64/avr/include/math.h:
diff --git a/build/default/production/main.o b/build/default/production/main.o
index a90d857..18ed3fd 100644
Binary files a/build/default/production/main.o and b/build/default/production/main.o differ
diff --git a/build/default/production/onewire.o b/build/default/production/onewire.o
index 3c4316c..0dfc8cc 100644
Binary files a/build/default/production/onewire.o and b/build/default/production/onewire.o differ
diff --git a/dist/default/debug/attiny45v_thermometer.X.debug.elf b/dist/default/debug/attiny45v_thermometer.X.debug.elf
deleted file mode 100755
index 8d832e1..0000000
Binary files a/dist/default/debug/attiny45v_thermometer.X.debug.elf and /dev/null differ
diff --git a/dist/default/debug/attiny45v_thermometer.X.debug.map b/dist/default/debug/attiny45v_thermometer.X.debug.map
deleted file mode 100644
index dc0831b..0000000
--- a/dist/default/debug/attiny45v_thermometer.X.debug.map
+++ /dev/null
@@ -1,480 +0,0 @@
-Archive member included to satisfy reference by file (symbol)
-
-/opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_exit.o)
- /home/sergeyyarkov/.mchp_packs/Microchip/ATtiny_DFP/3.0.151/gcc/dev/attiny45/avr25/crtattiny45.o (exit)
-/opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_clear_bss.o)
- build/default/debug/main.o (__do_clear_bss)
-
-Discarded input sections
-
- .data 0x0000000000000000 0x0 /home/sergeyyarkov/.mchp_packs/Microchip/ATtiny_DFP/3.0.151/gcc/dev/attiny45/avr25/crtattiny45.o
- .bss 0x0000000000000000 0x0 /home/sergeyyarkov/.mchp_packs/Microchip/ATtiny_DFP/3.0.151/gcc/dev/attiny45/avr25/crtattiny45.o
- .text 0x0000000000000000 0x0 build/default/debug/main.o
- .data 0x0000000000000000 0x0 build/default/debug/main.o
- .bss 0x0000000000000000 0x0 build/default/debug/main.o
- .text 0x0000000000000000 0x0 build/default/debug/onewire.o
- .data 0x0000000000000000 0x0 build/default/debug/onewire.o
- .bss 0x0000000000000000 0x0 build/default/debug/onewire.o
- .text 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_exit.o)
- .data 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_exit.o)
- .bss 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_exit.o)
- .text.libgcc.mul
- 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_exit.o)
- .text.libgcc.div
- 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_exit.o)
- .text.libgcc 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_exit.o)
- .text.libgcc.prologue
- 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_exit.o)
- .text.libgcc.builtins
- 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_exit.o)
- .text.libgcc.fmul
- 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_exit.o)
- .text.libgcc.fixed
- 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_exit.o)
- .text 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_clear_bss.o)
- .data 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_clear_bss.o)
- .bss 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_clear_bss.o)
- .text.libgcc.mul
- 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_clear_bss.o)
- .text.libgcc.div
- 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_clear_bss.o)
- .text.libgcc 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_clear_bss.o)
- .text.libgcc.prologue
- 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_clear_bss.o)
- .text.libgcc.builtins
- 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_clear_bss.o)
- .text.libgcc.fmul
- 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_clear_bss.o)
- .text.libgcc.fixed
- 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_clear_bss.o)
-
-Memory Configuration
-
-Name Origin Length Attributes
-text 0x0000000000000000 0x0000000000001000 xr
-data 0x0000000000800060 0x0000000000000100 rw !x
-eeprom 0x0000000000810000 0x0000000000000100 rw !x
-fuse 0x0000000000820000 0x0000000000000003 rw !x
-lock 0x0000000000830000 0x0000000000000400 rw !x
-signature 0x0000000000840000 0x0000000000000400 rw !x
-user_signatures 0x0000000000850000 0x0000000000000400 rw !x
-*default* 0x0000000000000000 0xffffffffffffffff
-
-Linker script and memory map
-
-LOAD /home/sergeyyarkov/.mchp_packs/Microchip/ATtiny_DFP/3.0.151/gcc/dev/attiny45/avr25/crtattiny45.o
-LOAD build/default/debug/main.o
-LOAD build/default/debug/onewire.o
- 0x0000000000000001 __MPLAB_BUILD = 0x1
- 0x0000000000000001 __ICD2RAM = 0x1
- 0x0000000000000001 __MPLAB_DEBUG = 0x1
- 0x0000000000000001 __DEBUG = 0x1
-START GROUP
-LOAD /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/../../../../avr/lib/avr25/libm.a
-END GROUP
-START GROUP
-LOAD /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a
-LOAD /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/../../../../avr/lib/avr25/libm.a
-LOAD /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/../../../../avr/lib/avr25/libc.a
-LOAD /home/sergeyyarkov/.mchp_packs/Microchip/ATtiny_DFP/3.0.151/gcc/dev/attiny45/avr25/libattiny45.a
-END GROUP
- 0x0000000000000000 __TEXT_REGION_ORIGIN__ = DEFINED (__TEXT_REGION_ORIGIN__)?__TEXT_REGION_ORIGIN__:0x0
- [0x0000000000800060] __DATA_REGION_ORIGIN__ = DEFINED (__DATA_REGION_ORIGIN__)?__DATA_REGION_ORIGIN__:0x800060
- [0x0000000000001000] __TEXT_REGION_LENGTH__ = DEFINED (__TEXT_REGION_LENGTH__)?__TEXT_REGION_LENGTH__:0x2000
- [0x0000000000000100] __DATA_REGION_LENGTH__ = DEFINED (__DATA_REGION_LENGTH__)?__DATA_REGION_LENGTH__:0xffa0
- [0x0000000000000100] __EEPROM_REGION_LENGTH__ = DEFINED (__EEPROM_REGION_LENGTH__)?__EEPROM_REGION_LENGTH__:0x10000
- [0x0000000000000003] __FUSE_REGION_LENGTH__ = DEFINED (__FUSE_REGION_LENGTH__)?__FUSE_REGION_LENGTH__:0x400
- 0x0000000000000400 __LOCK_REGION_LENGTH__ = DEFINED (__LOCK_REGION_LENGTH__)?__LOCK_REGION_LENGTH__:0x400
- 0x0000000000000400 __SIGNATURE_REGION_LENGTH__ = DEFINED (__SIGNATURE_REGION_LENGTH__)?__SIGNATURE_REGION_LENGTH__:0x400
- 0x0000000000000400 __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 0x0000000000000000 0x22c
- *(.vectors)
- .vectors 0x0000000000000000 0x1e /home/sergeyyarkov/.mchp_packs/Microchip/ATtiny_DFP/3.0.151/gcc/dev/attiny45/avr25/crtattiny45.o
- 0x0000000000000000 __vectors
- 0x0000000000000000 __vector_default
- *(.vectors)
- *(.progmem.gcc*)
- 0x000000000000001e . = ALIGN (0x2)
- 0x000000000000001e __trampolines_start = .
- *(.trampolines)
- .trampolines 0x000000000000001e 0x0 linker stubs
- *(.trampolines*)
- 0x000000000000001e __trampolines_end = .
- *libprintf_flt.a:*(.progmem.data)
- *libc.a:*(.progmem.data)
- *(.progmem*)
- 0x000000000000001e . = ALIGN (0x2)
- *(.jumptables)
- *(.jumptables*)
- *(.lowtext)
- *(.lowtext*)
- 0x000000000000001e __ctors_start = .
- *(.ctors)
- 0x000000000000001e __ctors_end = .
- 0x000000000000001e __dtors_start = .
- *(.dtors)
- 0x000000000000001e __dtors_end = .
- SORT(*)(.ctors)
- SORT(*)(.dtors)
- *(.init0)
- .init0 0x000000000000001e 0x0 /home/sergeyyarkov/.mchp_packs/Microchip/ATtiny_DFP/3.0.151/gcc/dev/attiny45/avr25/crtattiny45.o
- 0x000000000000001e __init
- *(.init0)
- *(.init1)
- *(.init1)
- *(.init2)
- .init2 0x000000000000001e 0xc /home/sergeyyarkov/.mchp_packs/Microchip/ATtiny_DFP/3.0.151/gcc/dev/attiny45/avr25/crtattiny45.o
- *(.init2)
- *(.init3)
- *(.init3)
- *(.init4)
- .init4 0x000000000000002a 0x10 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_clear_bss.o)
- 0x000000000000002a __do_clear_bss
- *(.init4)
- *(.init5)
- *(.init5)
- *(.init6)
- *(.init6)
- *(.init7)
- *(.init7)
- *(.init8)
- *(.init8)
- *(.init9)
- .init9 0x000000000000003a 0x4 /home/sergeyyarkov/.mchp_packs/Microchip/ATtiny_DFP/3.0.151/gcc/dev/attiny45/avr25/crtattiny45.o
- *(.init9)
- *(.text)
- .text 0x000000000000003e 0x2 /home/sergeyyarkov/.mchp_packs/Microchip/ATtiny_DFP/3.0.151/gcc/dev/attiny45/avr25/crtattiny45.o
- 0x000000000000003e __vector_1
- 0x000000000000003e __vector_12
- 0x000000000000003e __bad_interrupt
- 0x000000000000003e __vector_6
- 0x000000000000003e __vector_3
- 0x000000000000003e __vector_11
- 0x000000000000003e __vector_13
- 0x000000000000003e __vector_7
- 0x000000000000003e __vector_5
- 0x000000000000003e __vector_4
- 0x000000000000003e __vector_9
- 0x000000000000003e __vector_2
- 0x000000000000003e __vector_8
- 0x000000000000003e __vector_14
- 0x000000000000003e __vector_10
- 0x0000000000000040 . = ALIGN (0x2)
- *(.text.*)
- .text.DallasTemp_ReadScratchpad
- 0x0000000000000040 0x2c build/default/debug/main.o
- 0x0000000000000040 DallasTemp_ReadScratchpad
- .text.DallasTemp_Convert
- 0x000000000000006c 0x14 build/default/debug/main.o
- 0x000000000000006c DallasTemp_Convert
- .text.DallasTemp_GetTemperature
- 0x0000000000000080 0x96 build/default/debug/main.o
- 0x0000000000000080 DallasTemp_GetTemperature
- .text.MCU_Init
- 0x0000000000000116 0x8 build/default/debug/main.o
- 0x0000000000000116 MCU_Init
- .text.main 0x000000000000011e 0x26 build/default/debug/main.o
- 0x000000000000011e main
- .text.OneWire_Presence
- 0x0000000000000144 0x32 build/default/debug/onewire.o
- 0x0000000000000144 OneWire_Presence
- .text.OneWire_WriteByte
- 0x0000000000000176 0x3c build/default/debug/onewire.o
- 0x0000000000000176 OneWire_WriteByte
- .text.OneWire_ReadByte
- 0x00000000000001b2 0x34 build/default/debug/onewire.o
- 0x00000000000001b2 OneWire_ReadByte
- .text.OneWire_SkipROM
- 0x00000000000001e6 0x10 build/default/debug/onewire.o
- 0x00000000000001e6 OneWire_SkipROM
- .text.OneWire_ReadROM
- 0x00000000000001f6 0x32 build/default/debug/onewire.o
- 0x00000000000001f6 OneWire_ReadROM
- 0x0000000000000228 . = ALIGN (0x2)
- *(.fini9)
- .fini9 0x0000000000000228 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_exit.o)
- 0x0000000000000228 exit
- 0x0000000000000228 _exit
- *(.fini9)
- *(.fini8)
- *(.fini8)
- *(.fini7)
- *(.fini7)
- *(.fini6)
- *(.fini6)
- *(.fini5)
- *(.fini5)
- *(.fini4)
- *(.fini4)
- *(.fini3)
- *(.fini3)
- *(.fini2)
- *(.fini2)
- *(.fini1)
- *(.fini1)
- *(.fini0)
- .fini0 0x0000000000000228 0x4 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_exit.o)
- *(.fini0)
- 0x000000000000022c _etext = .
-
-.data 0x0000000000800060 0x0 load address 0x000000000000022c
- [!provide] PROVIDE (__data_start, .)
- *(.data)
- *(.data*)
- *(.gnu.linkonce.d*)
- *(.rodata)
- *(.rodata*)
- *(.gnu.linkonce.r*)
- 0x0000000000800060 . = ALIGN (0x2)
- 0x0000000000800060 _edata = .
- [!provide] PROVIDE (__data_end, .)
-
-.bss 0x0000000000800060 0x11
- 0x0000000000800060 PROVIDE (__bss_start, .)
- *(.bss)
- *(.bss*)
- .bss.dallas_rom
- 0x0000000000800060 0x8 build/default/debug/main.o
- 0x0000000000800060 dallas_rom
- .bss.dallas_scratchpad
- 0x0000000000800068 0x9 build/default/debug/main.o
- 0x0000000000800068 dallas_scratchpad
- *(COMMON)
- 0x0000000000800071 PROVIDE (__bss_end, .)
- 0x000000000000022c __data_load_start = LOADADDR (.data)
- 0x000000000000022c __data_load_end = (__data_load_start + SIZEOF (.data))
-
-.noinit 0x0000000000800071 0x0
- [!provide] PROVIDE (__noinit_start, .)
- *(.noinit*)
- [!provide] PROVIDE (__noinit_end, .)
- 0x0000000000800071 _end = .
- [!provide] PROVIDE (__heap_start, .)
-
-.eeprom 0x0000000000810000 0x0
- *(.eeprom*)
- 0x0000000000810000 __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 0x0000000000000000 0x30
- *(.comment)
- .comment 0x0000000000000000 0x30 build/default/debug/main.o
- 0x31 (size before relaxing)
- .comment 0x0000000000000030 0x31 build/default/debug/onewire.o
-
-.note.gnu.avr.deviceinfo
- 0x0000000000000000 0x3c
- .note.gnu.avr.deviceinfo
- 0x0000000000000000 0x3c /home/sergeyyarkov/.mchp_packs/Microchip/ATtiny_DFP/3.0.151/gcc/dev/attiny45/avr25/crtattiny45.o
-
-.note.gnu.build-id
- *(.note.gnu.build-id)
-
-.debug
- *(.debug)
-
-.line
- *(.line)
-
-.debug_srcinfo
- *(.debug_srcinfo)
-
-.debug_sfnames
- *(.debug_sfnames)
-
-.debug_aranges 0x0000000000000000 0x80
- *(.debug_aranges)
- .debug_aranges
- 0x0000000000000000 0x40 build/default/debug/main.o
- .debug_aranges
- 0x0000000000000040 0x40 build/default/debug/onewire.o
-
-.debug_pubnames
- *(.debug_pubnames)
-
-.debug_info 0x0000000000000000 0xd5f
- *(.debug_info .gnu.linkonce.wi.*)
- .debug_info 0x0000000000000000 0x420 /home/sergeyyarkov/.mchp_packs/Microchip/ATtiny_DFP/3.0.151/gcc/dev/attiny45/avr25/crtattiny45.o
- .debug_info 0x0000000000000420 0x40e build/default/debug/main.o
- .debug_info 0x000000000000082e 0x531 build/default/debug/onewire.o
-
-.debug_abbrev 0x0000000000000000 0x861
- *(.debug_abbrev)
- .debug_abbrev 0x0000000000000000 0x3e8 /home/sergeyyarkov/.mchp_packs/Microchip/ATtiny_DFP/3.0.151/gcc/dev/attiny45/avr25/crtattiny45.o
- .debug_abbrev 0x00000000000003e8 0x257 build/default/debug/main.o
- .debug_abbrev 0x000000000000063f 0x222 build/default/debug/onewire.o
-
-.debug_line 0x0000000000000000 0x526
- *(.debug_line .debug_line.* .debug_line_end)
- .debug_line 0x0000000000000000 0xf2 /home/sergeyyarkov/.mchp_packs/Microchip/ATtiny_DFP/3.0.151/gcc/dev/attiny45/avr25/crtattiny45.o
- .debug_line 0x00000000000000f2 0x1be build/default/debug/main.o
- .debug_line 0x00000000000002b0 0x276 build/default/debug/onewire.o
-
-.debug_frame 0x0000000000000000 0x114
- *(.debug_frame)
- .debug_frame 0x0000000000000000 0x9c build/default/debug/main.o
- .debug_frame 0x000000000000009c 0x78 build/default/debug/onewire.o
-
-.debug_str 0x0000000000000000 0x42a
- *(.debug_str)
- .debug_str 0x0000000000000000 0x169 /home/sergeyyarkov/.mchp_packs/Microchip/ATtiny_DFP/3.0.151/gcc/dev/attiny45/avr25/crtattiny45.o
- .debug_str 0x0000000000000169 0x287 build/default/debug/main.o
- 0x2cc (size before relaxing)
- .debug_str 0x00000000000003f0 0x3a build/default/debug/onewire.o
- 0x25d (size before relaxing)
-
-.debug_loc 0x0000000000000000 0x656
- *(.debug_loc)
- .debug_loc 0x0000000000000000 0x1ec build/default/debug/main.o
- .debug_loc 0x00000000000001ec 0x46a build/default/debug/onewire.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 0x0000000000000000 0x60
- *(.debug_ranges)
- .debug_ranges 0x0000000000000000 0x30 build/default/debug/main.o
- .debug_ranges 0x0000000000000030 0x30 build/default/debug/onewire.o
-
-.debug_macro
- *(.debug_macro)
-OUTPUT(dist/default/debug/attiny45v_thermometer.X.debug.elf elf32-avr)
-LOAD linker stubs
diff --git a/dist/default/production/attiny45v_thermometer.X.production.elf b/dist/default/production/attiny45v_thermometer.X.production.elf
index 975888f..3aaf39a 100755
Binary files a/dist/default/production/attiny45v_thermometer.X.production.elf and b/dist/default/production/attiny45v_thermometer.X.production.elf differ
diff --git a/dist/default/production/attiny45v_thermometer.X.production.hex b/dist/default/production/attiny45v_thermometer.X.production.hex
index 10138f4..6c09106 100644
--- a/dist/default/production/attiny45v_thermometer.X.production.hex
+++ b/dist/default/production/attiny45v_thermometer.X.production.hex
@@ -1,36 +1,41 @@
-:100000000EC01DC01CC01BC01AC019C018C017C02C
-:1000100016C015C014C013C012C011C010C01124E6
-:100020001FBECFE5D1E0DEBFCDBF20E0A0E6B0E04F
-:1000300001C01D92A137B207E1F771D0F5C0E0CF42
-:100040000F931F93CF93DF93CED08EEB94D0C8E65F
-:10005000D0E001E710E0ADD08993C017D107D9F700
-:1000600081E0DF91CF911F910F9108956BD08111A5
-:1000700001C008958CEC7FD084E47DD081E0F9CF7D
-:100080000F931F93CF93DF938C01EB01EFDF2FE7EB
-:100090008FE492E1215080409040E1F700C00000E1
-:1000A000CFDFE8E6F0E021818081322F282FC901DF
-:1000B00099237CF195958795959587959595879545
-:1000C00095958795F8018083809168008F70282F1F
-:1000D00030E0C901880F991F820F931FAC01440FB4
-:1000E000551F42955295507F5427407F5427840FC7
-:1000F000951F820F931F9595879595958795959553
-:100100008795959587958883DF91CF911F910F9162
-:1001100008950F96CFCF86E087BB18BA0895CF9386
-:10012000DF9300D0CDB7DEB7F6DF19821A8280E602
-:1001300090E061D0BE016E5F7F4FCE010196A0DFDF
-:100140000000F8CFF89491E097BBEFEBF3E0319724
-:10015000F1F700C0000017BAFAEBFA95F1F700C00A
-:1001600086B3E3E3F3E03197F1F700C00000789441
-:1001700089278170089598E021E00DC027BB30EAFF
-:100180003A95F1F717BA3AE13A95F1F700C0789449
-:100190008695915069F0F89480FFF0CF27BB30E14D
-:1001A0003A95F1F717BA3AEA3A95F1F700C0EFCF6E
-:1001B000089598E080E021E007C032E93A95F1F730
-:1001C00000C07894915071F0F894869527BB30E187
-:1001D0003A95F1F717BA38E13A95F1F7B09BEDCFC0
-:1001E0008068EBCF0895AEDF811101C008958CECDB
-:1001F000C2DF81E0FBCF0F931F93CF93DF938C017E
-:10020000A1DF811105C0DF91CF911F910F9108955A
-:1002100083E3B1DFE801085F1F4FCBDF8993C0178D
-:0C022000D107D9F781E0EFCFF894FFCFB1
+:100000000EC015C014C013C012C011C010C00FC064
+:100010000EC00DC00CC00BC00AC009C008C011241E
+:100020001FBECFE5D1E0DEBFCDBF7FD025C1E8CF79
+:10003000EF92FF920F931F93CF93DF937C01D9D060
+:100040008EEB9FD0E7018701085F1F4FB8D08993DF
+:10005000C017D107D9F768E070E0C701EBD0C82F0F
+:10006000AED0C81741F080E0DF91CF911F910F9182
+:10007000FF90EF900895000081E0F6CF69D08111E4
+:1000800001C008958CEC7DD084E47BD081E0F9CF71
+:10009000CF93DF93EC01F2DF811103C0DF91CF91A9
+:1000A00008952FE78FE492E1215080409040E1F7DE
+:1000B00000C00000CE01BCDF882381F38881498124
+:1000C000542F482F9A0133234CF1359527953595B8
+:1000D00027953595279535952795398B288B8F70E2
+:1000E000282F30E0C901880F991F820F931FAC01A0
+:1000F000440F551F42955295507F5427407F5427F7
+:10010000840F951F820F931F9595879595958795D9
+:1001100095958795959587958A8BC0CF215F3F4FA1
+:10012000D4CF86E087BB18BA0895CF93DF93CDB7BD
+:10013000DEB763970FB6F894DEBF0FBECDBFF1DF19
+:10014000CE0109965ED0CE010196A2DF0000F8CF65
+:10015000F89491E097BBEFEBF3E03197F1F700C033
+:10016000000017BAFAEBFA95F1F700C086B3E3E3A3
+:10017000F3E03197F1F700C000007894892781708F
+:10018000089598E021E00DC027BB30EA3A95F1F7D9
+:1001900017BA3AE13A95F1F700C0789486959150F4
+:1001A00069F0F89480FFF0CF27BB30E13A95F1F782
+:1001B00017BA3AEA3A95F1F700C0EFCF089598E000
+:1001C00080E021E007C032E93A95F1F700C0789469
+:1001D000915071F0F894869527BB30E13A95F1F78C
+:1001E00017BA38E13A95F1F7B09BEDCF8068EBCFC5
+:1001F0000895AEDF811101C008958CECC2DF81E06B
+:10020000FBCF0F931F93CF93DF938C01A1DF81115D
+:1002100005C0DF91CF911F910F91089583E3B1DF66
+:10022000E801085F1F4FCBDF8993C017D107D9F7CB
+:1002300081E0EFCFFC0161157105E1F050E080E055
+:1002400030E020E04CE80EC08695915029F080FF08
+:10025000FBCF86958427F9CF5F5F252F30E02617E7
+:10026000370738F42E0F3F1FD9019C91892798E05A
+:0C027000EECF089580E00895F894FFCFD1
:00000001FF
diff --git a/dist/default/production/attiny45v_thermometer.X.production.map b/dist/default/production/attiny45v_thermometer.X.production.map
index 383a9e3..bdbbe81 100644
--- a/dist/default/production/attiny45v_thermometer.X.production.map
+++ b/dist/default/production/attiny45v_thermometer.X.production.map
@@ -2,8 +2,6 @@ Archive member included to satisfy reference by file (symbol)
/opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_exit.o)
/home/sergeyyarkov/.mchp_packs/Microchip/ATtiny_DFP/3.0.151/gcc/dev/attiny45/avr25/crtattiny45.o (exit)
-/opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_clear_bss.o)
- build/default/production/main.o (__do_clear_bss)
Discarded input sections
@@ -31,22 +29,6 @@ Discarded input sections
0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_exit.o)
.text.libgcc.fixed
0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_exit.o)
- .text 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_clear_bss.o)
- .data 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_clear_bss.o)
- .bss 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_clear_bss.o)
- .text.libgcc.mul
- 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_clear_bss.o)
- .text.libgcc.div
- 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_clear_bss.o)
- .text.libgcc 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_clear_bss.o)
- .text.libgcc.prologue
- 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_clear_bss.o)
- .text.libgcc.builtins
- 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_clear_bss.o)
- .text.libgcc.fmul
- 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_clear_bss.o)
- .text.libgcc.fixed
- 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_clear_bss.o)
Memory Configuration
@@ -175,7 +157,7 @@ END GROUP
.rela.plt
*(.rela.plt)
-.text 0x0000000000000000 0x22c
+.text 0x0000000000000000 0x27c
*(.vectors)
.vectors 0x0000000000000000 0x1e /home/sergeyyarkov/.mchp_packs/Microchip/ATtiny_DFP/3.0.151/gcc/dev/attiny45/avr25/crtattiny45.o
0x0000000000000000 __vectors
@@ -216,8 +198,6 @@ END GROUP
*(.init3)
*(.init3)
*(.init4)
- .init4 0x000000000000002a 0x10 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_clear_bss.o)
- 0x000000000000002a __do_clear_bss
*(.init4)
*(.init5)
*(.init5)
@@ -228,61 +208,64 @@ END GROUP
*(.init8)
*(.init8)
*(.init9)
- .init9 0x000000000000003a 0x4 /home/sergeyyarkov/.mchp_packs/Microchip/ATtiny_DFP/3.0.151/gcc/dev/attiny45/avr25/crtattiny45.o
+ .init9 0x000000000000002a 0x4 /home/sergeyyarkov/.mchp_packs/Microchip/ATtiny_DFP/3.0.151/gcc/dev/attiny45/avr25/crtattiny45.o
*(.init9)
*(.text)
- .text 0x000000000000003e 0x2 /home/sergeyyarkov/.mchp_packs/Microchip/ATtiny_DFP/3.0.151/gcc/dev/attiny45/avr25/crtattiny45.o
- 0x000000000000003e __vector_1
- 0x000000000000003e __vector_12
- 0x000000000000003e __bad_interrupt
- 0x000000000000003e __vector_6
- 0x000000000000003e __vector_3
- 0x000000000000003e __vector_11
- 0x000000000000003e __vector_13
- 0x000000000000003e __vector_7
- 0x000000000000003e __vector_5
- 0x000000000000003e __vector_4
- 0x000000000000003e __vector_9
- 0x000000000000003e __vector_2
- 0x000000000000003e __vector_8
- 0x000000000000003e __vector_14
- 0x000000000000003e __vector_10
- 0x0000000000000040 . = ALIGN (0x2)
+ .text 0x000000000000002e 0x2 /home/sergeyyarkov/.mchp_packs/Microchip/ATtiny_DFP/3.0.151/gcc/dev/attiny45/avr25/crtattiny45.o
+ 0x000000000000002e __vector_1
+ 0x000000000000002e __vector_12
+ 0x000000000000002e __bad_interrupt
+ 0x000000000000002e __vector_6
+ 0x000000000000002e __vector_3
+ 0x000000000000002e __vector_11
+ 0x000000000000002e __vector_13
+ 0x000000000000002e __vector_7
+ 0x000000000000002e __vector_5
+ 0x000000000000002e __vector_4
+ 0x000000000000002e __vector_9
+ 0x000000000000002e __vector_2
+ 0x000000000000002e __vector_8
+ 0x000000000000002e __vector_14
+ 0x000000000000002e __vector_10
+ 0x0000000000000030 . = ALIGN (0x2)
*(.text.*)
.text.DallasTemp_ReadScratchpad
- 0x0000000000000040 0x2c build/default/production/main.o
- 0x0000000000000040 DallasTemp_ReadScratchpad
+ 0x0000000000000030 0x4c build/default/production/main.o
+ 0x0000000000000030 DallasTemp_ReadScratchpad
.text.DallasTemp_Convert
- 0x000000000000006c 0x14 build/default/production/main.o
- 0x000000000000006c DallasTemp_Convert
+ 0x000000000000007c 0x14 build/default/production/main.o
+ 0x000000000000007c DallasTemp_Convert
.text.DallasTemp_GetTemperature
- 0x0000000000000080 0x96 build/default/production/main.o
- 0x0000000000000080 DallasTemp_GetTemperature
+ 0x0000000000000090 0x92 build/default/production/main.o
+ 0x0000000000000090 DallasTemp_GetTemperature
.text.MCU_Init
- 0x0000000000000116 0x8 build/default/production/main.o
- 0x0000000000000116 MCU_Init
- .text.main 0x000000000000011e 0x26 build/default/production/main.o
- 0x000000000000011e main
+ 0x0000000000000122 0x8 build/default/production/main.o
+ 0x0000000000000122 MCU_Init
+ .text.main 0x000000000000012a 0x26 build/default/production/main.o
+ 0x000000000000012a main
.text.OneWire_Presence
- 0x0000000000000144 0x32 build/default/production/onewire.o
- 0x0000000000000144 OneWire_Presence
+ 0x0000000000000150 0x32 build/default/production/onewire.o
+ 0x0000000000000150 OneWire_Presence
.text.OneWire_WriteByte
- 0x0000000000000176 0x3c build/default/production/onewire.o
- 0x0000000000000176 OneWire_WriteByte
+ 0x0000000000000182 0x3c build/default/production/onewire.o
+ 0x0000000000000182 OneWire_WriteByte
.text.OneWire_ReadByte
- 0x00000000000001b2 0x34 build/default/production/onewire.o
- 0x00000000000001b2 OneWire_ReadByte
+ 0x00000000000001be 0x34 build/default/production/onewire.o
+ 0x00000000000001be OneWire_ReadByte
.text.OneWire_SkipROM
- 0x00000000000001e6 0x10 build/default/production/onewire.o
- 0x00000000000001e6 OneWire_SkipROM
+ 0x00000000000001f2 0x10 build/default/production/onewire.o
+ 0x00000000000001f2 OneWire_SkipROM
.text.OneWire_ReadROM
- 0x00000000000001f6 0x32 build/default/production/onewire.o
- 0x00000000000001f6 OneWire_ReadROM
- 0x0000000000000228 . = ALIGN (0x2)
+ 0x0000000000000202 0x32 build/default/production/onewire.o
+ 0x0000000000000202 OneWire_ReadROM
+ .text.OneWire_CRC8_Update
+ 0x0000000000000234 0x44 build/default/production/onewire.o
+ 0x0000000000000234 OneWire_CRC8_Update
+ 0x0000000000000278 . = ALIGN (0x2)
*(.fini9)
- .fini9 0x0000000000000228 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_exit.o)
- 0x0000000000000228 exit
- 0x0000000000000228 _exit
+ .fini9 0x0000000000000278 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_exit.o)
+ 0x0000000000000278 exit
+ 0x0000000000000278 _exit
*(.fini9)
*(.fini8)
*(.fini8)
@@ -301,11 +284,11 @@ END GROUP
*(.fini1)
*(.fini1)
*(.fini0)
- .fini0 0x0000000000000228 0x4 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_exit.o)
+ .fini0 0x0000000000000278 0x4 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_exit.o)
*(.fini0)
- 0x000000000000022c _etext = .
+ 0x000000000000027c _etext = .
-.data 0x0000000000800060 0x0 load address 0x000000000000022c
+.data 0x0000000000800060 0x0 load address 0x000000000000027c
[!provide] PROVIDE (__data_start, .)
*(.data)
*(.data*)
@@ -317,26 +300,20 @@ END GROUP
0x0000000000800060 _edata = .
[!provide] PROVIDE (__data_end, .)
-.bss 0x0000000000800060 0x11
- 0x0000000000800060 PROVIDE (__bss_start, .)
+.bss 0x0000000000800060 0x0
+ [!provide] PROVIDE (__bss_start, .)
*(.bss)
*(.bss*)
- .bss.dallas_rom
- 0x0000000000800060 0x8 build/default/production/main.o
- 0x0000000000800060 dallas_rom
- .bss.dallas_scratchpad
- 0x0000000000800068 0x9 build/default/production/main.o
- 0x0000000000800068 dallas_scratchpad
*(COMMON)
- 0x0000000000800071 PROVIDE (__bss_end, .)
- 0x000000000000022c __data_load_start = LOADADDR (.data)
- 0x000000000000022c __data_load_end = (__data_load_start + SIZEOF (.data))
+ [!provide] PROVIDE (__bss_end, .)
+ 0x000000000000027c __data_load_start = LOADADDR (.data)
+ 0x000000000000027c __data_load_end = (__data_load_start + SIZEOF (.data))
-.noinit 0x0000000000800071 0x0
+.noinit 0x0000000000800060 0x0
[!provide] PROVIDE (__noinit_start, .)
*(.noinit*)
[!provide] PROVIDE (__noinit_end, .)
- 0x0000000000800071 _end = .
+ 0x0000000000800060 _end = .
[!provide] PROVIDE (__heap_start, .)
.eeprom 0x0000000000810000 0x0
diff --git a/main.c b/main.c
index 93cc877..d35ee55 100644
--- a/main.c
+++ b/main.c
@@ -6,23 +6,40 @@
#define DS18B20_CMD_CONVERTTEMP 0x44
#define DS18B20_CMD_RSCRATCHPAD 0xbe
-uint8_t dallas_scratchpad[9] = {0, 0, 0, 0, 0, 0, 0, 0};
-uint8_t dallas_rom[8] = { 0, 0, 0, 0, 0, 0, 0, 0, };
+typedef struct DallasSensor {
+ uint8_t SCRATCHPAD[8]; // ОЗУ
+ uint8_t ROM[8]; // ПЗУ
+ int16_t TEMPERATURE; // Температура в градусах цельсия (целая часть)
+ uint8_t TEMPERATURE_FRACTION; // Дробная часть
+} DallasSensor;
-uint8_t DallasTemp_ReadScratchpad() {
- uint8_t i = 0;
-
+/**
+ * Читает ОЗУ датчика
+ * @param scratchpad - первые 8 байт.
+ * @return "1" - если данные успешно прочитались, "0" - если данные искажены
+ */
+uint8_t DallasTemp_ReadScratchpad(uint8_t *scratchpad) {
OneWire_SkipROM();
OneWire_WriteByte(DS18B20_CMD_RSCRATCHPAD);
-
- while (i < 9) {
- dallas_scratchpad[i++] = OneWire_ReadByte();
+ for (uint8_t i = 0; i < 8; i++) {
+ scratchpad[i] = OneWire_ReadByte();
}
+ uint8_t calculated_crc = OneWire_CRC8_Update(scratchpad, 8);
+ uint8_t crc = OneWire_ReadByte();
+
+ if (calculated_crc != crc) return 0;
+
+ asm("nop");
+
return 1;
}
+/**
+ * Отправляет команду для оцифровки температуры.
+ * @return "1" - если команда отправлена, "0" - если не было ответа от датчика
+ */
uint8_t DallasTemp_Convert() {
if (!OneWire_Presence()) return 0;
OneWire_WriteByte(ONE_WIRE_SKIPROM);
@@ -30,13 +47,16 @@ uint8_t DallasTemp_Convert() {
return 1;
}
-void DallasTemp_GetTemperature(int8_t *data, uint8_t *fraction) {
- DallasTemp_Convert();
+/**
+ * Получает оцифрованное значение датчика и конвертирует занчение в читаемый вид.
+ * @param Sensor - структура датчика
+ */
+void DallasTemp_GetTemperature(DallasSensor *Sensor) {
+ if (!DallasTemp_Convert()) return;
_delay_ms(750);
- DallasTemp_ReadScratchpad();
-
- (*data) = ((dallas_scratchpad[1] << 8) | dallas_scratchpad[0]) / 16;
- (*fraction) = ((dallas_scratchpad[0] & 0x0f) * 100) / 16;
+ if (!DallasTemp_ReadScratchpad(Sensor->SCRATCHPAD)) return;
+ Sensor->TEMPERATURE = ((Sensor->SCRATCHPAD[1] << 8) | Sensor->SCRATCHPAD[0]) / 16;
+ Sensor->TEMPERATURE_FRACTION = ((Sensor->SCRATCHPAD[0] & 0x0f) * 100) / 16;
}
void MCU_Init(void) {
@@ -47,13 +67,11 @@ void MCU_Init(void) {
int main(void) {
MCU_Init();
- int8_t temperature = 0;
- uint8_t fraction = 0;
+ DallasSensor Sensor_01;
- OneWire_ReadROM(dallas_rom);
-
while (1) {
- DallasTemp_GetTemperature(&temperature, &fraction);
+ OneWire_ReadROM(Sensor_01.ROM);
+ DallasTemp_GetTemperature(&Sensor_01);
asm("nop");
}
return 0;
diff --git a/nbproject/Makefile-genesis.properties b/nbproject/Makefile-genesis.properties
index 9f6b63c..f4280b4 100644
--- a/nbproject/Makefile-genesis.properties
+++ b/nbproject/Makefile-genesis.properties
@@ -1,11 +1,11 @@
#
-#Sat Jul 08 19:15:27 MSK 2023
+#Tue Jul 11 13:27:22 MSK 2023
default.languagetoolchain.version=7.3.0
default.Pack.dfplocation=/home/sergeyyarkov/.mchp_packs/Microchip/ATtiny_DFP/3.0.151
default.com-microchip-mplab-nbide-toolchain-avr-AVRLanguageToolchain.md5=f7c8f2a9c7d7748a6cb97af5c32efadd
conf.ids=default
default.languagetoolchain.dir=/opt/avr8-gnu-toolchain-linux_x86_64/bin
-host.id=30e8-ay6h-7g
+host.id=15hy-mk8g-4c
configurations-xml=737ac09162ca74e2d83ec8c785f6d965
default.com-microchip-mplab-mdbcore-snap-SnapToolImpl.md5=eaa336cefb7fc46db8b50b7b2b6e54ca
com-microchip-mplab-nbide-embedded-makeproject-MakeProject.md5=6e02ca5e9f5042ffd365b42ab82d3a9b
diff --git a/nbproject/private/private.xml b/nbproject/private/private.xml
index 3b84be6..232bb04 100644
--- a/nbproject/private/private.xml
+++ b/nbproject/private/private.xml
@@ -3,6 +3,8 @@
+ file:/home/sergeyyarkov/Documents/Projects/Firmwares/AVR/attiny45v_thermometer.X/onewire.c
+ file:/home/sergeyyarkov/Documents/Projects/Firmwares/AVR/attiny45v_thermometer.X/onewire.h
file:/home/sergeyyarkov/Documents/Projects/Firmwares/AVR/attiny45v_thermometer.X/main.c
diff --git a/onewire.c b/onewire.c
index 7908d06..16684d6 100644
--- a/onewire.c
+++ b/onewire.c
@@ -72,4 +72,21 @@ uint8_t OneWire_ReadROM(uint8_t *buffer) {
}
return 1;
+}
+
+uint8_t OneWire_CRC8_Update(uint8_t *buffer, size_t len) {
+ uint8_t crc = 0, i = 0, j = 0;
+
+ for (i = 0; i < len; i++) {
+ crc ^= buffer[i];
+ for (j = 0; j < 8; j++) {
+ if (crc & 0x01) {
+ crc = (crc >> 1) ^ 0x8c;
+ } else {
+ crc >>= 1;
+ }
+ }
+ }
+
+ return crc;
}
\ No newline at end of file
diff --git a/onewire.h b/onewire.h
index cd04222..cbbb176 100644
--- a/onewire.h
+++ b/onewire.h
@@ -24,6 +24,7 @@ void OneWire_WriteByte(uint8_t byte);
uint8_t OneWire_ReadByte();
uint8_t OneWire_SkipROM();
uint8_t OneWire_ReadROM(uint8_t *buffer);
+uint8_t OneWire_CRC8_Update(uint8_t *buffer, size_t len);
#endif /* ONEWIRE_H */