📄 main.lss
字号:
#ifndef OW_ONE_BUS
//ow_set_bus(&PIND,&PORTD,&DDRD,PD6);
#endif
sei();
738: 78 94 sei
uart_puts_P( "\rDS18X20 1-Wire-Reader Demo by Martin Thomas\r" );
73a: 8a e9 ldi r24, 0x9A ; 154
73c: 90 e0 ldi r25, 0x00 ; 0
73e: 0e 94 8e 0b call 0x171c <uart_puts_p>
uart_puts_P( "-------------------------------------------" );
742: 88 ec ldi r24, 0xC8 ; 200
744: 90 e0 ldi r25, 0x00 ; 0
746: 0e 94 8e 0b call 0x171c <uart_puts_p>
// dbg uart_puts_P( "\r" );
// dbg uart_puti((int) OW_CONF_DELAYOFFSET);
// dbg uart_puts_P( "\r" );
nSensors = search_sensors();
74a: 0e 94 c8 02 call 0x590 <search_sensors>
74e: c8 2e mov r12, r24
uart_puti((int) nSensors);
750: 99 27 eor r25, r25
752: 0e 94 a0 0b call 0x1740 <uart_puti>
uart_puts_P( " DS18X20 Sensor(s) available:\r" );
756: 84 ef ldi r24, 0xF4 ; 244
758: 90 e0 ldi r25, 0x00 ; 0
75a: 0e 94 8e 0b call 0x171c <uart_puts_p>
#ifdef DS18X20_VERBOSE
for (i=0; i<nSensors; i++) {
75e: dd 24 eor r13, r13
760: dc 14 cp r13, r12
762: 18 f5 brcc .+70 ; 0x7aa <main+0x86>
764: 3f ea ldi r19, 0xAF ; 175
766: e3 2e mov r14, r19
768: 30 e0 ldi r19, 0x00 ; 0
76a: f3 2e mov r15, r19
76c: 00 e0 ldi r16, 0x00 ; 0
76e: 10 e0 ldi r17, 0x00 ; 0
uart_puts_P("# in Bus :");
770: 83 e1 ldi r24, 0x13 ; 19
772: 91 e0 ldi r25, 0x01 ; 1
774: 0e 94 8e 0b call 0x171c <uart_puts_p>
uart_puti((int) i+1);
778: 0f 5f subi r16, 0xFF ; 255
77a: 1f 4f sbci r17, 0xFF ; 255
77c: c8 01 movw r24, r16
77e: 0e 94 a0 0b call 0x1740 <uart_puti>
uart_puts_P(" : ");
782: 8e e1 ldi r24, 0x1E ; 30
784: 91 e0 ldi r25, 0x01 ; 1
786: 0e 94 8e 0b call 0x171c <uart_puts_p>
DS18X20_show_id_uart( &gSensorIDs[i][0], OW_ROMCODE_SIZE );
78a: 68 e0 ldi r22, 0x08 ; 8
78c: 70 e0 ldi r23, 0x00 ; 0
78e: c7 01 movw r24, r14
790: 0e 94 25 07 call 0xe4a <DS18X20_show_id_uart>
uart_puts_P( "\r" );
794: 82 e2 ldi r24, 0x22 ; 34
796: 91 e0 ldi r25, 0x01 ; 1
798: 0e 94 8e 0b call 0x171c <uart_puts_p>
79c: d3 94 inc r13
79e: 28 e0 ldi r18, 0x08 ; 8
7a0: 30 e0 ldi r19, 0x00 ; 0
7a2: e2 0e add r14, r18
7a4: f3 1e adc r15, r19
7a6: dc 14 cp r13, r12
7a8: 18 f3 brcs .-58 ; 0x770 <main+0x4c>
}
#endif
for (i=0; i<nSensors; i++) {
7aa: dd 24 eor r13, r13
7ac: dc 14 cp r13, r12
7ae: e0 f5 brcc .+120 ; 0x828 <main+0x104>
7b0: 0f ea ldi r16, 0xAF ; 175
7b2: 10 e0 ldi r17, 0x00 ; 0
7b4: 58 01 movw r10, r16
7b6: ee 24 eor r14, r14
7b8: ff 24 eor r15, r15
uart_puts_P("Sensor# ");
7ba: 84 e2 ldi r24, 0x24 ; 36
7bc: 91 e0 ldi r25, 0x01 ; 1
7be: 0e 94 8e 0b call 0x171c <uart_puts_p>
uart_puti((int) i+1);
7c2: c7 01 movw r24, r14
7c4: 01 96 adiw r24, 0x01 ; 1
7c6: 0e 94 a0 0b call 0x1740 <uart_puti>
uart_puts_P(" is a ");
7ca: 8d e2 ldi r24, 0x2D ; 45
7cc: 91 e0 ldi r25, 0x01 ; 1
7ce: 0e 94 8e 0b call 0x171c <uart_puts_p>
if ( gSensorIDs[i][0] == DS18S20_ID)
7d2: f5 01 movw r30, r10
7d4: 80 81 ld r24, Z
7d6: 28 e0 ldi r18, 0x08 ; 8
7d8: 30 e0 ldi r19, 0x00 ; 0
7da: a2 0e add r10, r18
7dc: b3 1e adc r11, r19
7de: 80 31 cpi r24, 0x10 ; 16
7e0: 19 f4 brne .+6 ; 0x7e8 <main+0xc4>
uart_puts_P("DS18S20/DS1820");
7e2: 84 e3 ldi r24, 0x34 ; 52
7e4: 91 e0 ldi r25, 0x01 ; 1
7e6: 02 c0 rjmp .+4 ; 0x7ec <main+0xc8>
else uart_puts_P("DS18B20");
7e8: 83 e4 ldi r24, 0x43 ; 67
7ea: 91 e0 ldi r25, 0x01 ; 1
7ec: 0e 94 8e 0b call 0x171c <uart_puts_p>
uart_puts_P(" which is ");
7f0: 8b e4 ldi r24, 0x4B ; 75
7f2: 91 e0 ldi r25, 0x01 ; 1
7f4: 0e 94 8e 0b call 0x171c <uart_puts_p>
if ( DS18X20_get_power_status( &gSensorIDs[i][0] ) ==
7f8: c8 01 movw r24, r16
7fa: 0e 94 57 09 call 0x12ae <DS18X20_get_power_status>
7fe: 88 23 and r24, r24
800: 19 f4 brne .+6 ; 0x808 <main+0xe4>
DS18X20_POWER_PARASITE )
uart_puts_P( "parasite" );
802: 86 e5 ldi r24, 0x56 ; 86
804: 91 e0 ldi r25, 0x01 ; 1
806: 02 c0 rjmp .+4 ; 0x80c <main+0xe8>
else uart_puts_P( "externally" );
808: 8f e5 ldi r24, 0x5F ; 95
80a: 91 e0 ldi r25, 0x01 ; 1
80c: 0e 94 8e 0b call 0x171c <uart_puts_p>
uart_puts_P( " powered\r" );
810: 8a e6 ldi r24, 0x6A ; 106
812: 91 e0 ldi r25, 0x01 ; 1
814: 0e 94 8e 0b call 0x171c <uart_puts_p>
818: d3 94 inc r13
81a: 08 94 sec
81c: e1 1c adc r14, r1
81e: f1 1c adc r15, r1
820: 08 5f subi r16, 0xF8 ; 248
822: 1f 4f sbci r17, 0xFF ; 255
824: dc 14 cp r13, r12
826: 48 f2 brcs .-110 ; 0x7ba <main+0x96>
}
#ifdef DS18X20_EEPROMSUPPORT
if (nSensors>0) {
828: cc 20 and r12, r12
82a: 09 f4 brne .+2 ; 0x82e <main+0x10a>
82c: 69 c0 rjmp .+210 ; 0x900 <main+0x1dc>
82e: 84 e7 ldi r24, 0x74 ; 116
830: 91 e0 ldi r25, 0x01 ; 1
832: 0e 94 8e 0b call 0x171c <uart_puts_p>
836: be 01 movw r22, r28
838: 6f 5f subi r22, 0xFF ; 255
83a: 7f 4f sbci r23, 0xFF ; 255
83c: 8f ea ldi r24, 0xAF ; 175
83e: 90 e0 ldi r25, 0x00 ; 0
840: 0e 94 81 0a call 0x1502 <DS18X20_read_scratchpad>
844: 1b 81 ldd r17, Y+3 ; 0x03
846: 0c 81 ldd r16, Y+4 ; 0x04
848: 82 ea ldi r24, 0xA2 ; 162
84a: 91 e0 ldi r25, 0x01 ; 1
84c: 0e 94 8e 0b call 0x171c <uart_puts_p>
850: 81 2f mov r24, r17
852: 99 27 eor r25, r25
854: 0e 94 a0 0b call 0x1740 <uart_puti>
858: 80 ec ldi r24, 0xC0 ; 192
85a: 91 e0 ldi r25, 0x01 ; 1
85c: 0e 94 8e 0b call 0x171c <uart_puts_p>
860: 80 2f mov r24, r16
862: 99 27 eor r25, r25
864: 0e 94 a0 0b call 0x1740 <uart_puti>
868: 84 ec ldi r24, 0xC4 ; 196
86a: 91 e0 ldi r25, 0x01 ; 1
86c: 0e 94 8e 0b call 0x171c <uart_puts_p>
870: 0f 5f subi r16, 0xFF ; 255
872: 1f 5f subi r17, 0xFF ; 255
874: 20 e6 ldi r18, 0x60 ; 96
876: 40 2f mov r20, r16
878: 61 2f mov r22, r17
87a: 8f ea ldi r24, 0xAF ; 175
87c: 90 e0 ldi r25, 0x00 ; 0
87e: 0e 94 53 0a call 0x14a6 <DS18X20_write_scratchpad>
882: 86 ec ldi r24, 0xC6 ; 198
884: 91 e0 ldi r25, 0x01 ; 1
886: 0e 94 8e 0b call 0x171c <uart_puts_p>
88a: 6f ea ldi r22, 0xAF ; 175
88c: 70 e0 ldi r23, 0x00 ; 0
88e: 80 e0 ldi r24, 0x00 ; 0
890: 0e 94 a7 0a call 0x154e <DS18X20_copy_scratchpad>
894: 8b ee ldi r24, 0xEB ; 235
896: 91 e0 ldi r25, 0x01 ; 1
898: 0e 94 8e 0b call 0x171c <uart_puts_p>
89c: 8f ea ldi r24, 0xAF ; 175
89e: 90 e0 ldi r25, 0x00 ; 0
8a0: 0e 94 d1 0a call 0x15a2 <DS18X20_recall_E2>
8a4: 80 e1 ldi r24, 0x10 ; 16
8a6: 92 e0 ldi r25, 0x02 ; 2
8a8: 0e 94 8e 0b call 0x171c <uart_puts_p>
8ac: be 01 movw r22, r28
8ae: 6f 5f subi r22, 0xFF ; 255
8b0: 7f 4f sbci r23, 0xFF ; 255
8b2: 8f ea ldi r24, 0xAF ; 175
8b4: 90 e0 ldi r25, 0x00 ; 0
8b6: 0e 94 81 0a call 0x1502 <DS18X20_read_scratchpad>
8ba: 8b 81 ldd r24, Y+3 ; 0x03
8bc: 18 17 cp r17, r24
8be: 31 f4 brne .+12 ; 0x8cc <main+0x1a8>
8c0: 8c 81 ldd r24, Y+4 ; 0x04
8c2: 08 17 cp r16, r24
8c4: 19 f4 brne .+6 ; 0x8cc <main+0x1a8>
8c6: 8a e3 ldi r24, 0x3A ; 58
8c8: 92 e0 ldi r25, 0x02 ; 2
8ca: 02 c0 rjmp .+4 ; 0x8d0 <main+0x1ac>
8cc: 8e e4 ldi r24, 0x4E ; 78
8ce: 92 e0 ldi r25, 0x02 ; 2
8d0: 0e 94 8e 0b call 0x171c <uart_puts_p>
8d4: 1b 81 ldd r17, Y+3 ; 0x03
8d6: 0c 81 ldd r16, Y+4 ; 0x04
8d8: 8d e5 ldi r24, 0x5D ; 93
8da: 92 e0 ldi r25, 0x02 ; 2
8dc: 0e 94 8e 0b call 0x171c <uart_puts_p>
8e0: 81 2f mov r24, r17
8e2: 99 27 eor r25, r25
8e4: 0e 94 a0 0b call 0x1740 <uart_puti>
8e8: 8f e7 ldi r24, 0x7F ; 127
8ea: 92 e0 ldi r25, 0x02 ; 2
8ec: 0e 94 8e 0b call 0x171c <uart_puts_p>
8f0: 80 2f mov r24, r16
8f2: 99 27 eor r25, r25
8f4: 0e 94 a0 0b call 0x1740 <uart_puti>
8f8: 83 e8 ldi r24, 0x83 ; 131
8fa: 92 e0 ldi r25, 0x02 ; 2
8fc: 0e 94 8e 0b call 0x171c <uart_puts_p>
eeprom_test();
}
#endif
if ( nSensors == 1 ) {
900: 31 e0 ldi r19, 0x01 ; 1
902: c3 16 cp r12, r19
904: 31 f5 brne .+76 ; 0x952 <main+0x22e>
uart_puts_P( "\rThere is only one sensor -> Demo of \"read_meas_single\":\r" );
906: 85 e8 ldi r24, 0x85 ; 133
908: 92 e0 ldi r25, 0x02 ; 2
90a: 0e 94 8e 0b call 0x171c <uart_puts_p>
i = gSensorIDs[0][0]; // family-code for conversion-routine
90e: d0 90 af 00 lds r13, 0x00AF
DS18X20_start_meas( DS18X20_POWER_PARASITE, NULL );
912: 60 e0 ldi r22, 0x00 ; 0
914: 70 e0 ldi r23, 0x00 ; 0
916: 80 e0 ldi r24, 0x00 ; 0
918: 0e 94 6f 09 call 0x12de <DS18X20_start_meas>
delay_ms(DS18B20_TCONV_12BIT);
91c: 66 e4 ldi r22, 0x46 ; 70
91e: 71 e4 ldi r23, 0x41 ; 65
920: 8f e0 ldi r24, 0x0F ; 15
922: 90 e0 ldi r25, 0x00 ; 0
924: 0e 94 af 06 call 0xd5e <delayloop32>
DS18X20_read_meas_single(i, &subzero, &cel, &cel_frac_bits);
928: 9e 01 movw r18, r28
92a: 26 5f subi r18, 0xF6 ; 246
92c: 3f 4f sbci r19, 0xFF ; 255
92e: ae 01 movw r20, r28
930: 45 5f subi r20, 0xF5 ; 245
932: 5f 4f sbci r21, 0xFF ; 255
934: be 01 movw r22, r28
936: 64 5f subi r22, 0xF4 ; 244
938: 7f 4f sbci r23, 0xFF ; 255
93a: 8d 2d mov r24, r13
93c: 0e 94 f3 09 call 0x13e6 <DS18X20_read_meas_single>
uart_put_temp(subzero, cel, cel_frac_bits);
940: 4a 85 ldd r20, Y+10 ; 0x0a
942: 6b 85 ldd r22, Y+11 ; 0x0b
944: 8c 85 ldd r24, Y+12 ; 0x0c
946: 0e 94 10 03 call 0x620 <uart_put_temp>
uart_puts_P("\r");
94a: 8f eb ldi r24, 0xBF ; 191
94c: 92 e0 ldi r25, 0x02 ; 2
94e: 0e 94 8e 0b call 0x171c <uart_puts_p>
}
for(;;) { // main loop
uart_puts_P( "\rConvert_T and Read Sensor by Sensor (reverse order)\r" );
952: 81 ec ldi r24, 0xC1 ; 193
954: 92 e0 ldi r25, 0x02 ; 2
956: 0e 94 8e 0b call 0x171c <uart_puts_p>
for ( i=nSensors; i>0; i-- ) {
95a: dc 2c mov r13, r12
95c: dd 20 and r13, r13
95e: 09 f4 brne .+2 ; 0x962 <main+0x23e>
960: 42 c0 rjmp .+132 ; 0x9e6 <main+0x2c2>
if ( DS18X20_start_meas( DS18X20_POWER_PARASITE,
962: ed 2c mov r14, r13
964: ff 24 eor r15, r15
966: 87 01 movw r16, r14
968: 23 e0 ldi r18, 0x03 ; 3
96a: 00 0f add r16, r16
96c: 11 1f adc r17, r17
96e: 2a 95 dec r18
970: e1 f7 brne .-8 ; 0x96a <main+0x246>
972: 09 55 subi r16, 0x59 ; 89
974: 1f 4f sbci r17, 0xFF ; 255
976: b8 01 movw r22, r16
978: 80 e0 ldi r24, 0x00 ; 0
97a: 0e 94 6f 09 call 0x12de <DS18X20_start_meas>
97e: 88 23 and r24, r24
980: 61 f5 brne .+88 ; 0x9da <main+0x2b6>
&gSensorIDs[i-1][0] ) == DS18X20_OK ) {
delay_ms(DS18B20_TCONV_12BIT);
982: 66 e4 ldi r22, 0x46 ; 70
984: 71 e4 ldi r23, 0x41 ; 65
986: 8f e0 ldi r24, 0x0F ; 15
988: 90 e0 ldi r25, 0x00 ; 0
98a: 0e 94 af 06 call 0xd5e <delayloop32>
uart_puts_P("Sensor# ");
98e: 87 ef ldi r24, 0xF7 ; 247
990: 92 e0 ldi r25, 0x02 ; 2
992: 0e 94 8e 0b call 0x171c <uart_puts_p>
uart_puti((int) i);
996: c7 01 movw r24, r14
998: 0e 94 a0 0b call 0x1740 <uart_puti>
uart_puts_P(" = ");
99c: 80 e0 ldi r24, 0x00 ; 0
99e: 93 e0 ldi r25, 0x03 ; 3
9a0: 0e 94 8e 0b call 0x171c <uart_puts_p>
if ( DS18X20_read_meas( &gSensorIDs[i-1][0], &subzero,
9a4: 9e 01 movw r18, r28
9a6: 26 5f subi r18, 0xF6 ; 246
9a8: 3f 4f sbci r19, 0xFF ; 255
9aa: ae 01 movw r20, r28
9ac: 45 5f subi r20, 0xF5 ; 245
9ae: 5f 4f sbci r21, 0xFF ; 255
9b0: be 01 movw r22, r28
9b2: 64 5f subi r22, 0xF4 ; 244
9b4: 7f 4f sbci r23, 0xFF ; 255
9b6: c8 01 movw r24, r16
9b8: 0e 94 8f 09 call 0x131e <DS18X20_read_meas>
9bc: 88 23 and r24, r24
9be: 31 f4 brne .+12 ; 0x9cc <main+0x2a8>
&cel, &cel_frac_bits) == DS18X20_OK ) {
uart_put_temp(subzero, cel, cel_frac_bits);
9c0: 4a 85 ldd r20, Y+10 ; 0x0a
9c2: 6b 85 ldd r22, Y+11 ; 0x0b
9c4: 8c 85 ldd r24, Y+12 ; 0x0c
9c6: 0e 94 10 03 call 0x620 <uart_put_temp>
9ca: 04 c0 rjmp .+8 ; 0x9d4 <main+0x2b0>
}
else uart_puts_P("CRC Error (lost connection?)");
9cc: 84 e0 ldi r24, 0x04 ; 4
9ce: 93 e0 ldi r25, 0x03 ; 3
9d0: 0e 94 8e 0b call 0x171c <uart_puts_p>
uart_puts_P("\r");
9d4: 81 e2 ldi r24, 0x21 ; 33
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -