This commit is contained in:
Sergey Yarkov 2023-07-11 16:01:08 +03:00
parent c30ce983d9
commit 0285af5e64
No known key found for this signature in database
GPG Key ID: E91CE1FABC619B6F
16 changed files with 155 additions and 730 deletions

Binary file not shown.

View File

@ -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:

Binary file not shown.

View File

@ -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:

Binary file not shown.

Binary file not shown.

View File

@ -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

View File

@ -1,36 +1,41 @@
:100000000EC01DC01CC01BC01AC019C018C017C02C :100000000EC015C014C013C012C011C010C00FC064
:1000100016C015C014C013C012C011C010C01124E6 :100010000EC00DC00CC00BC00AC009C008C011241E
:100020001FBECFE5D1E0DEBFCDBF20E0A0E6B0E04F :100020001FBECFE5D1E0DEBFCDBF7FD025C1E8CF79
:1000300001C01D92A137B207E1F771D0F5C0E0CF42 :10003000EF92FF920F931F93CF93DF937C01D9D060
:100040000F931F93CF93DF93CED08EEB94D0C8E65F :100040008EEB9FD0E7018701085F1F4FB8D08993DF
:10005000D0E001E710E0ADD08993C017D107D9F700 :10005000C017D107D9F768E070E0C701EBD0C82F0F
:1000600081E0DF91CF911F910F9108956BD08111A5 :10006000AED0C81741F080E0DF91CF911F910F9182
:1000700001C008958CEC7FD084E47DD081E0F9CF7D :10007000FF90EF900895000081E0F6CF69D08111E4
:100080000F931F93CF93DF938C01EB01EFDF2FE7EB :1000800001C008958CEC7DD084E47BD081E0F9CF71
:100090008FE492E1215080409040E1F700C00000E1 :10009000CF93DF93EC01F2DF811103C0DF91CF91A9
:1000A000CFDFE8E6F0E021818081322F282FC901DF :1000A00008952FE78FE492E1215080409040E1F7DE
:1000B00099237CF195958795959587959595879545 :1000B00000C00000CE01BCDF882381F38881498124
:1000C00095958795F8018083809168008F70282F1F :1000C000542F482F9A0133234CF1359527953595B8
:1000D00030E0C901880F991F820F931FAC01440FB4 :1000D00027953595279535952795398B288B8F70E2
:1000E000551F42955295507F5427407F5427840FC7 :1000E000282F30E0C901880F991F820F931FAC01A0
:1000F000951F820F931F9595879595958795959553 :1000F000440F551F42955295507F5427407F5427F7
:100100008795959587958883DF91CF911F910F9162 :10010000840F951F820F931F9595879595958795D9
:1001100008950F96CFCF86E087BB18BA0895CF9386 :1001100095958795959587958A8BC0CF215F3F4FA1
:10012000DF9300D0CDB7DEB7F6DF19821A8280E602 :10012000D4CF86E087BB18BA0895CF93DF93CDB7BD
:1001300090E061D0BE016E5F7F4FCE010196A0DFDF :10013000DEB763970FB6F894DEBF0FBECDBFF1DF19
:100140000000F8CFF89491E097BBEFEBF3E0319724 :10014000CE0109965ED0CE010196A2DF0000F8CF65
:10015000F1F700C0000017BAFAEBFA95F1F700C00A :10015000F89491E097BBEFEBF3E03197F1F700C033
:1001600086B3E3E3F3E03197F1F700C00000789441 :10016000000017BAFAEBFA95F1F700C086B3E3E3A3
:1001700089278170089598E021E00DC027BB30EAFF :10017000F3E03197F1F700C000007894892781708F
:100180003A95F1F717BA3AE13A95F1F700C0789449 :10018000089598E021E00DC027BB30EA3A95F1F7D9
:100190008695915069F0F89480FFF0CF27BB30E14D :1001900017BA3AE13A95F1F700C0789486959150F4
:1001A0003A95F1F717BA3AEA3A95F1F700C0EFCF6E :1001A00069F0F89480FFF0CF27BB30E13A95F1F782
:1001B000089598E080E021E007C032E93A95F1F730 :1001B00017BA3AEA3A95F1F700C0EFCF089598E000
:1001C00000C07894915071F0F894869527BB30E187 :1001C00080E021E007C032E93A95F1F700C0789469
:1001D0003A95F1F717BA38E13A95F1F7B09BEDCFC0 :1001D000915071F0F894869527BB30E13A95F1F78C
:1001E0008068EBCF0895AEDF811101C008958CECDB :1001E00017BA38E13A95F1F7B09BEDCF8068EBCFC5
:1001F000C2DF81E0FBCF0F931F93CF93DF938C017E :1001F0000895AEDF811101C008958CECC2DF81E06B
:10020000A1DF811105C0DF91CF911F910F9108955A :10020000FBCF0F931F93CF93DF938C01A1DF81115D
:1002100083E3B1DFE801085F1F4FCBDF8993C0178D :1002100005C0DF91CF911F910F91089583E3B1DF66
:0C022000D107D9F781E0EFCFF894FFCFB1 :10022000E801085F1F4FCBDF8993C017D107D9F7CB
:1002300081E0EFCFFC0161157105E1F050E080E055
:1002400030E020E04CE80EC08695915029F080FF08
:10025000FBCF86958427F9CF5F5F252F30E02617E7
:10026000370738F42E0F3F1FD9019C91892798E05A
:0C027000EECF089580E00895F894FFCFD1
:00000001FF :00000001FF

View File

@ -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) /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) /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 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) 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_exit.o)
.text.libgcc.fixed .text.libgcc.fixed
0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_exit.o) 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 Memory Configuration
@ -175,7 +157,7 @@ END GROUP
.rela.plt .rela.plt
*(.rela.plt) *(.rela.plt)
.text 0x0000000000000000 0x22c .text 0x0000000000000000 0x27c
*(.vectors) *(.vectors)
.vectors 0x0000000000000000 0x1e /home/sergeyyarkov/.mchp_packs/Microchip/ATtiny_DFP/3.0.151/gcc/dev/attiny45/avr25/crtattiny45.o .vectors 0x0000000000000000 0x1e /home/sergeyyarkov/.mchp_packs/Microchip/ATtiny_DFP/3.0.151/gcc/dev/attiny45/avr25/crtattiny45.o
0x0000000000000000 __vectors 0x0000000000000000 __vectors
@ -216,8 +198,6 @@ END GROUP
*(.init3) *(.init3)
*(.init3) *(.init3)
*(.init4) *(.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) *(.init4)
*(.init5) *(.init5)
*(.init5) *(.init5)
@ -228,61 +208,64 @@ END GROUP
*(.init8) *(.init8)
*(.init8) *(.init8)
*(.init9) *(.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) *(.init9)
*(.text) *(.text)
.text 0x000000000000003e 0x2 /home/sergeyyarkov/.mchp_packs/Microchip/ATtiny_DFP/3.0.151/gcc/dev/attiny45/avr25/crtattiny45.o .text 0x000000000000002e 0x2 /home/sergeyyarkov/.mchp_packs/Microchip/ATtiny_DFP/3.0.151/gcc/dev/attiny45/avr25/crtattiny45.o
0x000000000000003e __vector_1 0x000000000000002e __vector_1
0x000000000000003e __vector_12 0x000000000000002e __vector_12
0x000000000000003e __bad_interrupt 0x000000000000002e __bad_interrupt
0x000000000000003e __vector_6 0x000000000000002e __vector_6
0x000000000000003e __vector_3 0x000000000000002e __vector_3
0x000000000000003e __vector_11 0x000000000000002e __vector_11
0x000000000000003e __vector_13 0x000000000000002e __vector_13
0x000000000000003e __vector_7 0x000000000000002e __vector_7
0x000000000000003e __vector_5 0x000000000000002e __vector_5
0x000000000000003e __vector_4 0x000000000000002e __vector_4
0x000000000000003e __vector_9 0x000000000000002e __vector_9
0x000000000000003e __vector_2 0x000000000000002e __vector_2
0x000000000000003e __vector_8 0x000000000000002e __vector_8
0x000000000000003e __vector_14 0x000000000000002e __vector_14
0x000000000000003e __vector_10 0x000000000000002e __vector_10
0x0000000000000040 . = ALIGN (0x2) 0x0000000000000030 . = ALIGN (0x2)
*(.text.*) *(.text.*)
.text.DallasTemp_ReadScratchpad .text.DallasTemp_ReadScratchpad
0x0000000000000040 0x2c build/default/production/main.o 0x0000000000000030 0x4c build/default/production/main.o
0x0000000000000040 DallasTemp_ReadScratchpad 0x0000000000000030 DallasTemp_ReadScratchpad
.text.DallasTemp_Convert .text.DallasTemp_Convert
0x000000000000006c 0x14 build/default/production/main.o 0x000000000000007c 0x14 build/default/production/main.o
0x000000000000006c DallasTemp_Convert 0x000000000000007c DallasTemp_Convert
.text.DallasTemp_GetTemperature .text.DallasTemp_GetTemperature
0x0000000000000080 0x96 build/default/production/main.o 0x0000000000000090 0x92 build/default/production/main.o
0x0000000000000080 DallasTemp_GetTemperature 0x0000000000000090 DallasTemp_GetTemperature
.text.MCU_Init .text.MCU_Init
0x0000000000000116 0x8 build/default/production/main.o 0x0000000000000122 0x8 build/default/production/main.o
0x0000000000000116 MCU_Init 0x0000000000000122 MCU_Init
.text.main 0x000000000000011e 0x26 build/default/production/main.o .text.main 0x000000000000012a 0x26 build/default/production/main.o
0x000000000000011e main 0x000000000000012a main
.text.OneWire_Presence .text.OneWire_Presence
0x0000000000000144 0x32 build/default/production/onewire.o 0x0000000000000150 0x32 build/default/production/onewire.o
0x0000000000000144 OneWire_Presence 0x0000000000000150 OneWire_Presence
.text.OneWire_WriteByte .text.OneWire_WriteByte
0x0000000000000176 0x3c build/default/production/onewire.o 0x0000000000000182 0x3c build/default/production/onewire.o
0x0000000000000176 OneWire_WriteByte 0x0000000000000182 OneWire_WriteByte
.text.OneWire_ReadByte .text.OneWire_ReadByte
0x00000000000001b2 0x34 build/default/production/onewire.o 0x00000000000001be 0x34 build/default/production/onewire.o
0x00000000000001b2 OneWire_ReadByte 0x00000000000001be OneWire_ReadByte
.text.OneWire_SkipROM .text.OneWire_SkipROM
0x00000000000001e6 0x10 build/default/production/onewire.o 0x00000000000001f2 0x10 build/default/production/onewire.o
0x00000000000001e6 OneWire_SkipROM 0x00000000000001f2 OneWire_SkipROM
.text.OneWire_ReadROM .text.OneWire_ReadROM
0x00000000000001f6 0x32 build/default/production/onewire.o 0x0000000000000202 0x32 build/default/production/onewire.o
0x00000000000001f6 OneWire_ReadROM 0x0000000000000202 OneWire_ReadROM
0x0000000000000228 . = ALIGN (0x2) .text.OneWire_CRC8_Update
0x0000000000000234 0x44 build/default/production/onewire.o
0x0000000000000234 OneWire_CRC8_Update
0x0000000000000278 . = ALIGN (0x2)
*(.fini9) *(.fini9)
.fini9 0x0000000000000228 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_exit.o) .fini9 0x0000000000000278 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_exit.o)
0x0000000000000228 exit 0x0000000000000278 exit
0x0000000000000228 _exit 0x0000000000000278 _exit
*(.fini9) *(.fini9)
*(.fini8) *(.fini8)
*(.fini8) *(.fini8)
@ -301,11 +284,11 @@ END GROUP
*(.fini1) *(.fini1)
*(.fini1) *(.fini1)
*(.fini0) *(.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) *(.fini0)
0x000000000000022c _etext = . 0x000000000000027c _etext = .
.data 0x0000000000800060 0x0 load address 0x000000000000022c .data 0x0000000000800060 0x0 load address 0x000000000000027c
[!provide] PROVIDE (__data_start, .) [!provide] PROVIDE (__data_start, .)
*(.data) *(.data)
*(.data*) *(.data*)
@ -317,26 +300,20 @@ END GROUP
0x0000000000800060 _edata = . 0x0000000000800060 _edata = .
[!provide] PROVIDE (__data_end, .) [!provide] PROVIDE (__data_end, .)
.bss 0x0000000000800060 0x11 .bss 0x0000000000800060 0x0
0x0000000000800060 PROVIDE (__bss_start, .) [!provide] PROVIDE (__bss_start, .)
*(.bss) *(.bss)
*(.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) *(COMMON)
0x0000000000800071 PROVIDE (__bss_end, .) [!provide] PROVIDE (__bss_end, .)
0x000000000000022c __data_load_start = LOADADDR (.data) 0x000000000000027c __data_load_start = LOADADDR (.data)
0x000000000000022c __data_load_end = (__data_load_start + SIZEOF (.data)) 0x000000000000027c __data_load_end = (__data_load_start + SIZEOF (.data))
.noinit 0x0000000000800071 0x0 .noinit 0x0000000000800060 0x0
[!provide] PROVIDE (__noinit_start, .) [!provide] PROVIDE (__noinit_start, .)
*(.noinit*) *(.noinit*)
[!provide] PROVIDE (__noinit_end, .) [!provide] PROVIDE (__noinit_end, .)
0x0000000000800071 _end = . 0x0000000000800060 _end = .
[!provide] PROVIDE (__heap_start, .) [!provide] PROVIDE (__heap_start, .)
.eeprom 0x0000000000810000 0x0 .eeprom 0x0000000000810000 0x0

56
main.c
View File

@ -6,23 +6,40 @@
#define DS18B20_CMD_CONVERTTEMP 0x44 #define DS18B20_CMD_CONVERTTEMP 0x44
#define DS18B20_CMD_RSCRATCHPAD 0xbe #define DS18B20_CMD_RSCRATCHPAD 0xbe
uint8_t dallas_scratchpad[9] = {0, 0, 0, 0, 0, 0, 0, 0}; typedef struct DallasSensor {
uint8_t dallas_rom[8] = { 0, 0, 0, 0, 0, 0, 0, 0, }; uint8_t SCRATCHPAD[8]; // ОЗУ
uint8_t ROM[8]; // ПЗУ
uint8_t DallasTemp_ReadScratchpad() { int16_t TEMPERATURE; // Температура в градусах цельсия (целая часть)
uint8_t i = 0; uint8_t TEMPERATURE_FRACTION; // Дробная часть
} DallasSensor;
/**
* Читает ОЗУ датчика
* @param scratchpad - первые 8 байт.
* @return "1" - если данные успешно прочитались, "0" - если данные искажены
*/
uint8_t DallasTemp_ReadScratchpad(uint8_t *scratchpad) {
OneWire_SkipROM(); OneWire_SkipROM();
OneWire_WriteByte(DS18B20_CMD_RSCRATCHPAD); OneWire_WriteByte(DS18B20_CMD_RSCRATCHPAD);
for (uint8_t i = 0; i < 8; i++) {
while (i < 9) { scratchpad[i] = OneWire_ReadByte();
dallas_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;
} }
/**
* Отправляет команду для оцифровки температуры.
* @return "1" - если команда отправлена, "0" - если не было ответа от датчика
*/
uint8_t DallasTemp_Convert() { uint8_t DallasTemp_Convert() {
if (!OneWire_Presence()) return 0; if (!OneWire_Presence()) return 0;
OneWire_WriteByte(ONE_WIRE_SKIPROM); OneWire_WriteByte(ONE_WIRE_SKIPROM);
@ -30,13 +47,16 @@ uint8_t DallasTemp_Convert() {
return 1; 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); _delay_ms(750);
DallasTemp_ReadScratchpad(); if (!DallasTemp_ReadScratchpad(Sensor->SCRATCHPAD)) return;
Sensor->TEMPERATURE = ((Sensor->SCRATCHPAD[1] << 8) | Sensor->SCRATCHPAD[0]) / 16;
(*data) = ((dallas_scratchpad[1] << 8) | dallas_scratchpad[0]) / 16; Sensor->TEMPERATURE_FRACTION = ((Sensor->SCRATCHPAD[0] & 0x0f) * 100) / 16;
(*fraction) = ((dallas_scratchpad[0] & 0x0f) * 100) / 16;
} }
void MCU_Init(void) { void MCU_Init(void) {
@ -47,13 +67,11 @@ void MCU_Init(void) {
int main(void) { int main(void) {
MCU_Init(); MCU_Init();
int8_t temperature = 0; DallasSensor Sensor_01;
uint8_t fraction = 0;
OneWire_ReadROM(dallas_rom);
while (1) { while (1) {
DallasTemp_GetTemperature(&temperature, &fraction); OneWire_ReadROM(Sensor_01.ROM);
DallasTemp_GetTemperature(&Sensor_01);
asm("nop"); asm("nop");
} }
return 0; return 0;

View File

@ -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.languagetoolchain.version=7.3.0
default.Pack.dfplocation=/home/sergeyyarkov/.mchp_packs/Microchip/ATtiny_DFP/3.0.151 default.Pack.dfplocation=/home/sergeyyarkov/.mchp_packs/Microchip/ATtiny_DFP/3.0.151
default.com-microchip-mplab-nbide-toolchain-avr-AVRLanguageToolchain.md5=f7c8f2a9c7d7748a6cb97af5c32efadd default.com-microchip-mplab-nbide-toolchain-avr-AVRLanguageToolchain.md5=f7c8f2a9c7d7748a6cb97af5c32efadd
conf.ids=default conf.ids=default
default.languagetoolchain.dir=/opt/avr8-gnu-toolchain-linux_x86_64/bin default.languagetoolchain.dir=/opt/avr8-gnu-toolchain-linux_x86_64/bin
host.id=30e8-ay6h-7g host.id=15hy-mk8g-4c
configurations-xml=737ac09162ca74e2d83ec8c785f6d965 configurations-xml=737ac09162ca74e2d83ec8c785f6d965
default.com-microchip-mplab-mdbcore-snap-SnapToolImpl.md5=eaa336cefb7fc46db8b50b7b2b6e54ca default.com-microchip-mplab-mdbcore-snap-SnapToolImpl.md5=eaa336cefb7fc46db8b50b7b2b6e54ca
com-microchip-mplab-nbide-embedded-makeproject-MakeProject.md5=6e02ca5e9f5042ffd365b42ab82d3a9b com-microchip-mplab-nbide-embedded-makeproject-MakeProject.md5=6e02ca5e9f5042ffd365b42ab82d3a9b

View File

@ -3,6 +3,8 @@
<editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/> <editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/>
<open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2"> <open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
<group> <group>
<file>file:/home/sergeyyarkov/Documents/Projects/Firmwares/AVR/attiny45v_thermometer.X/onewire.c</file>
<file>file:/home/sergeyyarkov/Documents/Projects/Firmwares/AVR/attiny45v_thermometer.X/onewire.h</file>
<file>file:/home/sergeyyarkov/Documents/Projects/Firmwares/AVR/attiny45v_thermometer.X/main.c</file> <file>file:/home/sergeyyarkov/Documents/Projects/Firmwares/AVR/attiny45v_thermometer.X/main.c</file>
</group> </group>
</open-files> </open-files>

View File

@ -73,3 +73,20 @@ uint8_t OneWire_ReadROM(uint8_t *buffer) {
return 1; 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;
}

View File

@ -24,6 +24,7 @@ void OneWire_WriteByte(uint8_t byte);
uint8_t OneWire_ReadByte(); uint8_t OneWire_ReadByte();
uint8_t OneWire_SkipROM(); uint8_t OneWire_SkipROM();
uint8_t OneWire_ReadROM(uint8_t *buffer); uint8_t OneWire_ReadROM(uint8_t *buffer);
uint8_t OneWire_CRC8_Update(uint8_t *buffer, size_t len);
#endif /* ONEWIRE_H */ #endif /* ONEWIRE_H */