You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

838 lines
30 KiB

  1. PoolClockAirTemp.elf: file format elf32-avr
  2. Sections:
  3. Idx Name Size VMA LMA File off Algn
  4. 0 .data 00000016 00800100 000004a0 00000534 2**0
  5. CONTENTS, ALLOC, LOAD, DATA
  6. 1 .text 000004a0 00000000 00000000 00000094 2**1
  7. CONTENTS, ALLOC, LOAD, READONLY, CODE
  8. 2 .bss 00000001 00800116 00800116 0000054a 2**0
  9. ALLOC
  10. 3 .comment 00000030 00000000 00000000 0000054a 2**0
  11. CONTENTS, READONLY
  12. 4 .note.gnu.avr.deviceinfo 00000040 00000000 00000000 0000057c 2**2
  13. CONTENTS, READONLY
  14. 5 .debug_aranges 00000068 00000000 00000000 000005bc 2**0
  15. CONTENTS, READONLY, DEBUGGING
  16. 6 .debug_info 00000cee 00000000 00000000 00000624 2**0
  17. CONTENTS, READONLY, DEBUGGING
  18. 7 .debug_abbrev 0000084b 00000000 00000000 00001312 2**0
  19. CONTENTS, READONLY, DEBUGGING
  20. 8 .debug_line 000004ba 00000000 00000000 00001b5d 2**0
  21. CONTENTS, READONLY, DEBUGGING
  22. 9 .debug_frame 000000ec 00000000 00000000 00002018 2**2
  23. CONTENTS, READONLY, DEBUGGING
  24. 10 .debug_str 000004d2 00000000 00000000 00002104 2**0
  25. CONTENTS, READONLY, DEBUGGING
  26. 11 .debug_loc 0000059b 00000000 00000000 000025d6 2**0
  27. CONTENTS, READONLY, DEBUGGING
  28. 12 .debug_ranges 00000058 00000000 00000000 00002b71 2**0
  29. CONTENTS, READONLY, DEBUGGING
  30. Disassembly of section .text:
  31. 00000000 <__vectors>:
  32. 0: 19 c0 rjmp .+50 ; 0x34 <__ctors_end>
  33. 2: 33 c0 rjmp .+102 ; 0x6a <__bad_interrupt>
  34. 4: 32 c0 rjmp .+100 ; 0x6a <__bad_interrupt>
  35. 6: 31 c0 rjmp .+98 ; 0x6a <__bad_interrupt>
  36. 8: 30 c0 rjmp .+96 ; 0x6a <__bad_interrupt>
  37. a: 2f c0 rjmp .+94 ; 0x6a <__bad_interrupt>
  38. c: 2e c0 rjmp .+92 ; 0x6a <__bad_interrupt>
  39. e: 2d c0 rjmp .+90 ; 0x6a <__bad_interrupt>
  40. 10: 2c c0 rjmp .+88 ; 0x6a <__bad_interrupt>
  41. 12: 2b c0 rjmp .+86 ; 0x6a <__bad_interrupt>
  42. 14: 2a c0 rjmp .+84 ; 0x6a <__bad_interrupt>
  43. 16: 2a c0 rjmp .+84 ; 0x6c <__vector_11>
  44. 18: 28 c0 rjmp .+80 ; 0x6a <__bad_interrupt>
  45. 1a: 27 c0 rjmp .+78 ; 0x6a <__bad_interrupt>
  46. 1c: 26 c0 rjmp .+76 ; 0x6a <__bad_interrupt>
  47. 1e: 25 c0 rjmp .+74 ; 0x6a <__bad_interrupt>
  48. 20: 24 c0 rjmp .+72 ; 0x6a <__bad_interrupt>
  49. 22: 23 c0 rjmp .+70 ; 0x6a <__bad_interrupt>
  50. 24: 22 c0 rjmp .+68 ; 0x6a <__bad_interrupt>
  51. 26: 21 c0 rjmp .+66 ; 0x6a <__bad_interrupt>
  52. 28: 20 c0 rjmp .+64 ; 0x6a <__bad_interrupt>
  53. 2a: 1f c0 rjmp .+62 ; 0x6a <__bad_interrupt>
  54. 2c: 1e c0 rjmp .+60 ; 0x6a <__bad_interrupt>
  55. 2e: 1d c0 rjmp .+58 ; 0x6a <__bad_interrupt>
  56. 30: 1c c0 rjmp .+56 ; 0x6a <__bad_interrupt>
  57. 32: 1b c0 rjmp .+54 ; 0x6a <__bad_interrupt>
  58. 00000034 <__ctors_end>:
  59. 34: 11 24 eor r1, r1
  60. 36: 1f be out 0x3f, r1 ; 63
  61. 38: cf ef ldi r28, 0xFF ; 255
  62. 3a: d4 e0 ldi r29, 0x04 ; 4
  63. 3c: de bf out 0x3e, r29 ; 62
  64. 3e: cd bf out 0x3d, r28 ; 61
  65. 00000040 <__do_copy_data>:
  66. 40: 11 e0 ldi r17, 0x01 ; 1
  67. 42: a0 e0 ldi r26, 0x00 ; 0
  68. 44: b1 e0 ldi r27, 0x01 ; 1
  69. 46: e0 ea ldi r30, 0xA0 ; 160
  70. 48: f4 e0 ldi r31, 0x04 ; 4
  71. 4a: 02 c0 rjmp .+4 ; 0x50 <__do_copy_data+0x10>
  72. 4c: 05 90 lpm r0, Z+
  73. 4e: 0d 92 st X+, r0
  74. 50: a6 31 cpi r26, 0x16 ; 22
  75. 52: b1 07 cpc r27, r17
  76. 54: d9 f7 brne .-10 ; 0x4c <__do_copy_data+0xc>
  77. 00000056 <__do_clear_bss>:
  78. 56: 21 e0 ldi r18, 0x01 ; 1
  79. 58: a6 e1 ldi r26, 0x16 ; 22
  80. 5a: b1 e0 ldi r27, 0x01 ; 1
  81. 5c: 01 c0 rjmp .+2 ; 0x60 <.do_clear_bss_start>
  82. 0000005e <.do_clear_bss_loop>:
  83. 5e: 1d 92 st X+, r1
  84. 00000060 <.do_clear_bss_start>:
  85. 60: a7 31 cpi r26, 0x17 ; 23
  86. 62: b2 07 cpc r27, r18
  87. 64: e1 f7 brne .-8 ; 0x5e <.do_clear_bss_loop>
  88. 66: bf d0 rcall .+382 ; 0x1e6 <main>
  89. 68: 19 c2 rjmp .+1074 ; 0x49c <_exit>
  90. 0000006a <__bad_interrupt>:
  91. 6a: ca cf rjmp .-108 ; 0x0 <__vectors>
  92. 0000006c <__vector_11>:
  93. /************************************************************************/
  94. void vSetDisplayDigits( uint8_t u8Tens, uint8_t u8Ones, uint8_t u8Unit )
  95. {
  96. g_au8Digits[DIGIT_TENS] = u8Tens;
  97. g_au8Digits[DIGIT_ONES] = u8Ones;
  98. g_au8Digits[DIGIT_UNIT] = u8Unit;
  99. 6c: 1f 92 push r1
  100. 6e: 0f 92 push r0
  101. 70: 0f b6 in r0, 0x3f ; 63
  102. 72: 0f 92 push r0
  103. 74: 11 24 eor r1, r1
  104. 76: 8f 93 push r24
  105. 78: 9f 93 push r25
  106. 7a: ef 93 push r30
  107. 7c: ff 93 push r31
  108. 7e: 15 b8 out 0x05, r1 ; 5
  109. 80: 1b b8 out 0x0b, r1 ; 11
  110. 82: 8d e0 ldi r24, 0x0D ; 13
  111. 84: 8a 95 dec r24
  112. 86: f1 f7 brne .-4 ; 0x84 <__vector_11+0x18>
  113. 88: 00 00 nop
  114. 8a: 81 e0 ldi r24, 0x01 ; 1
  115. 8c: 90 e0 ldi r25, 0x00 ; 0
  116. 8e: 00 90 16 01 lds r0, 0x0116 ; 0x800116 <__data_end>
  117. 92: 02 c0 rjmp .+4 ; 0x98 <__vector_11+0x2c>
  118. 94: 88 0f add r24, r24
  119. 96: 99 1f adc r25, r25
  120. 98: 0a 94 dec r0
  121. 9a: e2 f7 brpl .-8 ; 0x94 <__vector_11+0x28>
  122. 9c: 85 b9 out 0x05, r24 ; 5
  123. 9e: e0 91 16 01 lds r30, 0x0116 ; 0x800116 <__data_end>
  124. a2: f0 e0 ldi r31, 0x00 ; 0
  125. a4: e0 50 subi r30, 0x00 ; 0
  126. a6: ff 4f sbci r31, 0xFF ; 255
  127. a8: e0 81 ld r30, Z
  128. aa: f0 e0 ldi r31, 0x00 ; 0
  129. ac: ed 5f subi r30, 0xFD ; 253
  130. ae: fe 4f sbci r31, 0xFE ; 254
  131. b0: 80 81 ld r24, Z
  132. b2: 8b b9 out 0x0b, r24 ; 11
  133. b4: 80 91 16 01 lds r24, 0x0116 ; 0x800116 <__data_end>
  134. b8: 8f 5f subi r24, 0xFF ; 255
  135. ba: 83 30 cpi r24, 0x03 ; 3
  136. bc: 18 f4 brcc .+6 ; 0xc4 <__vector_11+0x58>
  137. be: 80 93 16 01 sts 0x0116, r24 ; 0x800116 <__data_end>
  138. c2: 02 c0 rjmp .+4 ; 0xc8 <__vector_11+0x5c>
  139. c4: 10 92 16 01 sts 0x0116, r1 ; 0x800116 <__data_end>
  140. c8: ff 91 pop r31
  141. ca: ef 91 pop r30
  142. cc: 9f 91 pop r25
  143. ce: 8f 91 pop r24
  144. d0: 0f 90 pop r0
  145. d2: 0f be out 0x3f, r0 ; 63
  146. d4: 0f 90 pop r0
  147. d6: 1f 90 pop r1
  148. d8: 18 95 reti
  149. 000000da <vInit>:
  150. da: 8f ef ldi r24, 0xFF ; 255
  151. dc: 8a b9 out 0x0a, r24 ; 10
  152. de: 87 e0 ldi r24, 0x07 ; 7
  153. e0: 84 b9 out 0x04, r24 ; 4
  154. e2: 10 92 80 00 sts 0x0080, r1 ; 0x800080 <__EEPROM_REGION_LENGTH__+0x7f0080>
  155. e6: 8a e0 ldi r24, 0x0A ; 10
  156. e8: 80 93 81 00 sts 0x0081, r24 ; 0x800081 <__EEPROM_REGION_LENGTH__+0x7f0081>
  157. ec: 84 ec ldi r24, 0xC4 ; 196
  158. ee: 99 e0 ldi r25, 0x09 ; 9
  159. f0: 90 93 89 00 sts 0x0089, r25 ; 0x800089 <__EEPROM_REGION_LENGTH__+0x7f0089>
  160. f4: 80 93 88 00 sts 0x0088, r24 ; 0x800088 <__EEPROM_REGION_LENGTH__+0x7f0088>
  161. f8: ef e6 ldi r30, 0x6F ; 111
  162. fa: f0 e0 ldi r31, 0x00 ; 0
  163. fc: 80 81 ld r24, Z
  164. fe: 82 60 ori r24, 0x02 ; 2
  165. 100: 80 83 st Z, r24
  166. 102: 78 94 sei
  167. 104: 08 95 ret
  168. 00000106 <vSetValue>:
  169. 106: 9d ec ldi r25, 0xCD ; 205
  170. 108: 89 9f mul r24, r25
  171. 10a: 91 2d mov r25, r1
  172. 10c: 11 24 eor r1, r1
  173. 10e: 96 95 lsr r25
  174. 110: 96 95 lsr r25
  175. 112: 96 95 lsr r25
  176. 114: e0 e0 ldi r30, 0x00 ; 0
  177. 116: f1 e0 ldi r31, 0x01 ; 1
  178. 118: 92 83 std Z+2, r25 ; 0x02
  179. 11a: 99 0f add r25, r25
  180. 11c: 29 2f mov r18, r25
  181. 11e: 22 0f add r18, r18
  182. 120: 22 0f add r18, r18
  183. 122: 92 0f add r25, r18
  184. 124: 89 1b sub r24, r25
  185. 126: 81 83 std Z+1, r24 ; 0x01
  186. 128: 60 83 st Z, r22
  187. 12a: 08 95 ret
  188. 0000012c <u8DS18B20_Reset>:
  189. uint8_t u8DS18B20_Reset( void )
  190. {
  191. uint8_t u8Status;
  192. //low for 480 us
  193. DS18B20_PORT &= ~ (1<<DS18B20_DQ); //low
  194. 12c: 43 98 cbi 0x08, 3 ; 8
  195. DS18B20_DDR |= (1<<DS18B20_DQ); //output
  196. 12e: 3b 9a sbi 0x07, 3 ; 7
  197. #else
  198. //round up by default
  199. __ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
  200. #endif
  201. __builtin_avr_delay_cycles(__ticks_dc);
  202. 130: 8f e5 ldi r24, 0x5F ; 95
  203. 132: 99 e0 ldi r25, 0x09 ; 9
  204. 134: 01 97 sbiw r24, 0x01 ; 1
  205. 136: f1 f7 brne .-4 ; 0x134 <u8DS18B20_Reset+0x8>
  206. 138: 00 c0 rjmp .+0 ; 0x13a <u8DS18B20_Reset+0xe>
  207. 13a: 00 00 nop
  208. _delay_us(480);
  209. //release line and wait for 60 us
  210. DS18B20_DDR &= ~(1<<DS18B20_DQ); //input
  211. 13c: 3b 98 cbi 0x07, 3 ; 7
  212. 13e: eb e2 ldi r30, 0x2B ; 43
  213. 140: f1 e0 ldi r31, 0x01 ; 1
  214. 142: 31 97 sbiw r30, 0x01 ; 1
  215. 144: f1 f7 brne .-4 ; 0x142 <u8DS18B20_Reset+0x16>
  216. 146: 00 c0 rjmp .+0 ; 0x148 <u8DS18B20_Reset+0x1c>
  217. 148: 00 00 nop
  218. _delay_us(60);
  219. //get value and wait 420 us
  220. u8Status = (DS18B20_PIN & (1<<DS18B20_DQ));
  221. 14a: 86 b1 in r24, 0x06 ; 6
  222. 14c: e3 e3 ldi r30, 0x33 ; 51
  223. 14e: f8 e0 ldi r31, 0x08 ; 8
  224. 150: 31 97 sbiw r30, 0x01 ; 1
  225. 152: f1 f7 brne .-4 ; 0x150 <u8DS18B20_Reset+0x24>
  226. 154: 00 c0 rjmp .+0 ; 0x156 <u8DS18B20_Reset+0x2a>
  227. 156: 00 00 nop
  228. _delay_us(420);
  229. //return the read value: 0=okay, 1=error
  230. return u8Status;
  231. }
  232. 158: 88 70 andi r24, 0x08 ; 8
  233. 15a: 08 95 ret
  234. 0000015c <vDS18B20_WriteBit>:
  235. /* Write single bit to DS18B20 (61 us) */
  236. /************************************************************************/
  237. void vDS18B20_WriteBit( uint8_t u8Bit )
  238. {
  239. //low for 1 us
  240. DS18B20_PORT &= ~ (1U<<DS18B20_DQ); //low
  241. 15c: 43 98 cbi 0x08, 3 ; 8
  242. DS18B20_DDR |= (1U<<DS18B20_DQ); //output
  243. 15e: 3b 9a sbi 0x07, 3 ; 7
  244. 160: 96 e0 ldi r25, 0x06 ; 6
  245. 162: 9a 95 dec r25
  246. 164: f1 f7 brne .-4 ; 0x162 <vDS18B20_WriteBit+0x6>
  247. 166: 00 c0 rjmp .+0 ; 0x168 <vDS18B20_WriteBit+0xc>
  248. _delay_us(1);
  249. //if we want to write 1, release the line (if not will keep low)
  250. if (1U == u8Bit )
  251. 168: 81 30 cpi r24, 0x01 ; 1
  252. 16a: 09 f4 brne .+2 ; 0x16e <vDS18B20_WriteBit+0x12>
  253. {
  254. DS18B20_DDR &= ~(1<<DS18B20_DQ); //input
  255. 16c: 3b 98 cbi 0x07, 3 ; 7
  256. 16e: 8b e2 ldi r24, 0x2B ; 43
  257. 170: 91 e0 ldi r25, 0x01 ; 1
  258. 172: 01 97 sbiw r24, 0x01 ; 1
  259. 174: f1 f7 brne .-4 ; 0x172 <vDS18B20_WriteBit+0x16>
  260. 176: 00 c0 rjmp .+0 ; 0x178 <vDS18B20_WriteBit+0x1c>
  261. 178: 00 00 nop
  262. }
  263. //wait 60 us and release the line
  264. _delay_us(60);
  265. DS18B20_DDR &= ~(1<<DS18B20_DQ); //input
  266. 17a: 3b 98 cbi 0x07, 3 ; 7
  267. 17c: 08 95 ret
  268. 0000017e <vDS18B20_WriteByte>:
  269. /************************************************************************/
  270. /* Write byte to DS18B20 (8 * 61 us = 488 us) */
  271. /************************************************************************/
  272. void vDS18B20_WriteByte( uint8_t u8Byte )
  273. {
  274. 17e: cf 93 push r28
  275. 180: df 93 push r29
  276. 182: d8 2f mov r29, r24
  277. 184: c8 e0 ldi r28, 0x08 ; 8
  278. uint8_t u8Bits = 8U;
  279. while ( u8Bits-- )
  280. {
  281. vDS18B20_WriteBit( u8Byte & 1U );
  282. 186: 8d 2f mov r24, r29
  283. 188: 81 70 andi r24, 0x01 ; 1
  284. 18a: e8 df rcall .-48 ; 0x15c <vDS18B20_WriteBit>
  285. u8Byte >>= 1U;
  286. 18c: d6 95 lsr r29
  287. 18e: c1 50 subi r28, 0x01 ; 1
  288. /************************************************************************/
  289. void vDS18B20_WriteByte( uint8_t u8Byte )
  290. {
  291. uint8_t u8Bits = 8U;
  292. while ( u8Bits-- )
  293. 190: d1 f7 brne .-12 ; 0x186 <vDS18B20_WriteByte+0x8>
  294. vDS18B20_WriteBit( u8Byte & 1U );
  295. u8Byte >>= 1U;
  296. }
  297. return; //void
  298. }
  299. 192: df 91 pop r29
  300. 194: cf 91 pop r28
  301. 196: 08 95 ret
  302. 00000198 <u8DS18B20_ReadBit>:
  303. uint8_t u8DS18B20_ReadBit( void )
  304. {
  305. uint8_t u8Bit = 0U;
  306. //low for 1 us
  307. DS18B20_PORT &= ~ (1U<<DS18B20_DQ); //low
  308. 198: 43 98 cbi 0x08, 3 ; 8
  309. DS18B20_DDR |= (1U<<DS18B20_DQ); //output
  310. 19a: 3b 9a sbi 0x07, 3 ; 7
  311. 19c: 86 e0 ldi r24, 0x06 ; 6
  312. 19e: 8a 95 dec r24
  313. 1a0: f1 f7 brne .-4 ; 0x19e <u8DS18B20_ReadBit+0x6>
  314. 1a2: 00 c0 rjmp .+0 ; 0x1a4 <u8DS18B20_ReadBit+0xc>
  315. _delay_us(1);
  316. //release line and wait for 14 us
  317. DS18B20_DDR &= ~(1U<<DS18B20_DQ); //input
  318. 1a4: 3b 98 cbi 0x07, 3 ; 7
  319. 1a6: ed e5 ldi r30, 0x5D ; 93
  320. 1a8: ea 95 dec r30
  321. 1aa: f1 f7 brne .-4 ; 0x1a8 <u8DS18B20_ReadBit+0x10>
  322. 1ac: 00 00 nop
  323. _delay_us(14);
  324. //read the value
  325. if ( DS18B20_PIN & (1U<<DS18B20_DQ) )
  326. 1ae: 86 b1 in r24, 0x06 ; 6
  327. 1b0: e0 ee ldi r30, 0xE0 ; 224
  328. 1b2: f0 e0 ldi r31, 0x00 ; 0
  329. 1b4: 31 97 sbiw r30, 0x01 ; 1
  330. 1b6: f1 f7 brne .-4 ; 0x1b4 <u8DS18B20_ReadBit+0x1c>
  331. 1b8: 00 c0 rjmp .+0 ; 0x1ba <u8DS18B20_ReadBit+0x22>
  332. 1ba: 00 00 nop
  333. //wait 45 us and return read value
  334. _delay_us(45);
  335. return u8Bit;
  336. }
  337. 1bc: 83 fb bst r24, 3
  338. 1be: 88 27 eor r24, r24
  339. 1c0: 80 f9 bld r24, 0
  340. 1c2: 08 95 ret
  341. 000001c4 <u8DS18B20_ReadByte>:
  342. /************************************************************************/
  343. /* Read byte from DS18B20 (8 * 60 us = 480 us) */
  344. /************************************************************************/
  345. uint8_t u8DS18B20_ReadByte( void )
  346. {
  347. 1c4: cf 93 push r28
  348. 1c6: df 93 push r29
  349. 1c8: d8 e0 ldi r29, 0x08 ; 8
  350. uint8_t u8Bits = 8U;
  351. uint8_t n = 0U;
  352. 1ca: c0 e0 ldi r28, 0x00 ; 0
  353. while ( u8Bits-- )
  354. {
  355. n >>= 1U;
  356. n |= (u8DS18B20_ReadBit()<<7U);
  357. 1cc: e5 df rcall .-54 ; 0x198 <u8DS18B20_ReadBit>
  358. 1ce: 20 e8 ldi r18, 0x80 ; 128
  359. 1d0: 82 9f mul r24, r18
  360. 1d2: c0 01 movw r24, r0
  361. 1d4: 11 24 eor r1, r1
  362. 1d6: c6 95 lsr r28
  363. 1d8: c8 2b or r28, r24
  364. 1da: d1 50 subi r29, 0x01 ; 1
  365. /************************************************************************/
  366. uint8_t u8DS18B20_ReadByte( void )
  367. {
  368. uint8_t u8Bits = 8U;
  369. uint8_t n = 0U;
  370. while ( u8Bits-- )
  371. 1dc: b9 f7 brne .-18 ; 0x1cc <u8DS18B20_ReadByte+0x8>
  372. n >>= 1U;
  373. n |= (u8DS18B20_ReadBit()<<7U);
  374. }
  375. return n;
  376. }
  377. 1de: 8c 2f mov r24, r28
  378. 1e0: df 91 pop r29
  379. 1e2: cf 91 pop r28
  380. 1e4: 08 95 ret
  381. 000001e6 <main>:
  382. {
  383. uint8_t u8TempLo, u8TempHi;
  384. float f32Temperature;
  385. /* Init I/O: */
  386. vInit();
  387. 1e6: 79 df rcall .-270 ; 0xda <vInit>
  388. /************************************************************************/
  389. /* Set display digits individually */
  390. /************************************************************************/
  391. void vSetDisplayDigits( uint8_t u8Tens, uint8_t u8Ones, uint8_t u8Unit )
  392. {
  393. g_au8Digits[DIGIT_TENS] = u8Tens;
  394. 1e8: e0 e0 ldi r30, 0x00 ; 0
  395. 1ea: f1 e0 ldi r31, 0x01 ; 1
  396. 1ec: 81 e1 ldi r24, 0x11 ; 17
  397. 1ee: 82 83 std Z+2, r24 ; 0x02
  398. g_au8Digits[DIGIT_ONES] = u8Ones;
  399. 1f0: 81 83 std Z+1, r24 ; 0x01
  400. g_au8Digits[DIGIT_UNIT] = u8Unit;
  401. 1f2: 80 83 st Z, r24
  402. #else
  403. //round up by default
  404. __ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
  405. #endif
  406. __builtin_avr_delay_cycles(__ticks_dc);
  407. 1f4: 2f ef ldi r18, 0xFF ; 255
  408. 1f6: 8b e7 ldi r24, 0x7B ; 123
  409. 1f8: 92 e9 ldi r25, 0x92 ; 146
  410. 1fa: 21 50 subi r18, 0x01 ; 1
  411. 1fc: 80 40 sbci r24, 0x00 ; 0
  412. 1fe: 90 40 sbci r25, 0x00 ; 0
  413. 200: e1 f7 brne .-8 ; 0x1fa <main+0x14>
  414. 202: 00 c0 rjmp .+0 ; 0x204 <main+0x1e>
  415. 204: 00 00 nop
  416. /* wait 3 seconds for DS18B20 sensor */
  417. _delay_ms(2400);
  418. while (1)
  419. {
  420. (void) u8DS18B20_Reset();
  421. 206: 92 df rcall .-220 ; 0x12c <u8DS18B20_Reset>
  422. vDS18B20_WriteByte( DS18B20_CMD_SKIPROM );
  423. 208: 8c ec ldi r24, 0xCC ; 204
  424. 20a: b9 df rcall .-142 ; 0x17e <vDS18B20_WriteByte>
  425. vDS18B20_WriteByte( DS18B20_CMD_CONVERTTEMP );
  426. 20c: 84 e4 ldi r24, 0x44 ; 68
  427. 20e: b7 df rcall .-146 ; 0x17e <vDS18B20_WriteByte>
  428. while ( !u8DS18B20_ReadBit() );
  429. 210: c3 df rcall .-122 ; 0x198 <u8DS18B20_ReadBit>
  430. 212: 88 23 and r24, r24
  431. 214: e9 f3 breq .-6 ; 0x210 <main+0x2a>
  432. (void) u8DS18B20_Reset();
  433. 216: 8a df rcall .-236 ; 0x12c <u8DS18B20_Reset>
  434. vDS18B20_WriteByte( DS18B20_CMD_SKIPROM );
  435. 218: 8c ec ldi r24, 0xCC ; 204
  436. 21a: b1 df rcall .-158 ; 0x17e <vDS18B20_WriteByte>
  437. vDS18B20_WriteByte( DS18B20_CMD_RSCRATCHPAD );
  438. 21c: 8e eb ldi r24, 0xBE ; 190
  439. 21e: af df rcall .-162 ; 0x17e <vDS18B20_WriteByte>
  440. u8TempLo = u8DS18B20_ReadByte();
  441. 220: d1 df rcall .-94 ; 0x1c4 <u8DS18B20_ReadByte>
  442. 222: c8 2f mov r28, r24
  443. u8TempHi = u8DS18B20_ReadByte();
  444. 224: cf df rcall .-98 ; 0x1c4 <u8DS18B20_ReadByte>
  445. f32Temperature = ((u8TempHi << 8) + u8TempLo) * 0.0625;
  446. vSetValue( (uint8_t) f32Temperature, SYM_DEG_CELCIUS );
  447. 226: 68 2f mov r22, r24
  448. 228: 70 e0 ldi r23, 0x00 ; 0
  449. 22a: 76 2f mov r23, r22
  450. 22c: 66 27 eor r22, r22
  451. 22e: 6c 0f add r22, r28
  452. 230: 71 1d adc r23, r1
  453. 232: 07 2e mov r0, r23
  454. 234: 00 0c add r0, r0
  455. 236: 88 0b sbc r24, r24
  456. 238: 99 0b sbc r25, r25
  457. 23a: 41 d0 rcall .+130 ; 0x2be <__floatsisf>
  458. 23c: 20 e0 ldi r18, 0x00 ; 0
  459. 23e: 30 e0 ldi r19, 0x00 ; 0
  460. 240: 40 e8 ldi r20, 0x80 ; 128
  461. 242: 5d e3 ldi r21, 0x3D ; 61
  462. 244: a0 d0 rcall .+320 ; 0x386 <__mulsf3>
  463. 246: 0d d0 rcall .+26 ; 0x262 <__fixunssfsi>
  464. 248: 86 2f mov r24, r22
  465. 24a: 6e e0 ldi r22, 0x0E ; 14
  466. 24c: 5c df rcall .-328 ; 0x106 <vSetValue>
  467. 24e: 2f e7 ldi r18, 0x7F ; 127
  468. 250: 84 e8 ldi r24, 0x84 ; 132
  469. 252: 9e e1 ldi r25, 0x1E ; 30
  470. 254: 21 50 subi r18, 0x01 ; 1
  471. 256: 80 40 sbci r24, 0x00 ; 0
  472. 258: 90 40 sbci r25, 0x00 ; 0
  473. 25a: e1 f7 brne .-8 ; 0x254 <main+0x6e>
  474. 25c: 00 c0 rjmp .+0 ; 0x25e <main+0x78>
  475. 25e: 00 00 nop
  476. 260: d2 cf rjmp .-92 ; 0x206 <main+0x20>
  477. 00000262 <__fixunssfsi>:
  478. 262: 70 d0 rcall .+224 ; 0x344 <__fp_splitA>
  479. 264: 88 f0 brcs .+34 ; 0x288 <__fixunssfsi+0x26>
  480. 266: 9f 57 subi r25, 0x7F ; 127
  481. 268: 90 f0 brcs .+36 ; 0x28e <__fixunssfsi+0x2c>
  482. 26a: b9 2f mov r27, r25
  483. 26c: 99 27 eor r25, r25
  484. 26e: b7 51 subi r27, 0x17 ; 23
  485. 270: a0 f0 brcs .+40 ; 0x29a <__fixunssfsi+0x38>
  486. 272: d1 f0 breq .+52 ; 0x2a8 <__fixunssfsi+0x46>
  487. 274: 66 0f add r22, r22
  488. 276: 77 1f adc r23, r23
  489. 278: 88 1f adc r24, r24
  490. 27a: 99 1f adc r25, r25
  491. 27c: 1a f0 brmi .+6 ; 0x284 <__fixunssfsi+0x22>
  492. 27e: ba 95 dec r27
  493. 280: c9 f7 brne .-14 ; 0x274 <__fixunssfsi+0x12>
  494. 282: 12 c0 rjmp .+36 ; 0x2a8 <__fixunssfsi+0x46>
  495. 284: b1 30 cpi r27, 0x01 ; 1
  496. 286: 81 f0 breq .+32 ; 0x2a8 <__fixunssfsi+0x46>
  497. 288: 77 d0 rcall .+238 ; 0x378 <__fp_zero>
  498. 28a: b1 e0 ldi r27, 0x01 ; 1
  499. 28c: 08 95 ret
  500. 28e: 74 c0 rjmp .+232 ; 0x378 <__fp_zero>
  501. 290: 67 2f mov r22, r23
  502. 292: 78 2f mov r23, r24
  503. 294: 88 27 eor r24, r24
  504. 296: b8 5f subi r27, 0xF8 ; 248
  505. 298: 39 f0 breq .+14 ; 0x2a8 <__fixunssfsi+0x46>
  506. 29a: b9 3f cpi r27, 0xF9 ; 249
  507. 29c: cc f3 brlt .-14 ; 0x290 <__fixunssfsi+0x2e>
  508. 29e: 86 95 lsr r24
  509. 2a0: 77 95 ror r23
  510. 2a2: 67 95 ror r22
  511. 2a4: b3 95 inc r27
  512. 2a6: d9 f7 brne .-10 ; 0x29e <__fixunssfsi+0x3c>
  513. 2a8: 3e f4 brtc .+14 ; 0x2b8 <__fixunssfsi+0x56>
  514. 2aa: 90 95 com r25
  515. 2ac: 80 95 com r24
  516. 2ae: 70 95 com r23
  517. 2b0: 61 95 neg r22
  518. 2b2: 7f 4f sbci r23, 0xFF ; 255
  519. 2b4: 8f 4f sbci r24, 0xFF ; 255
  520. 2b6: 9f 4f sbci r25, 0xFF ; 255
  521. 2b8: 08 95 ret
  522. 000002ba <__floatunsisf>:
  523. 2ba: e8 94 clt
  524. 2bc: 09 c0 rjmp .+18 ; 0x2d0 <__floatsisf+0x12>
  525. 000002be <__floatsisf>:
  526. 2be: 97 fb bst r25, 7
  527. 2c0: 3e f4 brtc .+14 ; 0x2d0 <__floatsisf+0x12>
  528. 2c2: 90 95 com r25
  529. 2c4: 80 95 com r24
  530. 2c6: 70 95 com r23
  531. 2c8: 61 95 neg r22
  532. 2ca: 7f 4f sbci r23, 0xFF ; 255
  533. 2cc: 8f 4f sbci r24, 0xFF ; 255
  534. 2ce: 9f 4f sbci r25, 0xFF ; 255
  535. 2d0: 99 23 and r25, r25
  536. 2d2: a9 f0 breq .+42 ; 0x2fe <__floatsisf+0x40>
  537. 2d4: f9 2f mov r31, r25
  538. 2d6: 96 e9 ldi r25, 0x96 ; 150
  539. 2d8: bb 27 eor r27, r27
  540. 2da: 93 95 inc r25
  541. 2dc: f6 95 lsr r31
  542. 2de: 87 95 ror r24
  543. 2e0: 77 95 ror r23
  544. 2e2: 67 95 ror r22
  545. 2e4: b7 95 ror r27
  546. 2e6: f1 11 cpse r31, r1
  547. 2e8: f8 cf rjmp .-16 ; 0x2da <__floatsisf+0x1c>
  548. 2ea: fa f4 brpl .+62 ; 0x32a <__floatsisf+0x6c>
  549. 2ec: bb 0f add r27, r27
  550. 2ee: 11 f4 brne .+4 ; 0x2f4 <__floatsisf+0x36>
  551. 2f0: 60 ff sbrs r22, 0
  552. 2f2: 1b c0 rjmp .+54 ; 0x32a <__floatsisf+0x6c>
  553. 2f4: 6f 5f subi r22, 0xFF ; 255
  554. 2f6: 7f 4f sbci r23, 0xFF ; 255
  555. 2f8: 8f 4f sbci r24, 0xFF ; 255
  556. 2fa: 9f 4f sbci r25, 0xFF ; 255
  557. 2fc: 16 c0 rjmp .+44 ; 0x32a <__floatsisf+0x6c>
  558. 2fe: 88 23 and r24, r24
  559. 300: 11 f0 breq .+4 ; 0x306 <__floatsisf+0x48>
  560. 302: 96 e9 ldi r25, 0x96 ; 150
  561. 304: 11 c0 rjmp .+34 ; 0x328 <__floatsisf+0x6a>
  562. 306: 77 23 and r23, r23
  563. 308: 21 f0 breq .+8 ; 0x312 <__floatsisf+0x54>
  564. 30a: 9e e8 ldi r25, 0x8E ; 142
  565. 30c: 87 2f mov r24, r23
  566. 30e: 76 2f mov r23, r22
  567. 310: 05 c0 rjmp .+10 ; 0x31c <__floatsisf+0x5e>
  568. 312: 66 23 and r22, r22
  569. 314: 71 f0 breq .+28 ; 0x332 <__floatsisf+0x74>
  570. 316: 96 e8 ldi r25, 0x86 ; 134
  571. 318: 86 2f mov r24, r22
  572. 31a: 70 e0 ldi r23, 0x00 ; 0
  573. 31c: 60 e0 ldi r22, 0x00 ; 0
  574. 31e: 2a f0 brmi .+10 ; 0x32a <__floatsisf+0x6c>
  575. 320: 9a 95 dec r25
  576. 322: 66 0f add r22, r22
  577. 324: 77 1f adc r23, r23
  578. 326: 88 1f adc r24, r24
  579. 328: da f7 brpl .-10 ; 0x320 <__floatsisf+0x62>
  580. 32a: 88 0f add r24, r24
  581. 32c: 96 95 lsr r25
  582. 32e: 87 95 ror r24
  583. 330: 97 f9 bld r25, 7
  584. 332: 08 95 ret
  585. 00000334 <__fp_split3>:
  586. 334: 57 fd sbrc r21, 7
  587. 336: 90 58 subi r25, 0x80 ; 128
  588. 338: 44 0f add r20, r20
  589. 33a: 55 1f adc r21, r21
  590. 33c: 59 f0 breq .+22 ; 0x354 <__fp_splitA+0x10>
  591. 33e: 5f 3f cpi r21, 0xFF ; 255
  592. 340: 71 f0 breq .+28 ; 0x35e <__fp_splitA+0x1a>
  593. 342: 47 95 ror r20
  594. 00000344 <__fp_splitA>:
  595. 344: 88 0f add r24, r24
  596. 346: 97 fb bst r25, 7
  597. 348: 99 1f adc r25, r25
  598. 34a: 61 f0 breq .+24 ; 0x364 <__fp_splitA+0x20>
  599. 34c: 9f 3f cpi r25, 0xFF ; 255
  600. 34e: 79 f0 breq .+30 ; 0x36e <__fp_splitA+0x2a>
  601. 350: 87 95 ror r24
  602. 352: 08 95 ret
  603. 354: 12 16 cp r1, r18
  604. 356: 13 06 cpc r1, r19
  605. 358: 14 06 cpc r1, r20
  606. 35a: 55 1f adc r21, r21
  607. 35c: f2 cf rjmp .-28 ; 0x342 <__fp_split3+0xe>
  608. 35e: 46 95 lsr r20
  609. 360: f1 df rcall .-30 ; 0x344 <__fp_splitA>
  610. 362: 08 c0 rjmp .+16 ; 0x374 <__fp_splitA+0x30>
  611. 364: 16 16 cp r1, r22
  612. 366: 17 06 cpc r1, r23
  613. 368: 18 06 cpc r1, r24
  614. 36a: 99 1f adc r25, r25
  615. 36c: f1 cf rjmp .-30 ; 0x350 <__fp_splitA+0xc>
  616. 36e: 86 95 lsr r24
  617. 370: 71 05 cpc r23, r1
  618. 372: 61 05 cpc r22, r1
  619. 374: 08 94 sec
  620. 376: 08 95 ret
  621. 00000378 <__fp_zero>:
  622. 378: e8 94 clt
  623. 0000037a <__fp_szero>:
  624. 37a: bb 27 eor r27, r27
  625. 37c: 66 27 eor r22, r22
  626. 37e: 77 27 eor r23, r23
  627. 380: cb 01 movw r24, r22
  628. 382: 97 f9 bld r25, 7
  629. 384: 08 95 ret
  630. 00000386 <__mulsf3>:
  631. 386: 0b d0 rcall .+22 ; 0x39e <__mulsf3x>
  632. 388: 78 c0 rjmp .+240 ; 0x47a <__fp_round>
  633. 38a: 69 d0 rcall .+210 ; 0x45e <__fp_pscA>
  634. 38c: 28 f0 brcs .+10 ; 0x398 <__mulsf3+0x12>
  635. 38e: 6e d0 rcall .+220 ; 0x46c <__fp_pscB>
  636. 390: 18 f0 brcs .+6 ; 0x398 <__mulsf3+0x12>
  637. 392: 95 23 and r25, r21
  638. 394: 09 f0 breq .+2 ; 0x398 <__mulsf3+0x12>
  639. 396: 5a c0 rjmp .+180 ; 0x44c <__fp_inf>
  640. 398: 5f c0 rjmp .+190 ; 0x458 <__fp_nan>
  641. 39a: 11 24 eor r1, r1
  642. 39c: ee cf rjmp .-36 ; 0x37a <__fp_szero>
  643. 0000039e <__mulsf3x>:
  644. 39e: ca df rcall .-108 ; 0x334 <__fp_split3>
  645. 3a0: a0 f3 brcs .-24 ; 0x38a <__mulsf3+0x4>
  646. 000003a2 <__mulsf3_pse>:
  647. 3a2: 95 9f mul r25, r21
  648. 3a4: d1 f3 breq .-12 ; 0x39a <__mulsf3+0x14>
  649. 3a6: 95 0f add r25, r21
  650. 3a8: 50 e0 ldi r21, 0x00 ; 0
  651. 3aa: 55 1f adc r21, r21
  652. 3ac: 62 9f mul r22, r18
  653. 3ae: f0 01 movw r30, r0
  654. 3b0: 72 9f mul r23, r18
  655. 3b2: bb 27 eor r27, r27
  656. 3b4: f0 0d add r31, r0
  657. 3b6: b1 1d adc r27, r1
  658. 3b8: 63 9f mul r22, r19
  659. 3ba: aa 27 eor r26, r26
  660. 3bc: f0 0d add r31, r0
  661. 3be: b1 1d adc r27, r1
  662. 3c0: aa 1f adc r26, r26
  663. 3c2: 64 9f mul r22, r20
  664. 3c4: 66 27 eor r22, r22
  665. 3c6: b0 0d add r27, r0
  666. 3c8: a1 1d adc r26, r1
  667. 3ca: 66 1f adc r22, r22
  668. 3cc: 82 9f mul r24, r18
  669. 3ce: 22 27 eor r18, r18
  670. 3d0: b0 0d add r27, r0
  671. 3d2: a1 1d adc r26, r1
  672. 3d4: 62 1f adc r22, r18
  673. 3d6: 73 9f mul r23, r19
  674. 3d8: b0 0d add r27, r0
  675. 3da: a1 1d adc r26, r1
  676. 3dc: 62 1f adc r22, r18
  677. 3de: 83 9f mul r24, r19
  678. 3e0: a0 0d add r26, r0
  679. 3e2: 61 1d adc r22, r1
  680. 3e4: 22 1f adc r18, r18
  681. 3e6: 74 9f mul r23, r20
  682. 3e8: 33 27 eor r19, r19
  683. 3ea: a0 0d add r26, r0
  684. 3ec: 61 1d adc r22, r1
  685. 3ee: 23 1f adc r18, r19
  686. 3f0: 84 9f mul r24, r20
  687. 3f2: 60 0d add r22, r0
  688. 3f4: 21 1d adc r18, r1
  689. 3f6: 82 2f mov r24, r18
  690. 3f8: 76 2f mov r23, r22
  691. 3fa: 6a 2f mov r22, r26
  692. 3fc: 11 24 eor r1, r1
  693. 3fe: 9f 57 subi r25, 0x7F ; 127
  694. 400: 50 40 sbci r21, 0x00 ; 0
  695. 402: 8a f0 brmi .+34 ; 0x426 <__LOCK_REGION_LENGTH__+0x26>
  696. 404: e1 f0 breq .+56 ; 0x43e <__LOCK_REGION_LENGTH__+0x3e>
  697. 406: 88 23 and r24, r24
  698. 408: 4a f0 brmi .+18 ; 0x41c <__LOCK_REGION_LENGTH__+0x1c>
  699. 40a: ee 0f add r30, r30
  700. 40c: ff 1f adc r31, r31
  701. 40e: bb 1f adc r27, r27
  702. 410: 66 1f adc r22, r22
  703. 412: 77 1f adc r23, r23
  704. 414: 88 1f adc r24, r24
  705. 416: 91 50 subi r25, 0x01 ; 1
  706. 418: 50 40 sbci r21, 0x00 ; 0
  707. 41a: a9 f7 brne .-22 ; 0x406 <__LOCK_REGION_LENGTH__+0x6>
  708. 41c: 9e 3f cpi r25, 0xFE ; 254
  709. 41e: 51 05 cpc r21, r1
  710. 420: 70 f0 brcs .+28 ; 0x43e <__LOCK_REGION_LENGTH__+0x3e>
  711. 422: 14 c0 rjmp .+40 ; 0x44c <__fp_inf>
  712. 424: aa cf rjmp .-172 ; 0x37a <__fp_szero>
  713. 426: 5f 3f cpi r21, 0xFF ; 255
  714. 428: ec f3 brlt .-6 ; 0x424 <__LOCK_REGION_LENGTH__+0x24>
  715. 42a: 98 3e cpi r25, 0xE8 ; 232
  716. 42c: dc f3 brlt .-10 ; 0x424 <__LOCK_REGION_LENGTH__+0x24>
  717. 42e: 86 95 lsr r24
  718. 430: 77 95 ror r23
  719. 432: 67 95 ror r22
  720. 434: b7 95 ror r27
  721. 436: f7 95 ror r31
  722. 438: e7 95 ror r30
  723. 43a: 9f 5f subi r25, 0xFF ; 255
  724. 43c: c1 f7 brne .-16 ; 0x42e <__LOCK_REGION_LENGTH__+0x2e>
  725. 43e: fe 2b or r31, r30
  726. 440: 88 0f add r24, r24
  727. 442: 91 1d adc r25, r1
  728. 444: 96 95 lsr r25
  729. 446: 87 95 ror r24
  730. 448: 97 f9 bld r25, 7
  731. 44a: 08 95 ret
  732. 0000044c <__fp_inf>:
  733. 44c: 97 f9 bld r25, 7
  734. 44e: 9f 67 ori r25, 0x7F ; 127
  735. 450: 80 e8 ldi r24, 0x80 ; 128
  736. 452: 70 e0 ldi r23, 0x00 ; 0
  737. 454: 60 e0 ldi r22, 0x00 ; 0
  738. 456: 08 95 ret
  739. 00000458 <__fp_nan>:
  740. 458: 9f ef ldi r25, 0xFF ; 255
  741. 45a: 80 ec ldi r24, 0xC0 ; 192
  742. 45c: 08 95 ret
  743. 0000045e <__fp_pscA>:
  744. 45e: 00 24 eor r0, r0
  745. 460: 0a 94 dec r0
  746. 462: 16 16 cp r1, r22
  747. 464: 17 06 cpc r1, r23
  748. 466: 18 06 cpc r1, r24
  749. 468: 09 06 cpc r0, r25
  750. 46a: 08 95 ret
  751. 0000046c <__fp_pscB>:
  752. 46c: 00 24 eor r0, r0
  753. 46e: 0a 94 dec r0
  754. 470: 12 16 cp r1, r18
  755. 472: 13 06 cpc r1, r19
  756. 474: 14 06 cpc r1, r20
  757. 476: 05 06 cpc r0, r21
  758. 478: 08 95 ret
  759. 0000047a <__fp_round>:
  760. 47a: 09 2e mov r0, r25
  761. 47c: 03 94 inc r0
  762. 47e: 00 0c add r0, r0
  763. 480: 11 f4 brne .+4 ; 0x486 <__fp_round+0xc>
  764. 482: 88 23 and r24, r24
  765. 484: 52 f0 brmi .+20 ; 0x49a <__fp_round+0x20>
  766. 486: bb 0f add r27, r27
  767. 488: 40 f4 brcc .+16 ; 0x49a <__fp_round+0x20>
  768. 48a: bf 2b or r27, r31
  769. 48c: 11 f4 brne .+4 ; 0x492 <__fp_round+0x18>
  770. 48e: 60 ff sbrs r22, 0
  771. 490: 04 c0 rjmp .+8 ; 0x49a <__fp_round+0x20>
  772. 492: 6f 5f subi r22, 0xFF ; 255
  773. 494: 7f 4f sbci r23, 0xFF ; 255
  774. 496: 8f 4f sbci r24, 0xFF ; 255
  775. 498: 9f 4f sbci r25, 0xFF ; 255
  776. 49a: 08 95 ret
  777. 0000049c <_exit>:
  778. 49c: f8 94 cli
  779. 0000049e <__stop_program>:
  780. 49e: ff cf rjmp .-2 ; 0x49e <__stop_program>