From 76c415f67f2a4d90a65054a60ba05095b40084d1 Mon Sep 17 00:00:00 2001 From: sergeyyarkov Date: Sat, 5 Aug 2023 02:56:57 +0300 Subject: [PATCH] Dupd --- build/default/production/dstemperature.o | Bin 1880 -> 2592 bytes build/default/production/main.o | Bin 3268 -> 4488 bytes .../attiny45v_thermometer.X.production.elf | Bin 7124 -> 7756 bytes .../attiny45v_thermometer.X.production.hex | 146 +- .../attiny45v_thermometer.X.production.lss | 1216 ++++++++++------- .../attiny45v_thermometer.X.production.map | 128 +- dstemperature.c | 41 +- dstemperature.h | 31 +- main.c | 125 +- nbproject/Makefile-genesis.properties | 4 +- nbproject/private/private.xml | 1 - onewire.h | 33 + 12 files changed, 1077 insertions(+), 648 deletions(-) diff --git a/build/default/production/dstemperature.o b/build/default/production/dstemperature.o index 094afb82749a2accd56154fcdc3f2e3a5af4832d..7f6f088e3a143c831eb5589fe98ea599661dc82c 100644 GIT binary patch literal 2592 zcma)7T}&KR6h6bCU5l2M8vkkpM1_)O7HAc$Kdr6^4^?pK&*NlSCPE7AW_Hxpkib?= zw_;>jGA%U5_+T1ijA{Ddi!ZA$R%6=LS53N2Fg1~+knrXMe&6g|7$#Ib!@(;*fjY?^@e06ued@g!p_WEr7Z0+n?{&qg%vVV#Fi&DyE z(Fy$!%D)_9GdDk7)GlbNQWRll#FbKZmlPxJM@v$A9~IfM6cr0I*>a`snie_F?EDAw z9op(tsH##Ey*0B~xY^i0bvS>xvc@&+CD)`a@6C2)Cm!$9ZnGQI=cZey zrC57jijC%>KD={JEOxM=<)!0sv&$SDam=3AkC{hPsnO(cVr1OhZ*&@MW_#ze&+KjJ zH1->9>IOG#@E)sWWo;uPqHnro`c=U+d|h@S^5S}QW$h8*7Xp40@S%XeZygh?taahJ zv4`;b)tjnyxjW=XLjLxUe{aa&A>DqY7q(8S#SB#J1WtwgY{)N!{7b&y0b7UteHY6A z>ihS5`H1}C`%iiPcKO@)X}Erke;8MQ>je8B$~e|o+OiYQTef8+#WV-{&0f>2fFl(U z@9yz{GnO`O>rD^8YuPE^c_lGAn#ddlj~TZTLjy^$C5O|AA?X{pPK?-=IdF0$9q)T> z-9KTEIM&Oj9cw+p#!Z1(Jl16%OAjSb6j;FP++u}(+satu$xXGf)cD($?F8Fn!&dTS zw{55FO)GP6fkk>Ohi~Jb3eRo_ROc{4>YzFwkVm2VZV$>6FjW{4#yE#MF9pKSLe+4> z6c49K@p$|`XORDaK+QwM3_$oDD4xfN{a)UCRgHLiX<;0=6_%oUIrTcOp40uWdq55M z>+RWJ*Q>uzgsugvk{u`t&74_x^qt{HjG)PL2rqb9s=ug^`R*4+opSv?G;d=7_oJE4qIdDonS zAm0T14yY2v_XYw%z9l%P5F;PYK=H9Z$oDmT&bt!D_YMLA zJ$%l&62<2t5ajzTz{gKQ@qG&%Nc)e`Vz_v+5spM_k5XQ(1P)XYxREB+nZUR{C$MnJX^DPXky&D8H| z%-8R-Q5I{H4sPJk8|=I=ksmNXw}69y4BY|lX3a)K55OM$Xr!T!!3BW*oIh>oF);OS z?XG1Om%tgk!=8Cge4G7vi@4afRITSSQ35Wz7*IOJwc-^kimR`NY>cx2FU|sA%A060*0 OiVtg>>E1x}&h;PAUSJ;p diff --git a/build/default/production/main.o b/build/default/production/main.o index e5e7df47c2101a3ea3b5668cc299a47ff3a6581a..525990f7f50157d343b6c76844ef0c96ee284880 100644 GIT binary patch literal 4488 zcma)9e{56N6~50e4NgaKsP zrfm%bA(DcYgm|P8>(*_mrv1}uNRWxCG3m5MVg+}VstT>-RjMjP88};1p{iB(eb4vC zH%?J^(0%7S=iK|m#z9tm}#^ z#)*D%wz`ajz3=nh*Pk98xH2#?aC=~SAaJVs6d6t!Hx2)~Zntt?N$#y%@4DqnN^$|~ zzwU&Us|{G6xwoy!np~~Oypz6|ey1$YBQjS9FB|6#kv(ULifr}3+vl&HKW9x@;27d;Ut#3B-S@4ll}Fr@ z4~pFVu5d5b9C7>HGe+Gv8p;k~hfbhftr3|Ik^9ZS7uEm1Z}K7caL#p`bB#y)mvg0YcC7F!xiH2kC_6lpYRc|+}{@$vGL#wS7R=v8B z1+Cx95-~YlhzMcMy0x@@dKk7T{P3)s@lH;c13#wO-voYKvzN?Zg30MRd`g)}u^6UlTH_~RNL9Fl3(mv+d zLGd?fQ;{<(?GSVj>zj}^72`Lh9l|CBv0hVd))VjtMWyf;HqYz7sK^!x97Jo6u z*h;Z4;@Giv$BswZ_c>974isXuXK0EYjI`}Iknk!XHihHyaA!*dE8Q54?D^5=R4SR$ zy;~v=JBo0DD3E$T=KQR5g89p3$-WZ;G6Q54pq0s|f%p4fiGK*J#_k2?Tq)@N5^sg> zKqDt{Dg6%!{B@MCmC3{)UVY$4iM$$_C={n)*ay4{nmN(`GPEWA%yFgk6R(qguBl04 z`kT>A@Kbi9sdcq!xLw1JhJOak9DWCVT;eI{Gic1`GW2gH<{JMXaWC{aG*!0|U{$v_ z*hlWsKY+>qDfB-jeiizC4c`D(JU4+A&wqfK!(X94)B1d__3`2TQgcS-#qa0bnD>;DzA6|Y_>?HVSK!e3p4IsHtSG*} z19J>(N?8j-J`0|$_%6cI`3Awa6h7w1`Y67SfOWoR7{}mKqWJi?p3XM{zCQTK7nCus zoBx&9`QC#Of?o+^6uzT6-`281eq4{rZy^S7j9TxfFhYt1eg!K4biO$FcEiW~Dm1>w z;Nuv@SAh%l1Z*XYQPu$HeB(GI2jM4QC7Q}_tK{>+M|mE6JWom#-(K0TUIzA~AMdIX w_G81(`OF<>tPy_;B^3#51*z4X>~{uy9dPh&s{FXmD8nqi`B*sDrbNO20VN0j!vFvP delta 1318 zcmY*YNla5w6uqC{LR$;}TZmGpmVk<=h)RqLhdL!6m(S^fz5n-S=M4S3V404)46^ zA-YaP^-!W}nos34GB7%D$-a=)z7dV|J8ZPylO64!VgJh+@MNv@e(Tx6UPFY$lz1mT zYGa$u*{_P|^P^AC?I&9N!x5XN$2FgA+V?b?KGS+R@=NQpI^lhyvFD>UF42j^5c#dy zt)C-(Ru}j?Ysv~)hULjt+gt1|`wV=ZEccomdOLLBnsGOGT_wX_wKYvKcu44T<0G`>Wa;QW=UykH?cIdJf0Cll9cJtv%Y1 zN@l1hmP}DgDzPt_PDI-hv3OfclUPU%0Rf?|%u27ukSOeAlYl(Qsb&VDBDjsd5FZF{#o^W9UfvgkTly52tqtiW-jwxAgZ zy0*6u!4QAMWHIv(HZd}{Wgy0YIxSVREN0`~ZN?=k+A0}j&UD{fT6uDs`_BEGbKW`U zp4;}$vY%JjQxv9ojN=MmBRi3A7;4k-t%W))eVS`I0PPhg-`a2G@L!xh- zkbz^NUH`F3uVY|qOoPiR+RQ4^O^0-6r8eE5)JyY)63ap9u+C~a3CnTmh$K1O4wd*J zv)&t(D)4+DZNu|#NhPMTLwOG6CT}Wxz`U$a_}z0|&>23?+oK#BZ`7&8ZfBpFQ6t5szb7WPh6ln9iILu>nJ8 z`n<7dQ4phN4he(OncQra$A*N9!VjL-rt8qXoFwvQ$9N#@9;LU zUvuv!HnPKUXM9nNuuD0O%+9(5T~hwc{X!zj-ge*3dFuWH%|BAV(2mab&1W_*v;4W$ zuRq{0Ev}btyDq!b2CbeaIq7BbzVLP9OOQPO+4Pqt-?3KRb6?7NxY)}=Im#uqoqzZg zwGOqzZ+~K!>~4FXz1z+wFHt^?%A@KF6Rwdy^-nkYvI^N6hHxh;EnO|&2^pTZSWC;Xmi5w;o^-_?A@gm?79G}aW0QAwQ&6?HOE%VV zu%qDHaVr~h^Lmd2iHb9{ma|fGy6xE_Taj(Eu2^?X=uH37CyHN)^3~be+?r*H_U4O4 zP0hA1%~`rUc2#IrcWN6&r)alyWLmKrHFOrY1?;%!(4OlqzgLQBc|nx|4fFV5!ujCGIMF*nUIyle;ldj#=6>u8v3Pzx7^4mdpNM5U z4DtfCvIM-t{oti|AvTzxZCZTCG(HWsqM@i@d=EGl%%{K`xB@1`#vh1LSjeq_A;5u- ze*-hDP{*U#Efe3zuiD3DG(!uf*uL4g^2=m_nLpzd|A&z&r z8T>x>p*#BkEKj%{yp329!B61xe+CXo3b=V%Je|hJd3@*!EO?<0hBY{1XvDX`QymI~ zP2)#kLvSR#;23zSAqDv!J~=;!Uw(ja6dyqk{E966#0fCe1FEn%d!Wt1pJ56{`a1l4 z#9a7@vw8Qy2KWSqfuVTrFNR-UP!Bd^okJYYUp?htPWT<}g8@wjgePnR2iglL{PBRx zu=pMG1Q)U2ID@9eomyF0UB7F0WmR=y?rvf*yd*=7aYz1iL%}NsV?%Wvy%d){XNR%Q zP+e1JFd1uh)K$?3af9*Y8}gSfS!P&Uz1M82*k4-RV65D@Z&%MZ@e75SFKbXw!cv-^ zSUdOC==Ie#M(Rp@Hxhv;SW>cSvwj2BBxq=K(w4Zj6(&=~-g4tEv!S@k_|eXi+S=W< zbbHcyIxjg^QKzH@$!W?VK5Uw*iJ_+CD8-PHex976m{8KMpbEq3O{ntM=s!>^=FkP2 n3`MS*mO?$%&>Bs~><-+lJ)DqP$dXALgtbUBNz-|G&0jY0ue?2V-(PYLS!d zV&J^;L10=LXZ7@XF`;}Ih;^UF&Zo+NqDV=}B3qeO1)9+xX+qduANCyqw_fovr~Rq-X#VrpMmyTWz8eYM`WYEpO{K+4n5trm>hPEyI#7nVQSbj?inf` z#YBc!f8NHCZ}ZL+*q1Q)RiUI8#-fS6Yj@^<0`snkrR`4fGnoAKtV$+33F8T!yo8b; zV8;YPsAAB#AmWm@OE72)Ds>w#PbH;0~->O6ZiNA6V$6;FbX@34w`gM zfqC^@cmY3wmta2z!rzXajeW7(!M@S_#gH z7X??Zi?3hDO+4OEa2RYX_^mY-c>+ofVJ0r-ste+>Q+IdiY* z95@2bP2>vr4wQ=*f5BJW=J}8xhcemAh5-JXTn8Hy{0iO<9Y8!EF-3Pqe<2udP56Be z^X_>y+LFmW1#ZCDbH6cpy(=84+C$j3;-f5E>}Rzl-;ESGDk$6OtZ@cgAFZva3pIxK zN4vY;Zf}nCkk;qgL(P#e+wbgQ|2Tu}6_>-j??AYRz3S>>H(VoZz`aRWHnCxMxzJ)} z^KKts?qYez%*slA!kC%8faR)%MM`~nQ}{M+vy{7toh`Kq7Yf+~HV-%mIjC)}l-dg2 cR& - 36: de c1 rjmp .+956 ; 0x3f4 <_exit> + 34: 30 d1 rcall .+608 ; 0x296
+ 36: 9c c2 rjmp .+1336 ; 0x570 <_exit> 00000038 <__bad_interrupt>: 38: e3 cf rjmp .-58 ; 0x0 <__vectors> 0000003a : - 3a: c0 9a sbi 0x18, 0 ; 24 - 3c: c2 9a sbi 0x18, 2 ; 24 - 3e: 8d e0 ldi r24, 0x0D ; 13 - 40: 8a 95 dec r24 - 42: f1 f7 brne .-4 ; 0x40 <__SREG__+0x1> - 44: 00 00 nop - 46: c0 98 cbi 0x18, 0 ; 24 - 48: 8d e0 ldi r24, 0x0D ; 13 - 4a: 8a 95 dec r24 - 4c: f1 f7 brne .-4 ; 0x4a <__SREG__+0xb> - 4e: 00 00 nop - 50: c2 98 cbi 0x18, 2 ; 24 - 52: 08 95 ret + 3a: f8 94 cli + 3c: c0 9a sbi 0x18, 0 ; 24 + 3e: c2 9a sbi 0x18, 2 ; 24 + 40: 8d e0 ldi r24, 0x0D ; 13 + 42: 8a 95 dec r24 + 44: f1 f7 brne .-4 ; 0x42 <__SREG__+0x3> + 46: 00 00 nop + 48: c0 98 cbi 0x18, 0 ; 24 + 4a: 8d e0 ldi r24, 0x0D ; 13 + 4c: 8a 95 dec r24 + 4e: f1 f7 brne .-4 ; 0x4c <__SREG__+0xd> + 50: 00 00 nop + 52: c2 98 cbi 0x18, 2 ; 24 + 54: 78 94 sei + 56: 08 95 ret -00000054 : - 54: c2 98 cbi 0x18, 2 ; 24 - 56: c0 98 cbi 0x18, 0 ; 24 - 58: 8d e0 ldi r24, 0x0D ; 13 - 5a: 8a 95 dec r24 - 5c: f1 f7 brne .-4 ; 0x5a - 5e: 00 00 nop - 60: c2 9a sbi 0x18, 2 ; 24 - 62: 8d e0 ldi r24, 0x0D ; 13 - 64: 8a 95 dec r24 - 66: f1 f7 brne .-4 ; 0x64 - 68: 00 00 nop - 6a: c0 9a sbi 0x18, 0 ; 24 - 6c: 08 95 ret +00000058 : + 58: f8 94 cli + 5a: c2 98 cbi 0x18, 2 ; 24 + 5c: c0 98 cbi 0x18, 0 ; 24 + 5e: 8d e0 ldi r24, 0x0D ; 13 + 60: 8a 95 dec r24 + 62: f1 f7 brne .-4 ; 0x60 + 64: 00 00 nop + 66: c2 9a sbi 0x18, 2 ; 24 + 68: 8d e0 ldi r24, 0x0D ; 13 + 6a: 8a 95 dec r24 + 6c: f1 f7 brne .-4 ; 0x6a + 6e: 00 00 nop + 70: c0 9a sbi 0x18, 0 ; 24 + 72: 78 94 sei + 74: 08 95 ret -0000006e : - 6e: 2d e0 ldi r18, 0x0D ; 13 - 70: 2a 95 dec r18 - 72: f1 f7 brne .-4 ; 0x70 - 74: 00 00 nop - 76: 98 e0 ldi r25, 0x08 ; 8 - 78: 0d c0 rjmp .+26 ; 0x94 - 7a: c0 98 cbi 0x18, 0 ; 24 - 7c: 86 95 lsr r24 - 7e: 2d e0 ldi r18, 0x0D ; 13 - 80: 2a 95 dec r18 - 82: f1 f7 brne .-4 ; 0x80 - 84: 00 00 nop - 86: c2 9a sbi 0x18, 2 ; 24 +00000076 : + 76: f8 94 cli + 78: 2d e0 ldi r18, 0x0D ; 13 + 7a: 2a 95 dec r18 + 7c: f1 f7 brne .-4 ; 0x7a + 7e: 00 00 nop + 80: 98 e0 ldi r25, 0x08 ; 8 + 82: 0d c0 rjmp .+26 ; 0x9e + 84: c0 98 cbi 0x18, 0 ; 24 + 86: 86 95 lsr r24 88: 2d e0 ldi r18, 0x0D ; 13 8a: 2a 95 dec r18 - 8c: f1 f7 brne .-4 ; 0x8a + 8c: f1 f7 brne .-4 ; 0x8a 8e: 00 00 nop - 90: 91 50 subi r25, 0x01 ; 1 - 92: 49 f0 breq .+18 ; 0xa6 - 94: c2 98 cbi 0x18, 2 ; 24 - 96: 2d e0 ldi r18, 0x0D ; 13 - 98: 2a 95 dec r18 - 9a: f1 f7 brne .-4 ; 0x98 - 9c: 00 00 nop - 9e: 80 ff sbrs r24, 0 - a0: ec cf rjmp .-40 ; 0x7a - a2: c0 9a sbi 0x18, 0 ; 24 - a4: eb cf rjmp .-42 ; 0x7c - a6: b8 98 cbi 0x17, 0 ; 23 - a8: c2 98 cbi 0x18, 2 ; 24 - aa: c0 9a sbi 0x18, 0 ; 24 - ac: 8d e0 ldi r24, 0x0D ; 13 - ae: 8a 95 dec r24 - b0: f1 f7 brne .-4 ; 0xae - b2: 00 00 nop - b4: 86 b3 in r24, 0x16 ; 22 - b6: c2 9a sbi 0x18, 2 ; 24 - b8: 9d e0 ldi r25, 0x0D ; 13 - ba: 9a 95 dec r25 - bc: f1 f7 brne .-4 ; 0xba - be: 00 00 nop - c0: c2 98 cbi 0x18, 2 ; 24 - c2: 2d e0 ldi r18, 0x0D ; 13 - c4: 2a 95 dec r18 - c6: f1 f7 brne .-4 ; 0xc4 + 90: c2 9a sbi 0x18, 2 ; 24 + 92: 2d e0 ldi r18, 0x0D ; 13 + 94: 2a 95 dec r18 + 96: f1 f7 brne .-4 ; 0x94 + 98: 00 00 nop + 9a: 91 50 subi r25, 0x01 ; 1 + 9c: 49 f0 breq .+18 ; 0xb0 + 9e: c2 98 cbi 0x18, 2 ; 24 + a0: 2d e0 ldi r18, 0x0D ; 13 + a2: 2a 95 dec r18 + a4: f1 f7 brne .-4 ; 0xa2 + a6: 00 00 nop + a8: 80 ff sbrs r24, 0 + aa: ec cf rjmp .-40 ; 0x84 + ac: c0 9a sbi 0x18, 0 ; 24 + ae: eb cf rjmp .-42 ; 0x86 + b0: b8 98 cbi 0x17, 0 ; 23 + b2: c2 98 cbi 0x18, 2 ; 24 + b4: c0 9a sbi 0x18, 0 ; 24 + b6: 8d e0 ldi r24, 0x0D ; 13 + b8: 8a 95 dec r24 + ba: f1 f7 brne .-4 ; 0xb8 + bc: 00 00 nop + be: 86 b3 in r24, 0x16 ; 22 + c0: c2 9a sbi 0x18, 2 ; 24 + c2: 9d e0 ldi r25, 0x0D ; 13 + c4: 9a 95 dec r25 + c6: f1 f7 brne .-4 ; 0xc4 c8: 00 00 nop - ca: b8 9a sbi 0x17, 0 ; 23 - cc: 80 95 com r24 - ce: 81 70 andi r24, 0x01 ; 1 - d0: 08 95 ret + ca: c2 98 cbi 0x18, 2 ; 24 + cc: 2d e0 ldi r18, 0x0D ; 13 + ce: 2a 95 dec r18 + d0: f1 f7 brne .-4 ; 0xce + d2: 00 00 nop + d4: b8 9a sbi 0x17, 0 ; 23 + d6: 78 94 sei + d8: 80 95 com r24 + da: 81 70 andi r24, 0x01 ; 1 + dc: 08 95 ret -000000d2 : - d2: cf 93 push r28 - d4: c8 2f mov r28, r24 - d6: b1 df rcall .-158 ; 0x3a - d8: 8c 2f mov r24, r28 - da: c9 df rcall .-110 ; 0x6e - dc: bb df rcall .-138 ; 0x54 - de: cf 91 pop r28 - e0: 08 95 ret +000000de : + de: cf 93 push r28 + e0: c8 2f mov r28, r24 + e2: ab df rcall .-170 ; 0x3a + e4: 8c 2f mov r24, r28 + e6: c7 df rcall .-114 ; 0x76 + e8: b7 df rcall .-146 ; 0x58 + ea: cf 91 pop r28 + ec: 08 95 ret -000000e2 : - e2: 97 b3 in r25, 0x17 ; 23 - e4: a1 e0 ldi r26, 0x01 ; 1 - e6: b0 e0 ldi r27, 0x00 ; 0 - e8: fd 01 movw r30, r26 - ea: 02 c0 rjmp .+4 ; 0xf0 - ec: ee 0f add r30, r30 - ee: ff 1f adc r31, r31 - f0: 8a 95 dec r24 - f2: e2 f7 brpl .-8 ; 0xec - f4: 02 c0 rjmp .+4 ; 0xfa - f6: aa 0f add r26, r26 - f8: bb 1f adc r27, r27 - fa: 6a 95 dec r22 - fc: e2 f7 brpl .-8 ; 0xf6 - fe: ea 2b or r30, r26 - 100: 9e 2b or r25, r30 - 102: 97 bb out 0x17, r25 ; 23 - 104: 88 b3 in r24, 0x18 ; 24 - 106: e0 95 com r30 - 108: e8 23 and r30, r24 - 10a: e8 bb out 0x18, r30 ; 24 - 10c: 84 2f mov r24, r20 - 10e: 80 68 ori r24, 0x80 ; 128 - 110: 82 2b or r24, r18 - 112: df df rcall .-66 ; 0xd2 - 114: 08 95 ret +000000ee : + ee: 97 b3 in r25, 0x17 ; 23 + f0: a1 e0 ldi r26, 0x01 ; 1 + f2: b0 e0 ldi r27, 0x00 ; 0 + f4: fd 01 movw r30, r26 + f6: 02 c0 rjmp .+4 ; 0xfc + f8: ee 0f add r30, r30 + fa: ff 1f adc r31, r31 + fc: 8a 95 dec r24 + fe: e2 f7 brpl .-8 ; 0xf8 + 100: 02 c0 rjmp .+4 ; 0x106 <__DATA_REGION_LENGTH__+0x6> + 102: aa 0f add r26, r26 + 104: bb 1f adc r27, r27 + 106: 6a 95 dec r22 + 108: e2 f7 brpl .-8 ; 0x102 <__DATA_REGION_LENGTH__+0x2> + 10a: ea 2b or r30, r26 + 10c: 9e 2b or r25, r30 + 10e: 97 bb out 0x17, r25 ; 23 + 110: 88 b3 in r24, 0x18 ; 24 + 112: e0 95 com r30 + 114: e8 23 and r30, r24 + 116: e8 bb out 0x18, r30 ; 24 + 118: 84 2f mov r24, r20 + 11a: 80 68 ori r24, 0x80 ; 128 + 11c: 82 2b or r24, r18 + 11e: df df rcall .-66 ; 0xde + 120: 08 95 ret -00000116 : - 116: cf 93 push r28 - 118: df 93 push r29 - 11a: c8 2f mov r28, r24 - 11c: d6 2f mov r29, r22 - 11e: 80 e4 ldi r24, 0x40 ; 64 - 120: d8 df rcall .-80 ; 0xd2 - 122: 8b df rcall .-234 ; 0x3a - 124: 8d 2f mov r24, r29 - 126: 80 6c ori r24, 0xC0 ; 192 - 128: a2 df rcall .-188 ; 0x6e - 12a: 8c 2f mov r24, r28 - 12c: a0 df rcall .-192 ; 0x6e - 12e: 92 df rcall .-220 ; 0x54 - 130: df 91 pop r29 - 132: cf 91 pop r28 - 134: 08 95 ret +00000122 : + 122: cf 93 push r28 + 124: df 93 push r29 + 126: c8 2f mov r28, r24 + 128: d6 2f mov r29, r22 + 12a: 80 e4 ldi r24, 0x40 ; 64 + 12c: d8 df rcall .-80 ; 0xde + 12e: 85 df rcall .-246 ; 0x3a + 130: 8d 2f mov r24, r29 + 132: 80 6c ori r24, 0xC0 ; 192 + 134: a0 df rcall .-192 ; 0x76 + 136: 8c 2f mov r24, r28 + 138: 9e df rcall .-196 ; 0x76 + 13a: 8e df rcall .-228 ; 0x58 + 13c: df 91 pop r29 + 13e: cf 91 pop r28 + 140: 08 95 ret -00000136 : - 136: 0f 93 push r16 - 138: 1f 93 push r17 - 13a: cf 93 push r28 - 13c: df 93 push r29 - 13e: ec 01 movw r28, r24 - 140: c8 3e cpi r28, 0xE8 ; 232 - 142: 83 e0 ldi r24, 0x03 ; 3 - 144: d8 07 cpc r29, r24 - 146: 10 f0 brcs .+4 ; 0x14c - 148: c7 ee ldi r28, 0xE7 ; 231 - 14a: d3 e0 ldi r29, 0x03 ; 3 - 14c: ce 01 movw r24, r28 - 14e: 64 e6 ldi r22, 0x64 ; 100 - 150: 70 e0 ldi r23, 0x00 ; 0 - 152: 3c d1 rcall .+632 ; 0x3cc <__udivmodhi4> - 154: cb 01 movw r24, r22 - 156: 0a e0 ldi r16, 0x0A ; 10 - 158: 10 e0 ldi r17, 0x00 ; 0 - 15a: b8 01 movw r22, r16 - 15c: 37 d1 rcall .+622 ; 0x3cc <__udivmodhi4> - 15e: 82 5e subi r24, 0xE2 ; 226 - 160: 9f 4f sbci r25, 0xFF ; 255 - 162: fc 01 movw r30, r24 - 164: 84 91 lpm r24, Z - 166: 60 e0 ldi r22, 0x00 ; 0 - 168: d6 df rcall .-84 ; 0x116 - 16a: ce 01 movw r24, r28 - 16c: b8 01 movw r22, r16 - 16e: 2e d1 rcall .+604 ; 0x3cc <__udivmodhi4> - 170: ec 01 movw r28, r24 - 172: cb 01 movw r24, r22 - 174: b8 01 movw r22, r16 - 176: 2a d1 rcall .+596 ; 0x3cc <__udivmodhi4> - 178: 82 5e subi r24, 0xE2 ; 226 - 17a: 9f 4f sbci r25, 0xFF ; 255 - 17c: fc 01 movw r30, r24 - 17e: 84 91 lpm r24, Z - 180: 61 e0 ldi r22, 0x01 ; 1 - 182: c9 df rcall .-110 ; 0x116 - 184: fe 01 movw r30, r28 - 186: e2 5e subi r30, 0xE2 ; 226 - 188: ff 4f sbci r31, 0xFF ; 255 - 18a: 84 91 lpm r24, Z - 18c: 62 e0 ldi r22, 0x02 ; 2 - 18e: c3 df rcall .-122 ; 0x116 - 190: df 91 pop r29 - 192: cf 91 pop r28 - 194: 1f 91 pop r17 - 196: 0f 91 pop r16 - 198: 08 95 ret +00000142 : + 142: 62 e0 ldi r22, 0x02 ; 2 + 144: 80 e4 ldi r24, 0x40 ; 64 + 146: ed df rcall .-38 ; 0x122 + 148: 61 e0 ldi r22, 0x01 ; 1 + 14a: 80 e4 ldi r24, 0x40 ; 64 + 14c: ea df rcall .-44 ; 0x122 + 14e: 60 e0 ldi r22, 0x00 ; 0 + 150: 80 e4 ldi r24, 0x40 ; 64 + 152: e7 df rcall .-50 ; 0x122 + 154: 08 95 ret -0000019a : - 19a: 28 e0 ldi r18, 0x08 ; 8 - 19c: 41 e0 ldi r20, 0x01 ; 1 - 19e: 62 e0 ldi r22, 0x02 ; 2 - 1a0: 80 e0 ldi r24, 0x00 ; 0 - 1a2: 9f df rcall .-194 ; 0xe2 - 1a4: 08 95 ret +00000156 : + 156: 21 e0 ldi r18, 0x01 ; 1 + 158: 8a 30 cpi r24, 0x0A ; 10 + 15a: 91 05 cpc r25, r1 + 15c: 50 f0 brcs .+20 ; 0x172 <__stack+0x13> + 15e: 21 e0 ldi r18, 0x01 ; 1 + 160: ea e0 ldi r30, 0x0A ; 10 + 162: f0 e0 ldi r31, 0x00 ; 0 + 164: bf 01 movw r22, r30 + 166: dd d1 rcall .+954 ; 0x522 <__udivmodhi4> + 168: cb 01 movw r24, r22 + 16a: 2f 5f subi r18, 0xFF ; 255 + 16c: 6a 30 cpi r22, 0x0A ; 10 + 16e: 71 05 cpc r23, r1 + 170: c8 f7 brcc .-14 ; 0x164 <__stack+0x5> + 172: 82 2f mov r24, r18 + 174: 08 95 ret -000001a6
: - 1a6: cf 93 push r28 - 1a8: df 93 push r29 - 1aa: cd b7 in r28, 0x3d ; 61 - 1ac: de b7 in r29, 0x3e ; 62 - 1ae: 63 97 sbiw r28, 0x13 ; 19 - 1b0: 0f b6 in r0, 0x3f ; 63 - 1b2: f8 94 cli - 1b4: de bf out 0x3e, r29 ; 62 - 1b6: 0f be out 0x3f, r0 ; 63 - 1b8: cd bf out 0x3d, r28 ; 61 - 1ba: ef df rcall .-34 ; 0x19a - 1bc: ce 01 movw r24, r28 - 1be: 09 96 adiw r24, 0x09 ; 9 - 1c0: 5f d0 rcall .+190 ; 0x280 - 1c2: ce 01 movw r24, r28 - 1c4: 01 96 adiw r24, 0x01 ; 1 - 1c6: b9 d0 rcall .+370 ; 0x33a - 1c8: 89 89 ldd r24, Y+17 ; 0x11 - 1ca: 9a 89 ldd r25, Y+18 ; 0x12 - 1cc: b4 df rcall .-152 ; 0x136 - 1ce: f9 cf rjmp .-14 ; 0x1c2 +00000176 : + 176: af 92 push r10 + 178: bf 92 push r11 + 17a: cf 92 push r12 + 17c: df 92 push r13 + 17e: ef 92 push r14 + 180: ff 92 push r15 + 182: 0f 93 push r16 + 184: 1f 93 push r17 + 186: cf 93 push r28 + 188: df 93 push r29 + 18a: 00 d0 rcall .+0 ; 0x18c + 18c: 1f 92 push r1 + 18e: cd b7 in r28, 0x3d ; 61 + 190: de b7 in r29, 0x3e ; 62 + 192: b6 2e mov r11, r22 + 194: f4 2e mov r15, r20 + 196: 00 97 sbiw r24, 0x00 ; 0 + 198: 49 f4 brne .+18 ; 0x1ac + 19a: 61 11 cpse r22, r1 + 19c: 3b c0 rjmp .+118 ; 0x214 + 19e: 8c 01 movw r16, r24 + 1a0: 88 3e cpi r24, 0xE8 ; 232 + 1a2: 93 40 sbci r25, 0x03 ; 3 + 1a4: 7c f0 brlt .+30 ; 0x1c4 + 1a6: 07 ee ldi r16, 0xE7 ; 231 + 1a8: 13 e0 ldi r17, 0x03 ; 3 + 1aa: 0c c0 rjmp .+24 ; 0x1c4 + 1ac: 8c 01 movw r16, r24 + 1ae: 88 3e cpi r24, 0xE8 ; 232 + 1b0: 23 e0 ldi r18, 0x03 ; 3 + 1b2: 92 07 cpc r25, r18 + 1b4: 14 f0 brlt .+4 ; 0x1ba + 1b6: 07 ee ldi r16, 0xE7 ; 231 + 1b8: 13 e0 ldi r17, 0x03 ; 3 + 1ba: 99 23 and r25, r25 + 1bc: 1c f4 brge .+6 ; 0x1c4 + 1be: 11 95 neg r17 + 1c0: 01 95 neg r16 + 1c2: 11 09 sbc r17, r1 + 1c4: c8 01 movw r24, r16 + 1c6: c7 df rcall .-114 ; 0x156 + 1c8: a8 2e mov r10, r24 + 1ca: 2a e0 ldi r18, 0x0A ; 10 + 1cc: 30 e0 ldi r19, 0x00 ; 0 + 1ce: c8 01 movw r24, r16 + 1d0: b9 01 movw r22, r18 + 1d2: bb d1 rcall .+886 ; 0x54a <__divmodhi4> + 1d4: 8b 83 std Y+3, r24 ; 0x03 + 1d6: cb 01 movw r24, r22 + 1d8: b9 01 movw r22, r18 + 1da: b7 d1 rcall .+878 ; 0x54a <__divmodhi4> + 1dc: 8a 83 std Y+2, r24 ; 0x02 + 1de: c8 01 movw r24, r16 + 1e0: 64 e6 ldi r22, 0x64 ; 100 + 1e2: 70 e0 ldi r23, 0x00 ; 0 + 1e4: b2 d1 rcall .+868 ; 0x54a <__divmodhi4> + 1e6: cb 01 movw r24, r22 + 1e8: b9 01 movw r22, r18 + 1ea: af d1 rcall .+862 ; 0x54a <__divmodhi4> + 1ec: 89 83 std Y+1, r24 ; 0x01 + 1ee: 31 e0 ldi r19, 0x01 ; 1 + 1f0: a3 16 cp r10, r19 + 1f2: 91 f0 breq .+36 ; 0x218 + 1f4: 83 e0 ldi r24, 0x03 ; 3 + 1f6: d8 2e mov r13, r24 + 1f8: da 18 sub r13, r10 + 1fa: 82 e0 ldi r24, 0x02 ; 2 + 1fc: 8d 15 cp r24, r13 + 1fe: a8 f1 brcs .+106 ; 0x26a + 200: 10 e0 ldi r17, 0x00 ; 0 + 202: 00 e0 ldi r16, 0x00 ; 0 + 204: c1 2c mov r12, r1 + 206: 82 e0 ldi r24, 0x02 ; 2 + 208: 90 e0 ldi r25, 0x00 ; 0 + 20a: 9c 01 movw r18, r24 + 20c: 2f 19 sub r18, r15 + 20e: 31 09 sbc r19, r1 + 210: 79 01 movw r14, r18 + 212: 18 c0 rjmp .+48 ; 0x244 + 214: 8c 01 movw r16, r24 + 216: d3 cf rjmp .-90 ; 0x1be + 218: da 2c mov r13, r10 + 21a: f2 cf rjmp .-28 ; 0x200 + 21c: e1 e0 ldi r30, 0x01 ; 1 + 21e: f0 e0 ldi r31, 0x00 ; 0 + 220: ec 0f add r30, r28 + 222: fd 1f adc r31, r29 + 224: ed 0d add r30, r13 + 226: f1 1d adc r31, r1 + 228: e0 81 ld r30, Z + 22a: f0 e0 ldi r31, 0x00 ; 0 + 22c: e2 5e subi r30, 0xE2 ; 226 + 22e: ff 4f sbci r31, 0xFF ; 255 + 230: 84 91 lpm r24, Z + 232: 6c 2d mov r22, r12 + 234: 76 df rcall .-276 ; 0x122 + 236: d3 94 inc r13 + 238: c3 94 inc r12 + 23a: 0f 5f subi r16, 0xFF ; 255 + 23c: 1f 4f sbci r17, 0xFF ; 255 + 23e: 82 e0 ldi r24, 0x02 ; 2 + 240: 8d 15 cp r24, r13 + 242: a0 f0 brcs .+40 ; 0x26c + 244: e0 16 cp r14, r16 + 246: f1 06 cpc r15, r17 + 248: 49 f7 brne .-46 ; 0x21c + 24a: 33 e0 ldi r19, 0x03 ; 3 + 24c: a3 16 cp r10, r19 + 24e: 31 f3 breq .-52 ; 0x21c + 250: e1 e0 ldi r30, 0x01 ; 1 + 252: f0 e0 ldi r31, 0x00 ; 0 + 254: ec 0f add r30, r28 + 256: fd 1f adc r31, r29 + 258: ed 0d add r30, r13 + 25a: f1 1d adc r31, r1 + 25c: e0 81 ld r30, Z + 25e: f0 e0 ldi r31, 0x00 ; 0 + 260: e2 5e subi r30, 0xE2 ; 226 + 262: ff 4f sbci r31, 0xFF ; 255 + 264: 84 91 lpm r24, Z + 266: 80 68 ori r24, 0x80 ; 128 + 268: e4 cf rjmp .-56 ; 0x232 + 26a: c1 2c mov r12, r1 + 26c: eb 2d mov r30, r11 + 26e: f0 e0 ldi r31, 0x00 ; 0 + 270: e2 5e subi r30, 0xE2 ; 226 + 272: ff 4f sbci r31, 0xFF ; 255 + 274: 84 91 lpm r24, Z + 276: 6c 2d mov r22, r12 + 278: 54 df rcall .-344 ; 0x122 + 27a: 0f 90 pop r0 + 27c: 0f 90 pop r0 + 27e: 0f 90 pop r0 + 280: df 91 pop r29 + 282: cf 91 pop r28 + 284: 1f 91 pop r17 + 286: 0f 91 pop r16 + 288: ff 90 pop r15 + 28a: ef 90 pop r14 + 28c: df 90 pop r13 + 28e: cf 90 pop r12 + 290: bf 90 pop r11 + 292: af 90 pop r10 + 294: 08 95 ret -000001d0 : - 1d0: f8 94 cli - 1d2: bc 9a sbi 0x17, 4 ; 23 - 1d4: 8f eb ldi r24, 0xBF ; 191 - 1d6: 93 e0 ldi r25, 0x03 ; 3 - 1d8: 01 97 sbiw r24, 0x01 ; 1 - 1da: f1 f7 brne .-4 ; 0x1d8 - 1dc: 00 c0 rjmp .+0 ; 0x1de - 1de: 00 00 nop - 1e0: bc 98 cbi 0x17, 4 ; 23 - 1e2: 9a eb ldi r25, 0xBA ; 186 - 1e4: 9a 95 dec r25 - 1e6: f1 f7 brne .-4 ; 0x1e4 - 1e8: 00 c0 rjmp .+0 ; 0x1ea - 1ea: 86 b3 in r24, 0x16 ; 22 - 1ec: e3 e3 ldi r30, 0x33 ; 51 - 1ee: f3 e0 ldi r31, 0x03 ; 3 - 1f0: 31 97 sbiw r30, 0x01 ; 1 - 1f2: f1 f7 brne .-4 ; 0x1f0 - 1f4: 00 c0 rjmp .+0 ; 0x1f6 - 1f6: 00 00 nop - 1f8: 78 94 sei - 1fa: 82 95 swap r24 - 1fc: 81 70 andi r24, 0x01 ; 1 - 1fe: 91 e0 ldi r25, 0x01 ; 1 - 200: 89 27 eor r24, r25 - 202: 08 95 ret +00000296
: + 296: cf 93 push r28 + 298: df 93 push r29 + 29a: cd b7 in r28, 0x3d ; 61 + 29c: de b7 in r29, 0x3e ; 62 + 29e: 64 97 sbiw r28, 0x14 ; 20 + 2a0: 0f b6 in r0, 0x3f ; 63 + 2a2: f8 94 cli + 2a4: de bf out 0x3e, r29 ; 62 + 2a6: 0f be out 0x3f, r0 ; 63 + 2a8: cd bf out 0x3d, r28 ; 61 + 2aa: 28 e0 ldi r18, 0x08 ; 8 + 2ac: 42 e0 ldi r20, 0x02 ; 2 + 2ae: 62 e0 ldi r22, 0x02 ; 2 + 2b0: 80 e0 ldi r24, 0x00 ; 0 + 2b2: 1d df rcall .-454 ; 0xee + 2b4: 46 df rcall .-372 ; 0x142 + 2b6: 04 e6 ldi r16, 0x64 ; 100 + 2b8: 10 e0 ldi r17, 0x00 ; 0 + 2ba: 01 c0 rjmp .+2 ; 0x2be + 2bc: 42 df rcall .-380 ; 0x142 + 2be: ce 01 movw r24, r28 + 2c0: 01 96 adiw r24, 0x01 ; 1 + 2c2: c3 d0 rcall .+390 ; 0x44a + 2c4: 81 11 cpse r24, r1 + 2c6: fa cf rjmp .-12 ; 0x2bc + 2c8: ce 01 movw r24, r28 + 2ca: 01 96 adiw r24, 0x01 ; 1 + 2cc: d1 d0 rcall .+418 ; 0x470 + 2ce: 8b 89 ldd r24, Y+19 ; 0x13 + 2d0: 9c 89 ldd r25, Y+20 ; 0x14 + 2d2: b8 01 movw r22, r16 + 2d4: 26 d1 rcall .+588 ; 0x522 <__udivmodhi4> + 2d6: 41 e0 ldi r20, 0x01 ; 1 + 2d8: 89 89 ldd r24, Y+17 ; 0x11 + 2da: 9a 89 ldd r25, Y+18 ; 0x12 + 2dc: 4c df rcall .-360 ; 0x176 + 2de: ef cf rjmp .-34 ; 0x2be -00000204 : - 204: 98 e0 ldi r25, 0x08 ; 8 - 206: 0d c0 rjmp .+26 ; 0x222 - 208: bc 9a sbi 0x17, 4 ; 23 - 20a: 20 ea ldi r18, 0xA0 ; 160 - 20c: 2a 95 dec r18 - 20e: f1 f7 brne .-4 ; 0x20c - 210: bc 98 cbi 0x17, 4 ; 23 - 212: 2a e1 ldi r18, 0x1A ; 26 - 214: 2a 95 dec r18 - 216: f1 f7 brne .-4 ; 0x214 - 218: 00 c0 rjmp .+0 ; 0x21a - 21a: 78 94 sei - 21c: 86 95 lsr r24 - 21e: 91 50 subi r25, 0x01 ; 1 - 220: 69 f0 breq .+26 ; 0x23c - 222: f8 94 cli - 224: 80 ff sbrs r24, 0 - 226: f0 cf rjmp .-32 ; 0x208 - 228: bc 9a sbi 0x17, 4 ; 23 - 22a: 20 e1 ldi r18, 0x10 ; 16 - 22c: 2a 95 dec r18 - 22e: f1 f7 brne .-4 ; 0x22c - 230: bc 98 cbi 0x17, 4 ; 23 - 232: 2a ea ldi r18, 0xAA ; 170 - 234: 2a 95 dec r18 - 236: f1 f7 brne .-4 ; 0x234 - 238: 00 c0 rjmp .+0 ; 0x23a - 23a: ef cf rjmp .-34 ; 0x21a - 23c: 08 95 ret +000002e0 : + 2e0: f8 94 cli + 2e2: bc 9a sbi 0x17, 4 ; 23 + 2e4: 8f eb ldi r24, 0xBF ; 191 + 2e6: 93 e0 ldi r25, 0x03 ; 3 + 2e8: 01 97 sbiw r24, 0x01 ; 1 + 2ea: f1 f7 brne .-4 ; 0x2e8 + 2ec: 00 c0 rjmp .+0 ; 0x2ee + 2ee: 00 00 nop + 2f0: bc 98 cbi 0x17, 4 ; 23 + 2f2: 9a eb ldi r25, 0xBA ; 186 + 2f4: 9a 95 dec r25 + 2f6: f1 f7 brne .-4 ; 0x2f4 + 2f8: 00 c0 rjmp .+0 ; 0x2fa + 2fa: 86 b3 in r24, 0x16 ; 22 + 2fc: e3 e3 ldi r30, 0x33 ; 51 + 2fe: f3 e0 ldi r31, 0x03 ; 3 + 300: 31 97 sbiw r30, 0x01 ; 1 + 302: f1 f7 brne .-4 ; 0x300 + 304: 00 c0 rjmp .+0 ; 0x306 + 306: 00 00 nop + 308: 78 94 sei + 30a: 82 95 swap r24 + 30c: 81 70 andi r24, 0x01 ; 1 + 30e: 91 e0 ldi r25, 0x01 ; 1 + 310: 89 27 eor r24, r25 + 312: 08 95 ret -0000023e : - 23e: 98 e0 ldi r25, 0x08 ; 8 - 240: 80 e0 ldi r24, 0x00 ; 0 - 242: 07 c0 rjmp .+14 ; 0x252 - 244: 22 e9 ldi r18, 0x92 ; 146 - 246: 2a 95 dec r18 - 248: f1 f7 brne .-4 ; 0x246 - 24a: 00 c0 rjmp .+0 ; 0x24c - 24c: 78 94 sei - 24e: 91 50 subi r25, 0x01 ; 1 - 250: 71 f0 breq .+28 ; 0x26e - 252: f8 94 cli - 254: 86 95 lsr r24 - 256: bc 9a sbi 0x17, 4 ; 23 - 258: 20 e1 ldi r18, 0x10 ; 16 - 25a: 2a 95 dec r18 - 25c: f1 f7 brne .-4 ; 0x25a - 25e: bc 98 cbi 0x17, 4 ; 23 - 260: 28 e1 ldi r18, 0x18 ; 24 - 262: 2a 95 dec r18 - 264: f1 f7 brne .-4 ; 0x262 - 266: b4 9b sbis 0x16, 4 ; 22 - 268: ed cf rjmp .-38 ; 0x244 - 26a: 80 68 ori r24, 0x80 ; 128 - 26c: eb cf rjmp .-42 ; 0x244 - 26e: 08 95 ret +00000314 : + 314: 98 e0 ldi r25, 0x08 ; 8 + 316: 0d c0 rjmp .+26 ; 0x332 + 318: bc 9a sbi 0x17, 4 ; 23 + 31a: 20 ea ldi r18, 0xA0 ; 160 + 31c: 2a 95 dec r18 + 31e: f1 f7 brne .-4 ; 0x31c + 320: bc 98 cbi 0x17, 4 ; 23 + 322: 2a e1 ldi r18, 0x1A ; 26 + 324: 2a 95 dec r18 + 326: f1 f7 brne .-4 ; 0x324 + 328: 00 c0 rjmp .+0 ; 0x32a + 32a: 78 94 sei + 32c: 86 95 lsr r24 + 32e: 91 50 subi r25, 0x01 ; 1 + 330: 69 f0 breq .+26 ; 0x34c + 332: f8 94 cli + 334: 80 ff sbrs r24, 0 + 336: f0 cf rjmp .-32 ; 0x318 + 338: bc 9a sbi 0x17, 4 ; 23 + 33a: 20 e1 ldi r18, 0x10 ; 16 + 33c: 2a 95 dec r18 + 33e: f1 f7 brne .-4 ; 0x33c + 340: bc 98 cbi 0x17, 4 ; 23 + 342: 2a ea ldi r18, 0xAA ; 170 + 344: 2a 95 dec r18 + 346: f1 f7 brne .-4 ; 0x344 + 348: 00 c0 rjmp .+0 ; 0x34a + 34a: ef cf rjmp .-34 ; 0x32a + 34c: 08 95 ret -00000270 : - 270: af df rcall .-162 ; 0x1d0 - 272: 81 11 cpse r24, r1 - 274: 01 c0 rjmp .+2 ; 0x278 - 276: 08 95 ret - 278: 8c ec ldi r24, 0xCC ; 204 - 27a: c4 df rcall .-120 ; 0x204 - 27c: 81 e0 ldi r24, 0x01 ; 1 - 27e: fb cf rjmp .-10 ; 0x276 +0000034e : + 34e: 98 e0 ldi r25, 0x08 ; 8 + 350: 80 e0 ldi r24, 0x00 ; 0 + 352: 07 c0 rjmp .+14 ; 0x362 + 354: 22 e9 ldi r18, 0x92 ; 146 + 356: 2a 95 dec r18 + 358: f1 f7 brne .-4 ; 0x356 + 35a: 00 c0 rjmp .+0 ; 0x35c + 35c: 78 94 sei + 35e: 91 50 subi r25, 0x01 ; 1 + 360: 71 f0 breq .+28 ; 0x37e + 362: f8 94 cli + 364: 86 95 lsr r24 + 366: bc 9a sbi 0x17, 4 ; 23 + 368: 20 e1 ldi r18, 0x10 ; 16 + 36a: 2a 95 dec r18 + 36c: f1 f7 brne .-4 ; 0x36a + 36e: bc 98 cbi 0x17, 4 ; 23 + 370: 28 e1 ldi r18, 0x18 ; 24 + 372: 2a 95 dec r18 + 374: f1 f7 brne .-4 ; 0x372 + 376: b4 9b sbis 0x16, 4 ; 22 + 378: ed cf rjmp .-38 ; 0x354 + 37a: 80 68 ori r24, 0x80 ; 128 + 37c: eb cf rjmp .-42 ; 0x354 + 37e: 08 95 ret -00000280 : - 280: 0f 93 push r16 - 282: 1f 93 push r17 - 284: cf 93 push r28 - 286: df 93 push r29 - 288: 8c 01 movw r16, r24 - 28a: a2 df rcall .-188 ; 0x1d0 - 28c: 81 11 cpse r24, r1 - 28e: 05 c0 rjmp .+10 ; 0x29a - 290: df 91 pop r29 - 292: cf 91 pop r28 - 294: 1f 91 pop r17 - 296: 0f 91 pop r16 - 298: 08 95 ret - 29a: 83 e3 ldi r24, 0x33 ; 51 - 29c: b3 df rcall .-154 ; 0x204 - 29e: e8 01 movw r28, r16 - 2a0: 08 5f subi r16, 0xF8 ; 248 - 2a2: 1f 4f sbci r17, 0xFF ; 255 - 2a4: cc df rcall .-104 ; 0x23e - 2a6: 89 93 st Y+, r24 - 2a8: c0 17 cp r28, r16 - 2aa: d1 07 cpc r29, r17 - 2ac: d9 f7 brne .-10 ; 0x2a4 - 2ae: 81 e0 ldi r24, 0x01 ; 1 - 2b0: ef cf rjmp .-34 ; 0x290 +00000380 : + 380: af df rcall .-162 ; 0x2e0 + 382: 81 11 cpse r24, r1 + 384: 01 c0 rjmp .+2 ; 0x388 + 386: 08 95 ret + 388: 8c ec ldi r24, 0xCC ; 204 + 38a: c4 df rcall .-120 ; 0x314 + 38c: 81 e0 ldi r24, 0x01 ; 1 + 38e: fb cf rjmp .-10 ; 0x386 -000002b2 : - 2b2: fc 01 movw r30, r24 - 2b4: 68 0f add r22, r24 - 2b6: 79 1f adc r23, r25 - 2b8: 80 e0 ldi r24, 0x00 ; 0 - 2ba: 2c e8 ldi r18, 0x8C ; 140 - 2bc: 0b c0 rjmp .+22 ; 0x2d4 - 2be: 86 95 lsr r24 - 2c0: 91 50 subi r25, 0x01 ; 1 - 2c2: 29 f0 breq .+10 ; 0x2ce - 2c4: 80 ff sbrs r24, 0 - 2c6: fb cf rjmp .-10 ; 0x2be - 2c8: 86 95 lsr r24 - 2ca: 82 27 eor r24, r18 - 2cc: f9 cf rjmp .-14 ; 0x2c0 - 2ce: e6 17 cp r30, r22 - 2d0: f7 07 cpc r31, r23 - 2d2: 21 f0 breq .+8 ; 0x2dc - 2d4: 91 91 ld r25, Z+ - 2d6: 89 27 eor r24, r25 - 2d8: 98 e0 ldi r25, 0x08 ; 8 - 2da: f4 cf rjmp .-24 ; 0x2c4 - 2dc: 08 95 ret +00000390 : + 390: 0f 93 push r16 + 392: 1f 93 push r17 + 394: cf 93 push r28 + 396: df 93 push r29 + 398: 8c 01 movw r16, r24 + 39a: a2 df rcall .-188 ; 0x2e0 + 39c: 81 11 cpse r24, r1 + 39e: 05 c0 rjmp .+10 ; 0x3aa + 3a0: df 91 pop r29 + 3a2: cf 91 pop r28 + 3a4: 1f 91 pop r17 + 3a6: 0f 91 pop r16 + 3a8: 08 95 ret + 3aa: 83 e3 ldi r24, 0x33 ; 51 + 3ac: b3 df rcall .-154 ; 0x314 + 3ae: e8 01 movw r28, r16 + 3b0: 08 5f subi r16, 0xF8 ; 248 + 3b2: 1f 4f sbci r17, 0xFF ; 255 + 3b4: cc df rcall .-104 ; 0x34e + 3b6: 89 93 st Y+, r24 + 3b8: c0 17 cp r28, r16 + 3ba: d1 07 cpc r29, r17 + 3bc: d9 f7 brne .-10 ; 0x3b4 + 3be: 81 e0 ldi r24, 0x01 ; 1 + 3c0: ef cf rjmp .-34 ; 0x3a0 -000002de : - 2de: ef 92 push r14 - 2e0: ff 92 push r15 - 2e2: 0f 93 push r16 - 2e4: 1f 93 push r17 - 2e6: cf 93 push r28 - 2e8: df 93 push r29 - 2ea: 7c 01 movw r14, r24 - 2ec: c1 df rcall .-126 ; 0x270 - 2ee: 8e eb ldi r24, 0xBE ; 190 - 2f0: 89 df rcall .-238 ; 0x204 - 2f2: e7 01 movw r28, r14 - 2f4: 87 01 movw r16, r14 - 2f6: 08 5f subi r16, 0xF8 ; 248 - 2f8: 1f 4f sbci r17, 0xFF ; 255 - 2fa: a1 df rcall .-190 ; 0x23e - 2fc: 89 93 st Y+, r24 - 2fe: c0 17 cp r28, r16 - 300: d1 07 cpc r29, r17 - 302: d9 f7 brne .-10 ; 0x2fa - 304: 68 e0 ldi r22, 0x08 ; 8 - 306: 70 e0 ldi r23, 0x00 ; 0 - 308: c7 01 movw r24, r14 - 30a: d3 df rcall .-90 ; 0x2b2 - 30c: c8 2f mov r28, r24 - 30e: 97 df rcall .-210 ; 0x23e - 310: 91 e0 ldi r25, 0x01 ; 1 - 312: c8 13 cpse r28, r24 - 314: 90 e0 ldi r25, 0x00 ; 0 - 316: 89 2f mov r24, r25 - 318: df 91 pop r29 - 31a: cf 91 pop r28 - 31c: 1f 91 pop r17 - 31e: 0f 91 pop r16 - 320: ff 90 pop r15 - 322: ef 90 pop r14 - 324: 08 95 ret +000003c2 : + 3c2: fc 01 movw r30, r24 + 3c4: 68 0f add r22, r24 + 3c6: 79 1f adc r23, r25 + 3c8: 80 e0 ldi r24, 0x00 ; 0 + 3ca: 2c e8 ldi r18, 0x8C ; 140 + 3cc: 0b c0 rjmp .+22 ; 0x3e4 + 3ce: 86 95 lsr r24 + 3d0: 91 50 subi r25, 0x01 ; 1 + 3d2: 29 f0 breq .+10 ; 0x3de + 3d4: 80 ff sbrs r24, 0 + 3d6: fb cf rjmp .-10 ; 0x3ce + 3d8: 86 95 lsr r24 + 3da: 82 27 eor r24, r18 + 3dc: f9 cf rjmp .-14 ; 0x3d0 + 3de: e6 17 cp r30, r22 + 3e0: f7 07 cpc r31, r23 + 3e2: 21 f0 breq .+8 ; 0x3ec + 3e4: 91 91 ld r25, Z+ + 3e6: 89 27 eor r24, r25 + 3e8: 98 e0 ldi r25, 0x08 ; 8 + 3ea: f4 cf rjmp .-24 ; 0x3d4 + 3ec: 08 95 ret -00000326 : - 326: 54 df rcall .-344 ; 0x1d0 - 328: 81 11 cpse r24, r1 - 32a: 01 c0 rjmp .+2 ; 0x32e - 32c: 08 95 ret - 32e: 8c ec ldi r24, 0xCC ; 204 - 330: 69 df rcall .-302 ; 0x204 - 332: 84 e4 ldi r24, 0x44 ; 68 - 334: 67 df rcall .-306 ; 0x204 - 336: 81 e0 ldi r24, 0x01 ; 1 - 338: f9 cf rjmp .-14 ; 0x32c +000003ee : + 3ee: ef 92 push r14 + 3f0: ff 92 push r15 + 3f2: 0f 93 push r16 + 3f4: 1f 93 push r17 + 3f6: cf 93 push r28 + 3f8: df 93 push r29 + 3fa: 7c 01 movw r14, r24 + 3fc: c1 df rcall .-126 ; 0x380 + 3fe: 8e eb ldi r24, 0xBE ; 190 + 400: 89 df rcall .-238 ; 0x314 + 402: e7 01 movw r28, r14 + 404: 87 01 movw r16, r14 + 406: 08 5f subi r16, 0xF8 ; 248 + 408: 1f 4f sbci r17, 0xFF ; 255 + 40a: a1 df rcall .-190 ; 0x34e + 40c: 89 93 st Y+, r24 + 40e: c0 17 cp r28, r16 + 410: d1 07 cpc r29, r17 + 412: d9 f7 brne .-10 ; 0x40a <__LOCK_REGION_LENGTH__+0xa> + 414: 68 e0 ldi r22, 0x08 ; 8 + 416: 70 e0 ldi r23, 0x00 ; 0 + 418: c7 01 movw r24, r14 + 41a: d3 df rcall .-90 ; 0x3c2 + 41c: c8 2f mov r28, r24 + 41e: 97 df rcall .-210 ; 0x34e + 420: 91 e0 ldi r25, 0x01 ; 1 + 422: c8 13 cpse r28, r24 + 424: 90 e0 ldi r25, 0x00 ; 0 + 426: 89 2f mov r24, r25 + 428: df 91 pop r29 + 42a: cf 91 pop r28 + 42c: 1f 91 pop r17 + 42e: 0f 91 pop r16 + 430: ff 90 pop r15 + 432: ef 90 pop r14 + 434: 08 95 ret -0000033a : - 33a: cf 93 push r28 - 33c: df 93 push r29 - 33e: ec 01 movw r28, r24 - 340: f2 df rcall .-28 ; 0x326 - 342: 81 11 cpse r24, r1 - 344: 03 c0 rjmp .+6 ; 0x34c - 346: df 91 pop r29 - 348: cf 91 pop r28 - 34a: 08 95 ret - 34c: 2f e7 ldi r18, 0x7F ; 127 - 34e: 8f e4 ldi r24, 0x4F ; 79 - 350: 92 e1 ldi r25, 0x12 ; 18 - 352: 21 50 subi r18, 0x01 ; 1 - 354: 80 40 sbci r24, 0x00 ; 0 - 356: 90 40 sbci r25, 0x00 ; 0 - 358: e1 f7 brne .-8 ; 0x352 - 35a: 00 c0 rjmp .+0 ; 0x35c - 35c: 00 00 nop - 35e: ce 01 movw r24, r28 - 360: be df rcall .-132 ; 0x2de - 362: 88 23 and r24, r24 - 364: 81 f3 breq .-32 ; 0x346 - 366: 88 81 ld r24, Y - 368: 49 81 ldd r20, Y+1 ; 0x01 - 36a: 54 2f mov r21, r20 - 36c: 48 2f mov r20, r24 - 36e: 9a 01 movw r18, r20 - 370: 33 23 and r19, r19 - 372: 4c f1 brlt .+82 ; 0x3c6 - 374: 35 95 asr r19 - 376: 27 95 ror r18 - 378: 35 95 asr r19 - 37a: 27 95 ror r18 - 37c: 35 95 asr r19 - 37e: 27 95 ror r18 - 380: 35 95 asr r19 - 382: 27 95 ror r18 - 384: 39 8b std Y+17, r19 ; 0x11 - 386: 28 8b std Y+16, r18 ; 0x10 - 388: 8f 70 andi r24, 0x0F ; 15 - 38a: 28 2f mov r18, r24 - 38c: 30 e0 ldi r19, 0x00 ; 0 - 38e: c9 01 movw r24, r18 - 390: 88 0f add r24, r24 - 392: 99 1f adc r25, r25 - 394: 82 0f add r24, r18 - 396: 93 1f adc r25, r19 - 398: ac 01 movw r20, r24 - 39a: 44 0f add r20, r20 - 39c: 55 1f adc r21, r21 - 39e: 42 95 swap r20 - 3a0: 52 95 swap r21 - 3a2: 50 7f andi r21, 0xF0 ; 240 - 3a4: 54 27 eor r21, r20 - 3a6: 40 7f andi r20, 0xF0 ; 240 - 3a8: 54 27 eor r21, r20 - 3aa: 84 0f add r24, r20 - 3ac: 95 1f adc r25, r21 - 3ae: 82 0f add r24, r18 - 3b0: 93 1f adc r25, r19 - 3b2: 95 95 asr r25 - 3b4: 87 95 ror r24 - 3b6: 95 95 asr r25 - 3b8: 87 95 ror r24 - 3ba: 95 95 asr r25 - 3bc: 87 95 ror r24 - 3be: 95 95 asr r25 - 3c0: 87 95 ror r24 - 3c2: 8a 8b std Y+18, r24 ; 0x12 - 3c4: c0 cf rjmp .-128 ; 0x346 - 3c6: 21 5f subi r18, 0xF1 ; 241 - 3c8: 3f 4f sbci r19, 0xFF ; 255 - 3ca: d4 cf rjmp .-88 ; 0x374 +00000436 : + 436: 54 df rcall .-344 ; 0x2e0 + 438: 81 11 cpse r24, r1 + 43a: 01 c0 rjmp .+2 ; 0x43e + 43c: 08 95 ret + 43e: 8c ec ldi r24, 0xCC ; 204 + 440: 69 df rcall .-302 ; 0x314 + 442: 84 e4 ldi r24, 0x44 ; 68 + 444: 67 df rcall .-306 ; 0x314 + 446: 81 e0 ldi r24, 0x01 ; 1 + 448: f9 cf rjmp .-14 ; 0x43c -000003cc <__udivmodhi4>: - 3cc: aa 1b sub r26, r26 - 3ce: bb 1b sub r27, r27 - 3d0: 51 e1 ldi r21, 0x11 ; 17 - 3d2: 07 c0 rjmp .+14 ; 0x3e2 <__udivmodhi4_ep> +0000044a : + 44a: cf 93 push r28 + 44c: df 93 push r29 + 44e: ec 01 movw r28, r24 + 450: 47 df rcall .-370 ; 0x2e0 + 452: 81 11 cpse r24, r1 + 454: 04 c0 rjmp .+8 ; 0x45e + 456: 81 e0 ldi r24, 0x01 ; 1 + 458: df 91 pop r29 + 45a: cf 91 pop r28 + 45c: 08 95 ret + 45e: ce 01 movw r24, r28 + 460: 08 96 adiw r24, 0x08 ; 8 + 462: 96 df rcall .-212 ; 0x390 + 464: 81 e0 ldi r24, 0x01 ; 1 + 466: 98 85 ldd r25, Y+8 ; 0x08 + 468: 98 32 cpi r25, 0x28 ; 40 + 46a: b1 f7 brne .-20 ; 0x458 + 46c: 80 e0 ldi r24, 0x00 ; 0 + 46e: f4 cf rjmp .-24 ; 0x458 -000003d4 <__udivmodhi4_loop>: - 3d4: aa 1f adc r26, r26 - 3d6: bb 1f adc r27, r27 - 3d8: a6 17 cp r26, r22 - 3da: b7 07 cpc r27, r23 - 3dc: 10 f0 brcs .+4 ; 0x3e2 <__udivmodhi4_ep> - 3de: a6 1b sub r26, r22 - 3e0: b7 0b sbc r27, r23 +00000470 : + 470: cf 93 push r28 + 472: df 93 push r29 + 474: ec 01 movw r28, r24 + 476: df df rcall .-66 ; 0x436 + 478: 81 11 cpse r24, r1 + 47a: 03 c0 rjmp .+6 ; 0x482 + 47c: df 91 pop r29 + 47e: cf 91 pop r28 + 480: 08 95 ret + 482: 2f e7 ldi r18, 0x7F ; 127 + 484: 8f e4 ldi r24, 0x4F ; 79 + 486: 92 e1 ldi r25, 0x12 ; 18 + 488: 21 50 subi r18, 0x01 ; 1 + 48a: 80 40 sbci r24, 0x00 ; 0 + 48c: 90 40 sbci r25, 0x00 ; 0 + 48e: e1 f7 brne .-8 ; 0x488 + 490: 00 c0 rjmp .+0 ; 0x492 + 492: 00 00 nop + 494: ce 01 movw r24, r28 + 496: ab df rcall .-170 ; 0x3ee + 498: 88 23 and r24, r24 + 49a: 81 f3 breq .-32 ; 0x47c + 49c: 29 81 ldd r18, Y+1 ; 0x01 + 49e: 38 81 ld r19, Y + 4a0: 52 2f mov r21, r18 + 4a2: 43 2f mov r20, r19 + 4a4: ca 01 movw r24, r20 + 4a6: 99 23 and r25, r25 + 4a8: bc f1 brlt .+110 ; 0x518 + 4aa: 95 95 asr r25 + 4ac: 87 95 ror r24 + 4ae: 95 95 asr r25 + 4b0: 87 95 ror r24 + 4b2: 95 95 asr r25 + 4b4: 87 95 ror r24 + 4b6: 95 95 asr r25 + 4b8: 87 95 ror r24 + 4ba: 99 8b std Y+17, r25 ; 0x11 + 4bc: 88 8b std Y+16, r24 ; 0x10 + 4be: 28 7f andi r18, 0xF8 ; 248 + 4c0: 11 f0 breq .+4 ; 0x4c6 + 4c2: 31 95 neg r19 + 4c4: 38 83 st Y, r19 + 4c6: 88 81 ld r24, Y + 4c8: 8f 70 andi r24, 0x0F ; 15 + 4ca: 28 2f mov r18, r24 + 4cc: 30 e0 ldi r19, 0x00 ; 0 + 4ce: c9 01 movw r24, r18 + 4d0: 88 0f add r24, r24 + 4d2: 99 1f adc r25, r25 + 4d4: 82 95 swap r24 + 4d6: 92 95 swap r25 + 4d8: 90 7f andi r25, 0xF0 ; 240 + 4da: 98 27 eor r25, r24 + 4dc: 80 7f andi r24, 0xF0 ; 240 + 4de: 98 27 eor r25, r24 + 4e0: 82 1b sub r24, r18 + 4e2: 93 0b sbc r25, r19 + 4e4: 88 0f add r24, r24 + 4e6: 99 1f adc r25, r25 + 4e8: 88 0f add r24, r24 + 4ea: 99 1f adc r25, r25 + 4ec: 82 0f add r24, r18 + 4ee: 93 1f adc r25, r19 + 4f0: 88 0f add r24, r24 + 4f2: 99 1f adc r25, r25 + 4f4: 88 0f add r24, r24 + 4f6: 99 1f adc r25, r25 + 4f8: 88 0f add r24, r24 + 4fa: 99 1f adc r25, r25 + 4fc: 9c 01 movw r18, r24 + 4fe: 99 23 and r25, r25 + 500: 6c f0 brlt .+26 ; 0x51c + 502: 35 95 asr r19 + 504: 27 95 ror r18 + 506: 35 95 asr r19 + 508: 27 95 ror r18 + 50a: 35 95 asr r19 + 50c: 27 95 ror r18 + 50e: 35 95 asr r19 + 510: 27 95 ror r18 + 512: 3b 8b std Y+19, r19 ; 0x13 + 514: 2a 8b std Y+18, r18 ; 0x12 + 516: b2 cf rjmp .-156 ; 0x47c + 518: 0f 96 adiw r24, 0x0f ; 15 + 51a: c7 cf rjmp .-114 ; 0x4aa + 51c: 21 5f subi r18, 0xF1 ; 241 + 51e: 3f 4f sbci r19, 0xFF ; 255 + 520: f0 cf rjmp .-32 ; 0x502 -000003e2 <__udivmodhi4_ep>: - 3e2: 88 1f adc r24, r24 - 3e4: 99 1f adc r25, r25 - 3e6: 5a 95 dec r21 - 3e8: a9 f7 brne .-22 ; 0x3d4 <__udivmodhi4_loop> - 3ea: 80 95 com r24 - 3ec: 90 95 com r25 - 3ee: bc 01 movw r22, r24 - 3f0: cd 01 movw r24, r26 - 3f2: 08 95 ret +00000522 <__udivmodhi4>: + 522: aa 1b sub r26, r26 + 524: bb 1b sub r27, r27 + 526: 51 e1 ldi r21, 0x11 ; 17 + 528: 07 c0 rjmp .+14 ; 0x538 <__udivmodhi4_ep> -000003f4 <_exit>: - 3f4: f8 94 cli +0000052a <__udivmodhi4_loop>: + 52a: aa 1f adc r26, r26 + 52c: bb 1f adc r27, r27 + 52e: a6 17 cp r26, r22 + 530: b7 07 cpc r27, r23 + 532: 10 f0 brcs .+4 ; 0x538 <__udivmodhi4_ep> + 534: a6 1b sub r26, r22 + 536: b7 0b sbc r27, r23 -000003f6 <__stop_program>: - 3f6: ff cf rjmp .-2 ; 0x3f6 <__stop_program> +00000538 <__udivmodhi4_ep>: + 538: 88 1f adc r24, r24 + 53a: 99 1f adc r25, r25 + 53c: 5a 95 dec r21 + 53e: a9 f7 brne .-22 ; 0x52a <__udivmodhi4_loop> + 540: 80 95 com r24 + 542: 90 95 com r25 + 544: bc 01 movw r22, r24 + 546: cd 01 movw r24, r26 + 548: 08 95 ret + +0000054a <__divmodhi4>: + 54a: 97 fb bst r25, 7 + 54c: 07 2e mov r0, r23 + 54e: 16 f4 brtc .+4 ; 0x554 <__divmodhi4+0xa> + 550: 00 94 com r0 + 552: 06 d0 rcall .+12 ; 0x560 <__divmodhi4_neg1> + 554: 77 fd sbrc r23, 7 + 556: 08 d0 rcall .+16 ; 0x568 <__divmodhi4_neg2> + 558: e4 df rcall .-56 ; 0x522 <__udivmodhi4> + 55a: 07 fc sbrc r0, 7 + 55c: 05 d0 rcall .+10 ; 0x568 <__divmodhi4_neg2> + 55e: 3e f4 brtc .+14 ; 0x56e <__divmodhi4_exit> + +00000560 <__divmodhi4_neg1>: + 560: 90 95 com r25 + 562: 81 95 neg r24 + 564: 9f 4f sbci r25, 0xFF ; 255 + 566: 08 95 ret + +00000568 <__divmodhi4_neg2>: + 568: 70 95 com r23 + 56a: 61 95 neg r22 + 56c: 7f 4f sbci r23, 0xFF ; 255 + +0000056e <__divmodhi4_exit>: + 56e: 08 95 ret + +00000570 <_exit>: + 570: f8 94 cli + +00000572 <__stop_program>: + 572: ff cf rjmp .-2 ; 0x572 <__stop_program> diff --git a/dist/default/production/attiny45v_thermometer.X.production.map b/dist/default/production/attiny45v_thermometer.X.production.map index ef55fe2..13012fa 100644 --- a/dist/default/production/attiny45v_thermometer.X.production.map +++ b/dist/default/production/attiny45v_thermometer.X.production.map @@ -2,6 +2,8 @@ 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(_udivmodhi4.o) build/default/production/main.o (__udivmodhi4) +/opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_divmodhi4.o) + build/default/production/main.o (__divmodhi4) /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) @@ -12,12 +14,16 @@ Discarded input sections .text 0x0000000000000000 0x0 build/default/production/main.o .data 0x0000000000000000 0x0 build/default/production/main.o .bss 0x0000000000000000 0x0 build/default/production/main.o + .text.TM1637_DisplayInt + 0x0000000000000000 0x86 build/default/production/main.o .text 0x0000000000000000 0x0 build/default/production/onewire.o .data 0x0000000000000000 0x0 build/default/production/onewire.o .bss 0x0000000000000000 0x0 build/default/production/onewire.o .text 0x0000000000000000 0x0 build/default/production/dstemperature.o .data 0x0000000000000000 0x0 build/default/production/dstemperature.o .bss 0x0000000000000000 0x0 build/default/production/dstemperature.o + .text.DallasTemp_WriteScratchpad + 0x0000000000000000 0x32 build/default/production/dstemperature.o .text 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_udivmodhi4.o) .data 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_udivmodhi4.o) .bss 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_udivmodhi4.o) @@ -32,6 +38,20 @@ Discarded input sections 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_udivmodhi4.o) .text.libgcc.fixed 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_udivmodhi4.o) + .text 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_divmodhi4.o) + .data 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_divmodhi4.o) + .bss 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_divmodhi4.o) + .text.libgcc.mul + 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_divmodhi4.o) + .text.libgcc 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_divmodhi4.o) + .text.libgcc.prologue + 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_divmodhi4.o) + .text.libgcc.builtins + 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_divmodhi4.o) + .text.libgcc.fmul + 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_divmodhi4.o) + .text.libgcc.fixed + 0x0000000000000000 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_divmodhi4.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) @@ -177,7 +197,7 @@ END GROUP .rela.plt *(.rela.plt) -.text 0x0000000000000000 0x3f8 +.text 0x0000000000000000 0x574 *(.vectors) .vectors 0x0000000000000000 0x1e /home/sergeyyarkov/.mchp_packs/Microchip/ATtiny_DFP/3.0.151/gcc/dev/attiny45/avr25/crtattiny45.o 0x0000000000000000 __vectors @@ -252,66 +272,76 @@ END GROUP 0x000000000000003a . = ALIGN (0x2) *(.text.*) .text.TWI_Start - 0x000000000000003a 0x1a build/default/production/main.o + 0x000000000000003a 0x1e build/default/production/main.o 0x000000000000003a TWI_Start .text.TWI_Stop - 0x0000000000000054 0x1a build/default/production/main.o - 0x0000000000000054 TWI_Stop + 0x0000000000000058 0x1e build/default/production/main.o + 0x0000000000000058 TWI_Stop .text.TWI_WriteByte - 0x000000000000006e 0x64 build/default/production/main.o - 0x000000000000006e TWI_WriteByte + 0x0000000000000076 0x68 build/default/production/main.o + 0x0000000000000076 TWI_WriteByte .text.TM1637_WriteByte - 0x00000000000000d2 0x10 build/default/production/main.o - 0x00000000000000d2 TM1637_WriteByte + 0x00000000000000de 0x10 build/default/production/main.o + 0x00000000000000de TM1637_WriteByte .text.TM1637_Init - 0x00000000000000e2 0x34 build/default/production/main.o - 0x00000000000000e2 TM1637_Init + 0x00000000000000ee 0x34 build/default/production/main.o + 0x00000000000000ee TM1637_Init .text.TM1637_DisplaySymbol - 0x0000000000000116 0x20 build/default/production/main.o - 0x0000000000000116 TM1637_DisplaySymbol - .text.TM1637_DisplayUInt - 0x0000000000000136 0x64 build/default/production/main.o - 0x0000000000000136 TM1637_DisplayUInt - .text.MCU_Init - 0x000000000000019a 0xc build/default/production/main.o - 0x000000000000019a MCU_Init - .text.main 0x00000000000001a6 0x2a build/default/production/main.o - 0x00000000000001a6 main + 0x0000000000000122 0x20 build/default/production/main.o + 0x0000000000000122 TM1637_DisplaySymbol + .text.TM1637_DisplayLine + 0x0000000000000142 0x14 build/default/production/main.o + 0x0000000000000142 TM1637_DisplayLine + .text.get_int_length + 0x0000000000000156 0x20 build/default/production/main.o + 0x0000000000000156 get_int_length + .text.TM1637_DisplayFixedNum + 0x0000000000000176 0x120 build/default/production/main.o + 0x0000000000000176 TM1637_DisplayFixedNum + .text.main 0x0000000000000296 0x4a build/default/production/main.o + 0x0000000000000296 main .text.OneWire_Presence - 0x00000000000001d0 0x34 build/default/production/onewire.o - 0x00000000000001d0 OneWire_Presence + 0x00000000000002e0 0x34 build/default/production/onewire.o + 0x00000000000002e0 OneWire_Presence .text.OneWire_WriteByte - 0x0000000000000204 0x3a build/default/production/onewire.o - 0x0000000000000204 OneWire_WriteByte + 0x0000000000000314 0x3a build/default/production/onewire.o + 0x0000000000000314 OneWire_WriteByte .text.OneWire_ReadByte - 0x000000000000023e 0x32 build/default/production/onewire.o - 0x000000000000023e OneWire_ReadByte + 0x000000000000034e 0x32 build/default/production/onewire.o + 0x000000000000034e OneWire_ReadByte .text.OneWire_SkipROM - 0x0000000000000270 0x10 build/default/production/onewire.o - 0x0000000000000270 OneWire_SkipROM + 0x0000000000000380 0x10 build/default/production/onewire.o + 0x0000000000000380 OneWire_SkipROM .text.OneWire_ReadROM - 0x0000000000000280 0x32 build/default/production/onewire.o - 0x0000000000000280 OneWire_ReadROM + 0x0000000000000390 0x32 build/default/production/onewire.o + 0x0000000000000390 OneWire_ReadROM .text.OneWire_CRC8_Update - 0x00000000000002b2 0x2c build/default/production/onewire.o - 0x00000000000002b2 OneWire_CRC8_Update + 0x00000000000003c2 0x2c build/default/production/onewire.o + 0x00000000000003c2 OneWire_CRC8_Update .text.DallasTemp_ReadScratchpad - 0x00000000000002de 0x48 build/default/production/dstemperature.o - 0x00000000000002de DallasTemp_ReadScratchpad + 0x00000000000003ee 0x48 build/default/production/dstemperature.o + 0x00000000000003ee DallasTemp_ReadScratchpad .text.DallasTemp_Convert - 0x0000000000000326 0x14 build/default/production/dstemperature.o - 0x0000000000000326 DallasTemp_Convert + 0x0000000000000436 0x14 build/default/production/dstemperature.o + 0x0000000000000436 DallasTemp_Convert + .text.DallasTemp_CheckError + 0x000000000000044a 0x26 build/default/production/dstemperature.o + 0x000000000000044a DallasTemp_CheckError .text.DallasTemp_GetTemperature - 0x000000000000033a 0x92 build/default/production/dstemperature.o - 0x000000000000033a DallasTemp_GetTemperature + 0x0000000000000470 0xb2 build/default/production/dstemperature.o + 0x0000000000000470 DallasTemp_GetTemperature .text.libgcc.div - 0x00000000000003cc 0x28 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_udivmodhi4.o) - 0x00000000000003cc __udivmodhi4 - 0x00000000000003f4 . = ALIGN (0x2) + 0x0000000000000522 0x28 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_udivmodhi4.o) + 0x0000000000000522 __udivmodhi4 + .text.libgcc.div + 0x000000000000054a 0x26 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_divmodhi4.o) + 0x000000000000054a __divmodhi4 + 0x000000000000054a _div + 0x0000000000000570 . = ALIGN (0x2) *(.fini9) - .fini9 0x00000000000003f4 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_exit.o) - 0x00000000000003f4 exit - 0x00000000000003f4 _exit + .fini9 0x0000000000000570 0x0 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_exit.o) + 0x0000000000000570 exit + 0x0000000000000570 _exit *(.fini9) *(.fini8) *(.fini8) @@ -330,11 +360,11 @@ END GROUP *(.fini1) *(.fini1) *(.fini0) - .fini0 0x00000000000003f4 0x4 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_exit.o) + .fini0 0x0000000000000570 0x4 /opt/avr8-gnu-toolchain-linux_x86_64/bin/../lib/gcc/avr/7.3.0/avr25/libgcc.a(_exit.o) *(.fini0) - 0x00000000000003f8 _etext = . + 0x0000000000000574 _etext = . -.data 0x0000000000800060 0x0 load address 0x00000000000003f8 +.data 0x0000000000800060 0x0 load address 0x0000000000000574 [!provide] PROVIDE (__data_start, .) *(.data) *(.data*) @@ -352,8 +382,8 @@ END GROUP *(.bss*) *(COMMON) [!provide] PROVIDE (__bss_end, .) - 0x00000000000003f8 __data_load_start = LOADADDR (.data) - 0x00000000000003f8 __data_load_end = (__data_load_start + SIZEOF (.data)) + 0x0000000000000574 __data_load_start = LOADADDR (.data) + 0x0000000000000574 __data_load_end = (__data_load_start + SIZEOF (.data)) .noinit 0x0000000000800060 0x0 [!provide] PROVIDE (__noinit_start, .) diff --git a/dstemperature.c b/dstemperature.c index 75f865a..8c686e6 100644 --- a/dstemperature.c +++ b/dstemperature.c @@ -16,6 +16,26 @@ uint8_t DallasTemp_ReadScratchpad(uint8_t *scratchpad) { return 1; } +void DallasTemp_WriteScratchpad(uint8_t *data) { + uint8_t i = 3; + + OneWire_SkipROM(); + OneWire_WriteByte(DS18B20_CMD_WSCRATCHPAD); + + do { + OneWire_WriteByte(*data++); + } while (--i); + + OneWire_Presence(); + + + // TODO вынести в отдельную функцию DallasTemp_CopyScratchpad + OneWire_SkipROM(); + OneWire_WriteByte(0x48); + + _delay_ms(10); +} + uint8_t DallasTemp_Convert(void) { if (!OneWire_Presence()) return 0; OneWire_WriteByte(ONE_WIRE_SKIPROM); @@ -23,10 +43,27 @@ uint8_t DallasTemp_Convert(void) { return 1; } +uint8_t DallasTemp_CheckError(DallasSensor* Sensor) { + if (!OneWire_Presence()) return 1; + OneWire_ReadROM(Sensor->ROM); + if (Sensor->ROM[0] != DS18B20_CONST_FAMILY_CODE) return 1; + return 0; +} + void DallasTemp_GetTemperature(DallasSensor *Sensor) { if (!DallasTemp_Convert()) return; - _delay_ms(750); + _delay_ms(750); // TODO задержку делать в зависимости от разрешения АЦП датчика 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; + + /* + * Двойное дополнение для дробной части если минусовая температура: + * проверяем что последние пять битов в старшем байте температуры стоят в единице + */ + if (Sensor->SCRATCHPAD[1] & 0xf8) Sensor->SCRATCHPAD[0] = -Sensor->SCRATCHPAD[0]; + + /** + * Получаем дробную часть через битовую маску 0x0f, умножаем для получения точности. + */ + Sensor->TEMPERATURE_FRACTION = ((Sensor->SCRATCHPAD[0] & 0x0f) * 1000) / 16; } \ No newline at end of file diff --git a/dstemperature.h b/dstemperature.h index 9ec9ea6..89419af 100644 --- a/dstemperature.h +++ b/dstemperature.h @@ -1,18 +1,22 @@ #include "onewire.h" -#define DS18B20_CMD_CONVERTTEMP 0x44 -#define DS18B20_CMD_RSCRATCHPAD 0xbe +#define DS18B20_CMD_CONVERTTEMP 0x44 +#define DS18B20_CMD_RSCRATCHPAD 0xbe +#define DS18B20_CMD_WSCRATCHPAD 0x4e +#define DS18B20_CONST_FAMILY_CODE 0x28 #ifndef DSTEMPERATURE_H #define DSTEMPERATURE_H typedef struct DallasSensor { - uint8_t SCRATCHPAD[8]; // ОЗУ - uint8_t ROM[8]; // ПЗУ - int16_t TEMPERATURE; // Температура в градусах цельсия (целая часть) - uint8_t TEMPERATURE_FRACTION; // Дробная часть + uint8_t SCRATCHPAD[8]; // ОЗУ (T_LSB, T_MSB, TH/USER BYTE 1, TH/USER BYTE 2, CONFIG, RESERVED, RESERVED, RESERVED, CRC8) + uint8_t ROM[8]; // ПЗУ (код семейства, серийный код, CRC8) + int16_t TEMPERATURE; // Температура в градусах цельсия (целая часть) + uint16_t TEMPERATURE_FRACTION; // Дробная часть } DallasSensor; +// TODO сделать функию установки разрешения АЦП датчика + /** * Читает ОЗУ датчика * @param scratchpad - первые 8 байт. @@ -20,6 +24,12 @@ typedef struct DallasSensor { */ uint8_t DallasTemp_ReadScratchpad(uint8_t *scratchpad); +/** + * Записывает данные в ОЗУ датчика + * @param data - 3 байта + */ +void DallasTemp_WriteScratchpad(uint8_t *data); + /** * Отправляет команду для оцифровки температуры. * @return "1" - если команда отправлена, "0" - если не было ответа от датчика @@ -28,9 +38,16 @@ uint8_t DallasTemp_Convert(void); /** * Получает оцифрованное значение датчика и конвертирует занчение в читаемый вид. - * @param Sensor - структура датчика + * @param Sensor - датчика */ void DallasTemp_GetTemperature(DallasSensor *Sensor); +/** + * Читает семейный код датчика и проверяет его правильность + * @param Sensor - датчик + * @return Возвращает "1" если имеются проблемы с датчиком иначе "0" + */ +uint8_t DallasTemp_CheckError(DallasSensor *Sensor); + #endif /* DSTEMPERATURE_H */ diff --git a/main.c b/main.c index 0856306..291e493 100644 --- a/main.c +++ b/main.c @@ -41,6 +41,14 @@ #define TM1637_DISP_OFF 0x00 // Display off #define TM1637_DISP_ON 0x08 // Display on +#define TM1637_BRIGHTNESS_1 1 +#define TM1637_BRIGHTNESS_2 2 +#define TM1637_BRIGHTNESS_3 3 +#define TM1637_BRIGHTNESS_4 4 +#define TM1637_BRIGHTNESS_5 5 +#define TM1637_BRIGHTNESS_6 6 +#define TM1637_BRIGHTNESS_7 7 + #define dio_high() (PORT_TWI |= (_BV(PORT_TWI_DIO))) #define dio_low() (PORT_TWI &= (~_BV(PORT_TWI_DIO))) #define dio_input() (DDR_TWI &= (~_BV(PORT_TWI_DIO))) @@ -48,6 +56,8 @@ #define clk_high() (PORT_TWI |= (_BV(PORT_TWI_CLK))) #define clk_low() (PORT_TWI &= (~_BV(PORT_TWI_CLK))) +#define get_symbol(index) (pgm_read_byte_near(&display_symbols[index])) + static const uint8_t display_symbols[] PROGMEM = { 0x3F, // 0 @@ -59,31 +69,37 @@ static const uint8_t display_symbols[] PROGMEM = 0x7D, // 6 0x07, // 7 0x7F, // 8 - 0x6F // 9 + 0x6F, // 9 }; void TWI_Start(void) { + cli(); dio_high(); clk_high(); _delay_us(TWI_DELAY); dio_low(); _delay_us(TWI_DELAY); clk_low(); + sei(); } void TWI_Stop(void) { + cli(); clk_low(); dio_low(); _delay_us(TWI_DELAY); clk_high(); _delay_us(TWI_DELAY); dio_high(); + sei(); } uint8_t TWI_WriteByte(uint8_t byte) { uint8_t i = 8; uint8_t ack = 0; + cli(); + _delay_us(TWI_DELAY); do { @@ -109,6 +125,8 @@ uint8_t TWI_WriteByte(uint8_t byte) { _delay_us(TWI_DELAY); dio_output(); + sei(); + return ack; } @@ -132,36 +150,105 @@ void TM1637_DisplaySymbol(uint8_t symbol, uint8_t pos) { TWI_Stop(); } -void TM1637_DisplayUInt(uint16_t num) { - uint16_t tmp = num > 999 ? 999 : num; - uint8_t digits[TM1637_DIGITS_COUNT]; +void TM1637_DisplayLine(void) { uint8_t i = TM1637_DIGITS_COUNT; - do { - digits[i - 1] = tmp % 10; - tmp /= 10; + TM1637_DisplaySymbol(0x40, i - 1); } while (--i); - - - TM1637_DisplaySymbol(pgm_read_byte_near(&display_symbols[digits[0]]), 0); - TM1637_DisplaySymbol(pgm_read_byte_near(&display_symbols[digits[1]]), 1); - TM1637_DisplaySymbol(pgm_read_byte_near(&display_symbols[digits[2]]), 2); } -void MCU_Init(void) { - TM1637_Init(PORT_TWI_DIO, PORT_TWI_CLK, 1, TM1637_DISP_ON); +void TM1637_DisplayInt(int16_t num) { + uint8_t is_signed = num < 0; + int16_t tmp = num > 999 ? 999 : num; + uint8_t i = TM1637_DIGITS_COUNT; + + if (is_signed) { + tmp = -tmp; + TM1637_DisplaySymbol(0x40, 0); // sign symbol + } + + do { + if (is_signed && i == 1) break; + TM1637_DisplaySymbol(pgm_read_byte_near(&display_symbols[tmp % 10]), i - 1); + tmp /= 10; + } while (--i); +} + +uint8_t get_int_length(uint16_t num) { + uint8_t l = 1; + while (num > 9) { + num /= 10; + l++; + } + return l; +} + + +// TODO сделать отображение минусовой температуры для этой функции +void TM1637_DisplayFixedNum(int16_t num, uint8_t frac, uint8_t presicion) { + uint8_t is_signed = (num < 0) | (num == 0 && frac > 0); + num = num > 999 ? 999 : num; + + if (is_signed) { + num = -num; + } + + uint8_t length = get_int_length(num); + uint8_t i = TM1637_DIGITS_COUNT, j = 0; + uint8_t buffer[TM1637_DIGITS_COUNT]; + + do { + buffer[i - 1] = num % 10; + num /= 10; + } while (--i); + + if (length != 1) { + i = TM1637_DIGITS_COUNT - length; + } else { + i = 1; + } + + while (i < TM1637_DIGITS_COUNT) { +// if (j == 0) { +//// if (is_signed) { +//// TM1637_DisplaySymbol(0x40, 0); +//// } +// i++; +// j++; +// continue; +// } + TM1637_DisplaySymbol( + (j == TM1637_DIGITS_COUNT - 1 - presicion && TM1637_DIGITS_COUNT != length) + ? get_symbol(buffer[i]) | 0x80 // точка + : get_symbol(buffer[i]), + j); + i++; + j++; + } + + TM1637_DisplaySymbol(get_symbol(frac), j); } int main(void) { - MCU_Init(); - DallasSensor Sensor_01; - OneWire_ReadROM(Sensor_01.ROM); - + TM1637_Init(PORT_TWI_DIO, PORT_TWI_CLK, TM1637_BRIGHTNESS_2, TM1637_DISP_ON); + TM1637_DisplayLine(); + while (1) { + /** + * Проверка датчика + */ + if (DallasTemp_CheckError(&Sensor_01)) { + TM1637_DisplayLine(); + continue; + } + + /** + * Получение температуры и вывод на индикатор + */ DallasTemp_GetTemperature(&Sensor_01); - TM1637_DisplayUInt(Sensor_01.TEMPERATURE); + TM1637_DisplayFixedNum(Sensor_01.TEMPERATURE, Sensor_01.TEMPERATURE_FRACTION / 100, 1); } return 0; } \ No newline at end of file diff --git a/nbproject/Makefile-genesis.properties b/nbproject/Makefile-genesis.properties index 9132fc5..836de58 100644 --- a/nbproject/Makefile-genesis.properties +++ b/nbproject/Makefile-genesis.properties @@ -1,11 +1,11 @@ # -#Thu Aug 03 22:47:35 MSK 2023 +#Fri Aug 04 08:31:18 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=1f9t-t7j1-aq +host.id=256x-epq9-v8 configurations-xml=5516afcd622aad1c1ae6784dba5612d3 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 887f767..3431ac4 100644 --- a/nbproject/private/private.xml +++ b/nbproject/private/private.xml @@ -6,7 +6,6 @@ file:/home/sergeyyarkov/Documents/Projects/Firmwares/AVR/attiny45v_thermometer.X/onewire.c file:/home/sergeyyarkov/Documents/Projects/Firmwares/AVR/attiny45v_thermometer.X/dstemperature.h file:/home/sergeyyarkov/Documents/Projects/Firmwares/AVR/attiny45v_thermometer.X/main.c - file:/opt/avr8-gnu-toolchain-linux_x86_64/avr/include/util/delay.h file:/home/sergeyyarkov/Documents/Projects/Firmwares/AVR/attiny45v_thermometer.X/dstemperature.c diff --git a/onewire.h b/onewire.h index 2835d7b..d35f2d6 100644 --- a/onewire.h +++ b/onewire.h @@ -19,11 +19,44 @@ #ifndef ONEWIRE_H #define ONEWIRE_H +/** + * + * @return + */ uint8_t OneWire_Presence(void); + +/** + * + * @param byte + */ void OneWire_WriteByte(uint8_t byte); + +/** + * + * @return + */ uint8_t OneWire_ReadByte(); + +/** + * + * @return + */ uint8_t OneWire_SkipROM(); + +/** + * Читает ПЗУ подчиненного устройства. + * Использовать только если на шине одно подчиненной устройство! + * @param buffer - куда складывать данные + * @return "1" - если успешно прочиталось, "0" - если устройство не ответило + */ uint8_t OneWire_ReadROM(uint8_t *buffer); + +/** + * + * @param buffer + * @param len + * @return + */ uint8_t OneWire_CRC8_Update(uint8_t *buffer, size_t len); #endif /* ONEWIRE_H */