   1               		.file	"one_wire_temperature.c"
   2               	__SP_H__ = 0x3e
   3               	__SP_L__ = 0x3d
   4               	__SREG__ = 0x3f
   5               	__RAMPZ__ = 0x3b
   6               	__tmp_reg__ = 0
   7               	__zero_reg__ = 1
   9               		.text
  10               	.Ltext0:
 159               	.global	owiTemperatureReadSensorsCheckCommandSyntax
 161               	owiTemperatureReadSensorsCheckCommandSyntax:
   1:one_wire_temperature.c **** /*
   2:one_wire_temperature.c ****    Licensed under the EUPL V.1.1, Lizenziert unter EUPL V.1.1 
   3:one_wire_temperature.c **** */
   4:one_wire_temperature.c **** /*
   5:one_wire_temperature.c ****  * VERSION 1.0 Januar 7th 2010 LATE  File: 'one_wire_temperature.c'
   6:one_wire_temperature.c ****  * Author: Linda Fouedjio  based on Michael Traxler based and Giacomo Ortona's hadtempsens
   7:one_wire_temperature.c ****  * modified (heavily rather rebuild): Peter Zumbruch
   8:one_wire_temperature.c ****  */
   9:one_wire_temperature.c **** 
  10:one_wire_temperature.c **** #include <stdint.h>
  11:one_wire_temperature.c **** #include <stdio.h>
  12:one_wire_temperature.c **** #include <stdarg.h>
  13:one_wire_temperature.c **** #include <string.h>
  14:one_wire_temperature.c **** #include <math.h>
  15:one_wire_temperature.c **** #include <stdlib.h>
  16:one_wire_temperature.c **** #include <util/delay.h>
  17:one_wire_temperature.c **** #include <avr/pgmspace.h>
  18:one_wire_temperature.c **** 
  19:one_wire_temperature.c **** #include <avr/io.h>
  20:one_wire_temperature.c **** #include <avr/interrupt.h>
  21:one_wire_temperature.c **** #include <avr/sleep.h>
  22:one_wire_temperature.c **** #include <avr/iocan128.h>
  23:one_wire_temperature.c **** 
  24:one_wire_temperature.c **** #include "api.h"
  25:one_wire_temperature.c **** #include "api_define.h"
  26:one_wire_temperature.c **** #include "api_global.h"
  27:one_wire_temperature.c **** 
  28:one_wire_temperature.c **** #include "api_debug.h"
  29:one_wire_temperature.c **** #include "can.h"
  30:one_wire_temperature.c **** #include "mem-check.h"
  31:one_wire_temperature.c **** 
  32:one_wire_temperature.c **** #include "one_wire.h"
  33:one_wire_temperature.c **** #include "one_wire_adc.h"
  34:one_wire_temperature.c **** #include "one_wire_dualSwitch.h"
  35:one_wire_temperature.c **** #include "read_write_register.h"
  36:one_wire_temperature.c **** #include "one_wire_simpleSwitch.h"
  37:one_wire_temperature.c **** #include "one_wire_temperature.h"
  38:one_wire_temperature.c **** 
  39:one_wire_temperature.c **** #include "OWIDeviceSpecific.h"
  40:one_wire_temperature.c **** #include "OWIHighLevelFunctions.h"
  41:one_wire_temperature.c **** #include "OWIBitFunctions.h"
  42:one_wire_temperature.c **** 
  43:one_wire_temperature.c **** #ifndef OWI_TEMPERATURE_MAX_CONVERSION_TIME_MILLISECONDS
  44:one_wire_temperature.c **** #define OWI_TEMPERATURE_MAX_CONVERSION_TIME_MILLISECONDS 750
  45:one_wire_temperature.c **** //#warning move this 20% shift to the code not directly into the default settings
  46:one_wire_temperature.c **** //#define OWI_TEMPERATURE_MAX_CONVERSION_TIME_MILLISECONDS 900
  47:one_wire_temperature.c **** #endif
  48:one_wire_temperature.c **** 
  49:one_wire_temperature.c **** #ifndef OWI_TEMPERATURE_CONVERSION_DELAY_MILLISECONDS
  50:one_wire_temperature.c **** #define OWI_TEMPERATURE_CONVERSION_DELAY_MILLISECONDS 10
  51:one_wire_temperature.c **** #endif
  52:one_wire_temperature.c **** 
  53:one_wire_temperature.c **** #warning TODO: make it changeable through API, by changing the resolution for DS18B20
  54:one_wire_temperature.c **** #ifndef OWI_TEMPERATURE_CONVERSION_TIME_RESOLUTION_SPLIT_FACTOR
  55:one_wire_temperature.c **** #define OWI_TEMPERATURE_CONVERSION_TIME_RESOLUTION_DEFAULT_SHIFT_FACTOR 0 /*12 bit resolution, divi
  56:one_wire_temperature.c **** //#define OWI_TEMPERATURE_CONVERSION_TIME_RESOLUTION_DEFAULT_SHIFT_FACTOR 1 /*11 bit resolution, di
  57:one_wire_temperature.c **** //#define OWI_TEMPERATURE_CONVERSION_TIME_RESOLUTION_DEFAULT_SHIFT_FACTOR 2 /*10 bit resolution, di
  58:one_wire_temperature.c **** //#define OWI_TEMPERATURE_CONVERSION_TIME_RESOLUTION_DEFAULT_SHIFT_FACTOR 3 /*9 bit resolution, div
  59:one_wire_temperature.c **** #endif
  60:one_wire_temperature.c **** 
  61:one_wire_temperature.c **** static const char filename[] 		PROGMEM = __FILE__;
  62:one_wire_temperature.c **** 
  63:one_wire_temperature.c **** uint16_t owiTemperatureMask = 0;
  64:one_wire_temperature.c **** uint16_t owiTemperatureMask_DS18B20 = 0;
  65:one_wire_temperature.c **** uint16_t* p_owiTemperatureMask_DS18B20 = &owiTemperatureMask_DS18B20;
  66:one_wire_temperature.c **** uint16_t owiTemperatureMask_DS18S20 = 0;
  67:one_wire_temperature.c **** uint16_t* p_owiTemperatureMask_DS18S20 = &owiTemperatureMask_DS18S20;
  68:one_wire_temperature.c **** uint16_t owiTemperatureTimeoutMask = 0xFFFF; /*bit mask of non converted channels/pins 1:conversion
  69:one_wire_temperature.c **** uint8_t owiUseCommonTemperatureConversion_flag = TRUE;
  70:one_wire_temperature.c **** uint8_t owiTemperatureConversionGoingOnCountDown = 0;
  71:one_wire_temperature.c **** uint8_t owiTemperatureIgnoreConversionResponse = TRUE;
  72:one_wire_temperature.c **** uint16_t owiTemperatureMaxConversionTime = OWI_TEMPERATURE_MAX_CONVERSION_TIME_MILLISECONDS;
  73:one_wire_temperature.c **** uint8_t owiTemperatureForceParasiticMode = FALSE;
  74:one_wire_temperature.c **** uint8_t owiTemperatureParasiticModeMask = 0xFF; /*TODO*/
  75:one_wire_temperature.c **** uint8_t owiTemperatureResolution_DS18B20 = 12 - OWI_TEMPERATURE_CONVERSION_TIME_RESOLUTION_DEFAULT_
  76:one_wire_temperature.c **** uint8_t owiTemperatureSensorBySensorParasiticConversionFlag = FALSE;
  77:one_wire_temperature.c **** 
  78:one_wire_temperature.c **** static const char owiTemperatureCommandKeyword00[] PROGMEM = "convert_only";
  79:one_wire_temperature.c **** static const char owiTemperatureCommandKeyword01[] PROGMEM = "no_convert";
  80:one_wire_temperature.c **** static const char owiTemperatureCommandKeyword02[] PROGMEM = "ignore_conv_response";
  81:one_wire_temperature.c **** static const char owiTemperatureCommandKeyword03[] PROGMEM = "max_conv_time_ms";
  82:one_wire_temperature.c **** static const char owiTemperatureCommandKeyword04[] PROGMEM = "force_parasitic_mode";
  83:one_wire_temperature.c **** static const char owiTemperatureCommandKeyword05[] PROGMEM = "resolution_DS18B20"; /*TODO*/
  84:one_wire_temperature.c **** static const char owiTemperatureCommandKeyword06[] PROGMEM = "single_parasitic_conv";
  85:one_wire_temperature.c ****      
  86:one_wire_temperature.c **** const char* const owiTemperatureCommandKeywords[] PROGMEM = {
  87:one_wire_temperature.c ****          owiTemperatureCommandKeyword00,
  88:one_wire_temperature.c ****          owiTemperatureCommandKeyword01,
  89:one_wire_temperature.c ****          owiTemperatureCommandKeyword02,
  90:one_wire_temperature.c ****          owiTemperatureCommandKeyword03,
  91:one_wire_temperature.c ****          owiTemperatureCommandKeyword04,
  92:one_wire_temperature.c ****          owiTemperatureCommandKeyword05,
  93:one_wire_temperature.c ****          owiTemperatureCommandKeyword06
  94:one_wire_temperature.c **** };
  95:one_wire_temperature.c **** 
  96:one_wire_temperature.c **** 
  97:one_wire_temperature.c **** /*
  98:one_wire_temperature.c ****  * void owiTemperatureSensors( struct uartStruct *ptr_uartStruct )
  99:one_wire_temperature.c ****  *
 100:one_wire_temperature.c ****  * this function checks if an command has been recognized and chooses either
 101:one_wire_temperature.c ****  * to go to
 102:one_wire_temperature.c ****  *      temperature reading
 103:one_wire_temperature.c ****  *      or
 104:one_wire_temperature.c ****  *      miscellaneous commands
 105:one_wire_temperature.c ****  *
 106:one_wire_temperature.c ****  */
 107:one_wire_temperature.c **** void owiTemperatureSensors( struct uartStruct *ptr_uartStruct )
 108:one_wire_temperature.c **** {
 109:one_wire_temperature.c ****    if ( 0 == strlen(ptr_owiStruct->command) )
 110:one_wire_temperature.c ****    {
 111:one_wire_temperature.c ****       owiTemperatureReadSensors(ptr_uartStruct, TRUE);
 112:one_wire_temperature.c ****    }
 113:one_wire_temperature.c ****    else
 114:one_wire_temperature.c ****    {
 115:one_wire_temperature.c ****       owiTemperatureMiscSubCommands( ptr_uartStruct );
 116:one_wire_temperature.c ****    }
 117:one_wire_temperature.c **** 
 118:one_wire_temperature.c ****    return;
 119:one_wire_temperature.c **** }
 120:one_wire_temperature.c **** 
 121:one_wire_temperature.c **** 
 122:one_wire_temperature.c **** /*
 123:one_wire_temperature.c ****  *this function contains all the functions that are necessary to
 124:one_wire_temperature.c ****  *read the temperature of sensor
 125:one_wire_temperature.c ****  * as input parameters the function needs only a keyword
 126:one_wire_temperature.c ****  * the function has no return parameter
 127:one_wire_temperature.c ****  */
 128:one_wire_temperature.c **** 
 129:one_wire_temperature.c **** void owiTemperatureReadSensors( struct uartStruct *ptr_uartStruct, uint8_t convert )
 130:one_wire_temperature.c **** {
 131:one_wire_temperature.c ****    /* check command syntax */
 132:one_wire_temperature.c ****    if ( 0 != owiTemperatureReadSensorsCheckCommandSyntax(ptr_uartStruct))
 133:one_wire_temperature.c ****    {
 134:one_wire_temperature.c ****       return;
 135:one_wire_temperature.c ****    }
 136:one_wire_temperature.c **** 
 137:one_wire_temperature.c ****    if ( 0 != owiTemperatureGetNumberOfDevicesAndSetTemperatureMask(ptr_uartStruct))
 138:one_wire_temperature.c ****    {
 139:one_wire_temperature.c ****       //#warning ADC in comparison has here an init - is the Initialization always needed here, or 
 140:one_wire_temperature.c **** 
 141:one_wire_temperature.c ****       /* conversions */
 142:one_wire_temperature.c **** 
 143:one_wire_temperature.c ****       switch (ptr_uartStruct->number_of_arguments)
 144:one_wire_temperature.c ****       {
 145:one_wire_temperature.c ****          case 0:
 146:one_wire_temperature.c ****             /* read all */
 147:one_wire_temperature.c ****             if ( FALSE != convert ) {owiTemperatureConversions(BUSES, TRUE, FALSE);}
 148:one_wire_temperature.c ****             break;
 149:one_wire_temperature.c ****          case 2:
 150:one_wire_temperature.c ****             /* read single ID w/ temperature conversion of all buses*/
 151:one_wire_temperature.c ****             /* during the filling it couldn't decide weather the 2nd argument
 152:one_wire_temperature.c ****              * is a flag or a value ... no we can, its a flag */
 153:one_wire_temperature.c ****             ptr_owiStruct->conv_flag = ( 0 != ptr_owiStruct->value);
 154:one_wire_temperature.c ****             if (TRUE == ptr_owiStruct->conv_flag) { owiTemperatureConversions(BUSES, TRUE, FALSE); 
 155:one_wire_temperature.c ****             break;
 156:one_wire_temperature.c ****       }
 157:one_wire_temperature.c **** 
 158:one_wire_temperature.c ****       /*
 159:one_wire_temperature.c ****        * access values
 160:one_wire_temperature.c ****        *
 161:one_wire_temperature.c ****        *   - read DS18B20
 162:one_wire_temperature.c ****        *   - read DS18S20
 163:one_wire_temperature.c ****        */
 164:one_wire_temperature.c **** 
 165:one_wire_temperature.c ****       int8_t familyCode[] = {
 166:one_wire_temperature.c ****                OWI_FAMILY_DS18B20_TEMP,
 167:one_wire_temperature.c ****                OWI_FAMILY_DS18S20_TEMP
 168:one_wire_temperature.c ****       };
 169:one_wire_temperature.c **** 
 170:one_wire_temperature.c ****       uint8_t foundDevices = 0;
 171:one_wire_temperature.c **** 
 172:one_wire_temperature.c ****       for (uint8_t index = 0; index < sizeof(familyCode)/sizeof(int8_t); index++)
 173:one_wire_temperature.c ****       {
 174:one_wire_temperature.c ****           printDebug_p(debugLevelEventDebug, debugSystemOWITemperatures, __LINE__, filename, PSTR("
 175:one_wire_temperature.c **** 
 176:one_wire_temperature.c ****          foundDevices += owiFindFamilyDevicesAndAccessValues(BUSES, NumDevicesFound, familyCode[ind
 177:one_wire_temperature.c ****       }
 178:one_wire_temperature.c **** 
 179:one_wire_temperature.c ****       if ( TRUE == ptr_owiStruct->idSelect_flag && 0 == foundDevices)
 180:one_wire_temperature.c ****       {
 181:one_wire_temperature.c ****          generalErrorCode = CommunicationError_p(ERRG, dynamicMessage_ErrorIndex, TRUE, PSTR("no ma
 182:one_wire_temperature.c ****       }
 183:one_wire_temperature.c ****    }
 184:one_wire_temperature.c ****    else
 185:one_wire_temperature.c ****    {
 186:one_wire_temperature.c ****       generalErrorCode = CommunicationError_p(ERRG, dynamicMessage_ErrorIndex, TRUE, PSTR("no suppo
 187:one_wire_temperature.c ****    }
 188:one_wire_temperature.c **** }
 189:one_wire_temperature.c **** 
 190:one_wire_temperature.c **** uint8_t owiTemperatureReadSensorsCheckCommandSyntax(struct uartStruct *ptr_uartStruct)
 191:one_wire_temperature.c **** {
 163               	.LM0:
 164               	.LFBB1:
 165               	/* prologue: function */
 166               	/* frame size = 0 */
 167               	/* stack size = 0 */
 168               	.L__stack_usage = 0
 192:one_wire_temperature.c ****    /* check for syntax:
 193:one_wire_temperature.c ****     *    allowed arguments are:
 194:one_wire_temperature.c ****     *       - (empty)
 195:one_wire_temperature.c ****     *       - ID
 196:one_wire_temperature.c ****     *       - ID conversion_flag
 197:one_wire_temperature.c ****     *       
 198:one_wire_temperature.c ****     *       return 0 if ok
 199:one_wire_temperature.c ****     *       else != 0
 200:one_wire_temperature.c ****     */
 201:one_wire_temperature.c **** 
 202:one_wire_temperature.c ****    int status = 0;
 203:one_wire_temperature.c ****    switch (ptr_uartStruct->number_of_arguments)
 170               	.LM1:
 171 0000 FC01      		movw r30,r24
 172 0002 838D      		ldd r24,Z+27
 173 0004 8823      		tst r24
 174 0006 01F0      		breq .L6
 175 0008 87FD      		sbrc r24,7
 176 000a 00C0      		rjmp .L2
 177 000c 8330      		cpi r24,lo8(3)
 178 000e 04F4      		brge .L2
 204:one_wire_temperature.c ****    {
 205:one_wire_temperature.c ****       case 0:
 206:one_wire_temperature.c ****          break;
 207:one_wire_temperature.c ****       case 1:
 208:one_wire_temperature.c ****       case 2:
 209:one_wire_temperature.c ****          /* read single ID w/o temperature conversion
 210:one_wire_temperature.c ****           * or
 211:one_wire_temperature.c ****           * read single ID w/ temperature conversion of all buses*/
 212:one_wire_temperature.c ****          if ( FALSE == ptr_owiStruct->idSelect_flag)
 180               	.LM2:
 181 0010 E091 0000 		lds r30,ptr_owiStruct
 182 0014 F091 0000 		lds r31,ptr_owiStruct+1
 183 0018 8085      		ldd r24,Z+8
 184 001a 8111      		cpse r24,__zero_reg__
 185 001c 00C0      		rjmp .L6
 213:one_wire_temperature.c ****          {
 214:one_wire_temperature.c ****             CommunicationError_p(ERRA, dynamicMessage_ErrorIndex, TRUE, PSTR("invalid arguments"));
 187               	.LM3:
 188 001e 80E0      		ldi r24,lo8(__c.3052)
 189 0020 90E0      		ldi r25,hi8(__c.3052)
 190 0022 00C0      		rjmp .L7
 191               	.L2:
 215:one_wire_temperature.c ****             status = -1;
 216:one_wire_temperature.c ****             break;
 217:one_wire_temperature.c ****          }
 218:one_wire_temperature.c ****          break;
 219:one_wire_temperature.c ****       default:
 220:one_wire_temperature.c ****          CommunicationError_p(ERRA, dynamicMessage_ErrorIndex, TRUE, PSTR("write argument: too many
 193               	.LM4:
 194 0024 80E0      		ldi r24,lo8(__c.3055)
 195 0026 90E0      		ldi r25,hi8(__c.3055)
 196               	.L7:
 197 0028 9F93      		push r25
 198 002a 8F93      		push r24
 199 002c 81E0      		ldi r24,lo8(1)
 200 002e 8F93      		push r24
 201 0030 9FEF      		ldi r25,lo8(-1)
 202 0032 9F93      		push r25
 203 0034 9CE9      		ldi r25,lo8(-100)
 204 0036 9F93      		push r25
 205 0038 8F93      		push r24
 206 003a E091 0000 		lds r30,CommunicationError_p
 207 003e F091 0000 		lds r31,CommunicationError_p+1
 208 0042 0995      		icall
 221:one_wire_temperature.c ****          status = -1;
 222:one_wire_temperature.c ****          break;
 210               	.LM5:
 211 0044 0F90      		pop __tmp_reg__
 212 0046 0F90      		pop __tmp_reg__
 213 0048 0F90      		pop __tmp_reg__
 214 004a 0F90      		pop __tmp_reg__
 215 004c 0F90      		pop __tmp_reg__
 216 004e 0F90      		pop __tmp_reg__
 221:one_wire_temperature.c ****          status = -1;
 218               	.LM6:
 219 0050 8FEF      		ldi r24,lo8(-1)
 221               	.LM7:
 222 0052 0895      		ret
 223               	.L6:
 202:one_wire_temperature.c ****    switch (ptr_uartStruct->number_of_arguments)
 225               	.LM8:
 226 0054 80E0      		ldi r24,0
 223:one_wire_temperature.c ****    }
 224:one_wire_temperature.c ****    return status;
 225:one_wire_temperature.c **** }
 228               	.LM9:
 229 0056 0895      		ret
 231               	.Lscope1:
 234               	.global	owiTemperatureGetNumberOfDevicesAndSetTemperatureMask
 236               	owiTemperatureGetNumberOfDevicesAndSetTemperatureMask:
 226:one_wire_temperature.c **** 
 227:one_wire_temperature.c **** /*
 228:one_wire_temperature.c ****  * uint16_t owiTemperatureGetNumberOfDevicesAndSetTemperatureMask(struct uartStruct *ptr_uartStruct
 229:one_wire_temperature.c ****  *
 230:one_wire_temperature.c ****  * this function searches the one wire buses looking for 1-wire temp sensors
 231:one_wire_temperature.c ****  * it fills the busses where a temp device has been found to  owiTemperatureMask and
 232:one_wire_temperature.c ****  * returns the number of found devices
 233:one_wire_temperature.c ****  *
 234:one_wire_temperature.c ****  */
 235:one_wire_temperature.c **** 
 236:one_wire_temperature.c **** uint16_t owiTemperatureGetNumberOfDevicesAndSetTemperatureMask(struct uartStruct *ptr_uartStruct)
 237:one_wire_temperature.c **** {
 238               	.LM10:
 239               	.LFBB2:
 240 0058 CF93      		push r28
 241 005a DF93      		push r29
 242               	/* prologue: function */
 243               	/* frame size = 0 */
 244               	/* stack size = 2 */
 245               	.L__stack_usage = 2
 238:one_wire_temperature.c ****    uint16_t tempDevices = 0;
 239:one_wire_temperature.c ****    NumDevicesFound = owiReadDevicesID(BUSES);
 247               	.LM11:
 248 005c 80E0      		ldi r24,lo8(BUSES)
 249 005e 90E0      		ldi r25,hi8(BUSES)
 250 0060 0E94 0000 		call owiReadDevicesID
 251 0064 8093 0000 		sts NumDevicesFound,r24
 240:one_wire_temperature.c ****    if ( 0 == NumDevicesFound )
 253               	.LM12:
 254 0068 8111      		cpse r24,__zero_reg__
 255 006a 00C0      		rjmp .L10
 241:one_wire_temperature.c ****    {
 242:one_wire_temperature.c ****       generalErrorCode = CommunicationError_p(ERRG, GENERAL_ERROR_no_device_is_connected_to_the_bus
 257               	.LM13:
 258 006c 1F92      		push __zero_reg__
 259 006e 1F92      		push __zero_reg__
 260 0070 1F92      		push __zero_reg__
 261 0072 1F92      		push __zero_reg__
 262 0074 84E0      		ldi r24,lo8(4)
 263 0076 8F93      		push r24
 264 0078 1F92      		push __zero_reg__
 265 007a E091 0000 		lds r30,CommunicationError_p
 266 007e F091 0000 		lds r31,CommunicationError_p+1
 267 0082 0995      		icall
 268 0084 90E0      		ldi r25,0
 269 0086 9093 0000 		sts generalErrorCode+1,r25
 270 008a 8093 0000 		sts generalErrorCode,r24
 271 008e 0F90      		pop __tmp_reg__
 272 0090 0F90      		pop __tmp_reg__
 273 0092 0F90      		pop __tmp_reg__
 274 0094 0F90      		pop __tmp_reg__
 275 0096 0F90      		pop __tmp_reg__
 276 0098 0F90      		pop __tmp_reg__
 243:one_wire_temperature.c ****       tempDevices = 0;
 278               	.LM14:
 279 009a C0E0      		ldi r28,0
 280 009c D0E0      		ldi r29,0
 281 009e 00C0      		rjmp .L11
 282               	.L10:
 244:one_wire_temperature.c ****    }
 245:one_wire_temperature.c ****    else
 246:one_wire_temperature.c ****    {
 247:one_wire_temperature.c ****       /* reset mask of busses with sensors*/
 248:one_wire_temperature.c ****       owiTemperatureMask = 0;
 284               	.LM15:
 285 00a0 1092 0000 		sts owiTemperatureMask+1,__zero_reg__
 286 00a4 1092 0000 		sts owiTemperatureMask,__zero_reg__
 249:one_wire_temperature.c **** 
 250:one_wire_temperature.c ****       tempDevices += owiScanIDS(OWI_FAMILY_DS18B20_TEMP, p_owiTemperatureMask_DS18B20);
 288               	.LM16:
 289 00a8 6091 0000 		lds r22,p_owiTemperatureMask_DS18B20
 290 00ac 7091 0000 		lds r23,p_owiTemperatureMask_DS18B20+1
 291 00b0 88E2      		ldi r24,lo8(40)
 292 00b2 90E0      		ldi r25,0
 293 00b4 0E94 0000 		call owiScanIDS
 294 00b8 C82F      		mov r28,r24
 251:one_wire_temperature.c ****       tempDevices += owiScanIDS(OWI_FAMILY_DS18S20_TEMP, p_owiTemperatureMask_DS18B20);
 296               	.LM17:
 297 00ba 6091 0000 		lds r22,p_owiTemperatureMask_DS18B20
 298 00be 7091 0000 		lds r23,p_owiTemperatureMask_DS18B20+1
 299 00c2 80E1      		ldi r24,lo8(16)
 300 00c4 90E0      		ldi r25,0
 301 00c6 0E94 0000 		call owiScanIDS
 250:one_wire_temperature.c ****       tempDevices += owiScanIDS(OWI_FAMILY_DS18S20_TEMP, p_owiTemperatureMask_DS18B20);
 303               	.LM18:
 304 00ca D0E0      		ldi r29,0
 306               	.LM19:
 307 00cc C80F      		add r28,r24
 308 00ce D11D      		adc r29,__zero_reg__
 252:one_wire_temperature.c ****        printDebug_p(debugLevelEventDebug, debugSystemOWITemperatures, __LINE__, filename, PSTR("mis
 310               	.LM20:
 311 00d0 8091 0000 		lds r24,ptr_owiStruct
 312 00d4 9091 0000 		lds r25,ptr_owiStruct+1
 313 00d8 0F96      		adiw r24,15
 314 00da 9F93      		push r25
 315 00dc 8F93      		push r24
 316 00de 80E0      		ldi r24,lo8(__c.3061)
 317 00e0 90E0      		ldi r25,hi8(__c.3061)
 318 00e2 9F93      		push r25
 319 00e4 8F93      		push r24
 320 00e6 80E0      		ldi r24,lo8(filename)
 321 00e8 90E0      		ldi r25,hi8(filename)
 322 00ea 9F93      		push r25
 323 00ec 8F93      		push r24
 324 00ee 1F92      		push __zero_reg__
 325 00f0 8CEF      		ldi r24,lo8(-4)
 326 00f2 8F93      		push r24
 327 00f4 1F92      		push __zero_reg__
 328 00f6 1F92      		push __zero_reg__
 329 00f8 1F92      		push __zero_reg__
 330 00fa 89E0      		ldi r24,lo8(9)
 331 00fc 8F93      		push r24
 332 00fe 82E0      		ldi r24,lo8(2)
 333 0100 8F93      		push r24
 334 0102 E091 0000 		lds r30,printDebug_p
 335 0106 F091 0000 		lds r31,printDebug_p+1
 336 010a 0995      		icall
 253:one_wire_temperature.c **** 
 254:one_wire_temperature.c ****       if ( 0 < tempDevices )
 338               	.LM21:
 339 010c 8DB7      		in r24,__SP_L__
 340 010e 9EB7      		in r25,__SP_H__
 341 0110 0D96      		adiw r24,13
 342 0112 0FB6      		in __tmp_reg__,__SREG__
 343 0114 F894      		cli
 344 0116 9EBF      		out __SP_H__,r25
 345 0118 0FBE      		out __SREG__,__tmp_reg__
 346 011a 8DBF      		out __SP_L__,r24
 347 011c 2097      		sbiw r28,0
 348 011e 01F0      		breq .L11
 255:one_wire_temperature.c ****       {
 256:one_wire_temperature.c ****          owiTemperatureMask |= owiTemperatureMask_DS18B20;
 350               	.LM22:
 351 0120 8091 0000 		lds r24,owiTemperatureMask_DS18B20
 352 0124 9091 0000 		lds r25,owiTemperatureMask_DS18B20+1
 353 0128 2091 0000 		lds r18,owiTemperatureMask
 354 012c 3091 0000 		lds r19,owiTemperatureMask+1
 355 0130 822B      		or r24,r18
 356 0132 932B      		or r25,r19
 257:one_wire_temperature.c ****          owiTemperatureMask |= owiTemperatureMask_DS18S20;
 358               	.LM23:
 359 0134 2091 0000 		lds r18,owiTemperatureMask_DS18S20
 360 0138 3091 0000 		lds r19,owiTemperatureMask_DS18S20+1
 361 013c 822B      		or r24,r18
 362 013e 932B      		or r25,r19
 363 0140 9093 0000 		sts owiTemperatureMask+1,r25
 364 0144 8093 0000 		sts owiTemperatureMask,r24
 365               	.L11:
 258:one_wire_temperature.c ****       }
 259:one_wire_temperature.c ****    }
 260:one_wire_temperature.c ****     printDebug_p(debugLevelEventDebug, debugSystemOWITemperatures, __LINE__, filename, PSTR("found 
 367               	.LM24:
 368 0148 DF93      		push r29
 369 014a CF93      		push r28
 370 014c 80E0      		ldi r24,lo8(__c.3063)
 371 014e 90E0      		ldi r25,hi8(__c.3063)
 372 0150 9F93      		push r25
 373 0152 8F93      		push r24
 374 0154 80E0      		ldi r24,lo8(filename)
 375 0156 90E0      		ldi r25,hi8(filename)
 376 0158 9F93      		push r25
 377 015a 8F93      		push r24
 378 015c 81E0      		ldi r24,lo8(1)
 379 015e 8F93      		push r24
 380 0160 84E0      		ldi r24,lo8(4)
 381 0162 8F93      		push r24
 382 0164 1F92      		push __zero_reg__
 383 0166 1F92      		push __zero_reg__
 384 0168 1F92      		push __zero_reg__
 385 016a 89E0      		ldi r24,lo8(9)
 386 016c 8F93      		push r24
 387 016e 82E0      		ldi r24,lo8(2)
 388 0170 8F93      		push r24
 389 0172 E091 0000 		lds r30,printDebug_p
 390 0176 F091 0000 		lds r31,printDebug_p+1
 391 017a 0995      		icall
 261:one_wire_temperature.c **** 
 262:one_wire_temperature.c ****    return tempDevices;
 393               	.LM25:
 394 017c 8DB7      		in r24,__SP_L__
 395 017e 9EB7      		in r25,__SP_H__
 396 0180 0D96      		adiw r24,13
 397 0182 0FB6      		in __tmp_reg__,__SREG__
 398 0184 F894      		cli
 399 0186 9EBF      		out __SP_H__,r25
 400 0188 0FBE      		out __SREG__,__tmp_reg__
 401 018a 8DBF      		out __SP_L__,r24
 263:one_wire_temperature.c **** }
 403               	.LM26:
 404 018c CE01      		movw r24,r28
 405               	/* epilogue start */
 406 018e DF91      		pop r29
 407 0190 CF91      		pop r28
 408 0192 0895      		ret
 413               	.Lscope2:
 419               	.global	owiTemperatureMiscSubCommandGetSetFlag
 421               	owiTemperatureMiscSubCommandGetSetFlag:
 264:one_wire_temperature.c **** 
 265:one_wire_temperature.c **** void owiTemperatureMiscSubCommandGetSetFlag(struct uartStruct *ptr_uartStruct, uint8_t *flag, PGM_P
 266:one_wire_temperature.c **** {
 423               	.LM27:
 424               	.LFBB3:
 425 0194 CF92      		push r12
 426 0196 DF92      		push r13
 427 0198 EF92      		push r14
 428 019a FF92      		push r15
 429 019c 0F93      		push r16
 430 019e 1F93      		push r17
 431 01a0 CF93      		push r28
 432 01a2 DF93      		push r29
 433 01a4 1F92      		push __zero_reg__
 434 01a6 CDB7      		in r28,__SP_L__
 435 01a8 DEB7      		in r29,__SP_H__
 436               	/* prologue: function */
 437               	/* frame size = 1 */
 438               	/* stack size = 9 */
 439               	.L__stack_usage = 9
 440 01aa 6C01      		movw r12,r24
 441 01ac 8B01      		movw r16,r22
 442 01ae 7A01      		movw r14,r20
 267:one_wire_temperature.c ****    switch(ptr_uartStruct->number_of_arguments - 1 /* arguments of argument */)
 444               	.LM28:
 445 01b0 FC01      		movw r30,r24
 446 01b2 838D      		ldd r24,Z+27
 447 01b4 9927      		clr r25
 448 01b6 87FD      		sbrc r24,7
 449 01b8 9095      		com r25
 450 01ba 0197      		sbiw r24,1
 451 01bc 0097      		sbiw r24,0
 452 01be 01F0      		breq .L17
 453 01c0 0197      		sbiw r24,1
 454 01c2 01F4      		brne .+2
 455 01c4 00C0      		rjmp .L18
 456 01c6 00C0      		rjmp .L35
 457               	.L17:
 268:one_wire_temperature.c ****    {
 269:one_wire_temperature.c ****       case 0:
 270:one_wire_temperature.c ****          /* printout status*/
 271:one_wire_temperature.c **** 
 272:one_wire_temperature.c ****          /* generate message */
 273:one_wire_temperature.c ****          createReceiveHeader(ptr_uartStruct, uart_message_string, BUFFER_SIZE);
 459               	.LM29:
 460 01c8 4CE8      		ldi r20,lo8(-116)
 461 01ca 50E0      		ldi r21,0
 462 01cc 60E0      		ldi r22,lo8(uart_message_string)
 463 01ce 70E0      		ldi r23,hi8(uart_message_string)
 464 01d0 C601      		movw r24,r12
 465 01d2 2983      		std Y+1,r18
 466 01d4 0E94 0000 		call createReceiveHeader
 274:one_wire_temperature.c ****          strncat(uart_message_string, setParameter[1],BUFFER_SIZE -1 );
 468               	.LM30:
 469 01d8 4BE8      		ldi r20,lo8(-117)
 470 01da 50E0      		ldi r21,0
 471 01dc 60E0      		ldi r22,lo8(setParameter+25)
 472 01de 70E0      		ldi r23,hi8(setParameter+25)
 473 01e0 80E0      		ldi r24,lo8(uart_message_string)
 474 01e2 90E0      		ldi r25,hi8(uart_message_string)
 475 01e4 0E94 0000 		call strncat
 275:one_wire_temperature.c ****          strncat_P(uart_message_string, text, BUFFER_SIZE -1);
 477               	.LM31:
 478 01e8 4BE8      		ldi r20,lo8(-117)
 479 01ea 50E0      		ldi r21,0
 480 01ec B701      		movw r22,r14
 481 01ee 80E0      		ldi r24,lo8(uart_message_string)
 482 01f0 90E0      		ldi r25,hi8(uart_message_string)
 483 01f2 0E94 0000 		call strncat_P
 484 01f6 F801      		movw r30,r16
 485 01f8 8081      		ld r24,Z
 276:one_wire_temperature.c ****          if (FALSE == invert)
 487               	.LM32:
 488 01fa 2981      		ldd r18,Y+1
 489 01fc 2111      		cpse r18,__zero_reg__
 490 01fe 00C0      		rjmp .L19
 277:one_wire_temperature.c ****          {
 278:one_wire_temperature.c ****             strncat_P(uart_message_string, (  *flag)?PSTR("TRUE"):PSTR("FALSE"),BUFFER_SIZE -1);
 492               	.LM33:
 493 0200 8823      		tst r24
 494 0202 01F0      		breq .L28
 495 0204 60E0      		ldi r22,lo8(__c.3072)
 496 0206 70E0      		ldi r23,hi8(__c.3072)
 497 0208 00C0      		rjmp .L22
 498               	.L28:
 499 020a 60E0      		ldi r22,lo8(__c.3074)
 500 020c 70E0      		ldi r23,hi8(__c.3074)
 501 020e 00C0      		rjmp .L22
 502               	.L19:
 279:one_wire_temperature.c ****          }
 280:one_wire_temperature.c ****          else
 281:one_wire_temperature.c ****          {
 282:one_wire_temperature.c ****             strncat_P(uart_message_string, (! *flag)?PSTR("TRUE"):PSTR("FALSE"),BUFFER_SIZE -1);
 504               	.LM34:
 505 0210 8111      		cpse r24,__zero_reg__
 506 0212 00C0      		rjmp .L29
 507 0214 60E0      		ldi r22,lo8(__c.3076)
 508 0216 70E0      		ldi r23,hi8(__c.3076)
 509 0218 00C0      		rjmp .L22
 510               	.L29:
 511 021a 60E0      		ldi r22,lo8(__c.3078)
 512 021c 70E0      		ldi r23,hi8(__c.3078)
 513               	.L22:
 515               	.LM35:
 516 021e 4BE8      		ldi r20,lo8(-117)
 517 0220 50E0      		ldi r21,0
 518 0222 80E0      		ldi r24,lo8(uart_message_string)
 519 0224 90E0      		ldi r25,hi8(uart_message_string)
 520 0226 0E94 0000 		call strncat_P
 283:one_wire_temperature.c ****          }
 284:one_wire_temperature.c ****          /*send the data*/
 285:one_wire_temperature.c ****          UART0_Send_Message_String_p(uart_message_string, BUFFER_SIZE - 1);
 522               	.LM36:
 523 022a E091 0000 		lds r30,UART0_Send_Message_String_p
 524 022e F091 0000 		lds r31,UART0_Send_Message_String_p+1
 525 0232 6BE8      		ldi r22,lo8(-117)
 526 0234 70E0      		ldi r23,0
 527 0236 80E0      		ldi r24,lo8(uart_message_string)
 528 0238 90E0      		ldi r25,hi8(uart_message_string)
 529 023a 0995      		icall
 286:one_wire_temperature.c ****          /*clear strings*/
 287:one_wire_temperature.c ****          clearString(uart_message_string, BUFFER_SIZE);
 531               	.LM37:
 532 023c 6CE8      		ldi r22,lo8(-116)
 533 023e 70E0      		ldi r23,0
 534 0240 80E0      		ldi r24,lo8(uart_message_string)
 535 0242 90E0      		ldi r25,hi8(uart_message_string)
 536 0244 0E94 0000 		call clearString
 288:one_wire_temperature.c ****          clearString(message, BUFFER_SIZE);
 538               	.LM38:
 539 0248 6CE8      		ldi r22,lo8(-116)
 540 024a 70E0      		ldi r23,0
 541 024c 80E0      		ldi r24,lo8(message)
 542 024e 90E0      		ldi r25,hi8(message)
 543               	/* epilogue start */
 289:one_wire_temperature.c ****          break;
 290:one_wire_temperature.c ****       case 1:
 291:one_wire_temperature.c **** 
 292:one_wire_temperature.c ****          /* set status*/
 293:one_wire_temperature.c **** 
 294:one_wire_temperature.c ****          if (FALSE == invert)
 295:one_wire_temperature.c ****          {
 296:one_wire_temperature.c ****             *flag = (0 != ptr_owiStruct->value) ? TRUE: FALSE;
 297:one_wire_temperature.c ****          }
 298:one_wire_temperature.c ****          else
 299:one_wire_temperature.c ****          {
 300:one_wire_temperature.c ****             *flag = !(0 != ptr_owiStruct->value) ? TRUE: FALSE;
 301:one_wire_temperature.c ****          }
 302:one_wire_temperature.c **** 
 303:one_wire_temperature.c ****          /*recursive call to show change*/
 304:one_wire_temperature.c ****          ptr_uartStruct->number_of_arguments=1;
 305:one_wire_temperature.c ****          owiTemperatureMiscSubCommandGetSetFlag(ptr_uartStruct, flag, text, invert);
 306:one_wire_temperature.c ****          ptr_uartStruct->number_of_arguments=2;
 307:one_wire_temperature.c ****          break;
 308:one_wire_temperature.c ****       default:
 309:one_wire_temperature.c ****          generalErrorCode = CommunicationError_p(ERRG, dynamicMessage_ErrorIndex, TRUE, PSTR("inval
 310:one_wire_temperature.c ****          break;
 311:one_wire_temperature.c ****    }
 312:one_wire_temperature.c **** }
 545               	.LM39:
 546 0250 0F90      		pop __tmp_reg__
 547 0252 DF91      		pop r29
 548 0254 CF91      		pop r28
 549 0256 1F91      		pop r17
 550 0258 0F91      		pop r16
 551 025a FF90      		pop r15
 552 025c EF90      		pop r14
 553 025e DF90      		pop r13
 554 0260 CF90      		pop r12
 288:one_wire_temperature.c ****          clearString(message, BUFFER_SIZE);
 556               	.LM40:
 557 0262 0C94 0000 		jmp clearString
 558               	.L18:
 559 0266 E091 0000 		lds r30,ptr_owiStruct
 560 026a F091 0000 		lds r31,ptr_owiStruct+1
 296:one_wire_temperature.c ****          }
 562               	.LM41:
 563 026e 31E0      		ldi r19,lo8(1)
 564 0270 8385      		ldd r24,Z+11
 565 0272 9485      		ldd r25,Z+12
 294:one_wire_temperature.c ****          {
 567               	.LM42:
 568 0274 2111      		cpse r18,__zero_reg__
 569 0276 00C0      		rjmp .L23
 296:one_wire_temperature.c ****          }
 571               	.LM43:
 572 0278 892B      		or r24,r25
 573 027a 01F4      		brne .L26
 574 027c 00C0      		rjmp .L34
 575               	.L23:
 300:one_wire_temperature.c ****          }
 577               	.LM44:
 578 027e 892B      		or r24,r25
 579 0280 01F0      		breq .L26
 580               	.L34:
 581 0282 30E0      		ldi r19,0
 582               	.L26:
 583 0284 F801      		movw r30,r16
 584 0286 3083      		st Z,r19
 304:one_wire_temperature.c ****          owiTemperatureMiscSubCommandGetSetFlag(ptr_uartStruct, flag, text, invert);
 586               	.LM45:
 587 0288 81E0      		ldi r24,lo8(1)
 588 028a F601      		movw r30,r12
 589 028c 838F      		std Z+27,r24
 305:one_wire_temperature.c ****          ptr_uartStruct->number_of_arguments=2;
 591               	.LM46:
 592 028e A701      		movw r20,r14
 593 0290 B801      		movw r22,r16
 594 0292 C601      		movw r24,r12
 595 0294 0E94 0000 		call owiTemperatureMiscSubCommandGetSetFlag
 306:one_wire_temperature.c ****          break;
 597               	.LM47:
 598 0298 82E0      		ldi r24,lo8(2)
 599 029a F601      		movw r30,r12
 600 029c 838F      		std Z+27,r24
 307:one_wire_temperature.c ****       default:
 602               	.LM48:
 603 029e 00C0      		rjmp .L15
 604               	.L35:
 309:one_wire_temperature.c ****          break;
 606               	.LM49:
 607 02a0 80E0      		ldi r24,lo8(__c.3083)
 608 02a2 90E0      		ldi r25,hi8(__c.3083)
 609 02a4 9F93      		push r25
 610 02a6 8F93      		push r24
 611 02a8 81E0      		ldi r24,lo8(1)
 612 02aa 8F93      		push r24
 613 02ac 8FEF      		ldi r24,lo8(-1)
 614 02ae 8F93      		push r24
 615 02b0 8CE9      		ldi r24,lo8(-100)
 616 02b2 8F93      		push r24
 617 02b4 1F92      		push __zero_reg__
 618 02b6 E091 0000 		lds r30,CommunicationError_p
 619 02ba F091 0000 		lds r31,CommunicationError_p+1
 620 02be 0995      		icall
 621 02c0 90E0      		ldi r25,0
 622 02c2 9093 0000 		sts generalErrorCode+1,r25
 623 02c6 8093 0000 		sts generalErrorCode,r24
 310:one_wire_temperature.c ****    }
 625               	.LM50:
 626 02ca 0F90      		pop __tmp_reg__
 627 02cc 0F90      		pop __tmp_reg__
 628 02ce 0F90      		pop __tmp_reg__
 629 02d0 0F90      		pop __tmp_reg__
 630 02d2 0F90      		pop __tmp_reg__
 631 02d4 0F90      		pop __tmp_reg__
 632               	.L15:
 633               	/* epilogue start */
 635               	.LM51:
 636 02d6 0F90      		pop __tmp_reg__
 637 02d8 DF91      		pop r29
 638 02da CF91      		pop r28
 639 02dc 1F91      		pop r17
 640 02de 0F91      		pop r16
 641 02e0 FF90      		pop r15
 642 02e2 EF90      		pop r14
 643 02e4 DF90      		pop r13
 644 02e6 CF90      		pop r12
 645 02e8 0895      		ret
 647               	.Lscope3:
 650               	.global	owiTemperatureMiscSubCommandGetSetStepByStepParasiticConversion
 652               	owiTemperatureMiscSubCommandGetSetStepByStepParasiticConversion:
 313:one_wire_temperature.c **** 
 314:one_wire_temperature.c **** void owiTemperatureMiscSubCommandGetSetStepByStepParasiticConversion(struct uartStruct *ptr_uartStr
 315:one_wire_temperature.c **** {
 654               	.LM52:
 655               	.LFBB4:
 656 02ea CF93      		push r28
 657 02ec DF93      		push r29
 658               	/* prologue: function */
 659               	/* frame size = 0 */
 660               	/* stack size = 2 */
 661               	.L__stack_usage = 2
 662 02ee EC01      		movw r28,r24
 316:one_wire_temperature.c ****    uint8_t *flag = &owiTemperatureSensorBySensorParasiticConversionFlag;
 317:one_wire_temperature.c **** 
 318:one_wire_temperature.c ****    //owiTemperatureMiscSubCommandGetSetFlag(ptr_uartStruct,flag,PSTR(":"),FALSE);
 319:one_wire_temperature.c ****    //int8_t keywordIndex = owiTemperatureCommandKeyNumber_FORCE_PARASITIC_MODE;
 320:one_wire_temperature.c ****    switch(ptr_uartStruct->number_of_arguments - 1 /* arguments of argument */)
 664               	.LM53:
 665 02f0 8B8D      		ldd r24,Y+27
 666 02f2 9927      		clr r25
 667 02f4 87FD      		sbrc r24,7
 668 02f6 9095      		com r25
 669 02f8 0197      		sbiw r24,1
 670 02fa 0097      		sbiw r24,0
 671 02fc 01F0      		breq .L38
 672 02fe 0197      		sbiw r24,1
 673 0300 01F0      		breq .L39
 674 0302 00C0      		rjmp .L45
 675               	.L38:
 321:one_wire_temperature.c ****    {
 322:one_wire_temperature.c ****       case 0:
 323:one_wire_temperature.c ****          /* printout status*/
 324:one_wire_temperature.c **** 
 325:one_wire_temperature.c ****          /* generate message */
 326:one_wire_temperature.c ****          createExtendedSubCommandReceiveResponseHeader(ptr_uartStruct, -1,
 677               	.LM54:
 678 0304 20E0      		ldi r18,lo8(owiTemperatureCommandKeywords)
 679 0306 30E0      		ldi r19,hi8(owiTemperatureCommandKeywords)
 680 0308 46E0      		ldi r20,lo8(6)
 681 030a 6FEF      		ldi r22,lo8(-1)
 682 030c CE01      		movw r24,r28
 683 030e 0E94 0000 		call createExtendedSubCommandReceiveResponseHeader
 327:one_wire_temperature.c ****                                                        owiTemperatureCommandKeyNumber_SINGLE_SENSOR
 328:one_wire_temperature.c ****                                                        owiTemperatureCommandKeywords);
 329:one_wire_temperature.c ****          strncat_P(uart_message_string, ( FALSE != (*flag)) ? PSTR(" TRUE"):PSTR(" FALSE"),BUFFER_S
 685               	.LM55:
 686 0312 8091 0000 		lds r24,owiTemperatureSensorBySensorParasiticConversionFlag
 687 0316 8823      		tst r24
 688 0318 01F0      		breq .L43
 689 031a 60E0      		ldi r22,lo8(__c.3090)
 690 031c 70E0      		ldi r23,hi8(__c.3090)
 691 031e 00C0      		rjmp .L40
 692               	.L43:
 693 0320 60E0      		ldi r22,lo8(__c.3092)
 694 0322 70E0      		ldi r23,hi8(__c.3092)
 695               	.L40:
 697               	.LM56:
 698 0324 4BE8      		ldi r20,lo8(-117)
 699 0326 50E0      		ldi r21,0
 700 0328 80E0      		ldi r24,lo8(uart_message_string)
 701 032a 90E0      		ldi r25,hi8(uart_message_string)
 702 032c 0E94 0000 		call strncat_P
 330:one_wire_temperature.c ****          /*send the data*/
 331:one_wire_temperature.c ****          UART0_Send_Message_String_p(uart_message_string, BUFFER_SIZE - 1);
 704               	.LM57:
 705 0330 E091 0000 		lds r30,UART0_Send_Message_String_p
 706 0334 F091 0000 		lds r31,UART0_Send_Message_String_p+1
 707 0338 6BE8      		ldi r22,lo8(-117)
 708 033a 70E0      		ldi r23,0
 709 033c 80E0      		ldi r24,lo8(uart_message_string)
 710 033e 90E0      		ldi r25,hi8(uart_message_string)
 711 0340 0995      		icall
 332:one_wire_temperature.c ****          /*clear strings*/
 333:one_wire_temperature.c ****          clearString(uart_message_string, BUFFER_SIZE);
 713               	.LM58:
 714 0342 6CE8      		ldi r22,lo8(-116)
 715 0344 70E0      		ldi r23,0
 716 0346 80E0      		ldi r24,lo8(uart_message_string)
 717 0348 90E0      		ldi r25,hi8(uart_message_string)
 718               	/* epilogue start */
 334:one_wire_temperature.c ****          break;
 335:one_wire_temperature.c ****       case 1:
 336:one_wire_temperature.c **** #if 0
 337:one_wire_temperature.c ****          /* set status*/
 338:one_wire_temperature.c ****          (*flag) = (0 != ptr_owiStruct->value) ? TRUE: FALSE;
 339:one_wire_temperature.c **** #else
 340:one_wire_temperature.c ****          /* toggle status*/
 341:one_wire_temperature.c **** 	owiTemperatureSensorBySensorParasiticConversionFlag = ( FALSE != owiTemperatureSensorBySensorParas
 342:one_wire_temperature.c **** #endif
 343:one_wire_temperature.c ****          /*recursive call to show change*/
 344:one_wire_temperature.c ****          ptr_uartStruct->number_of_arguments=1;
 345:one_wire_temperature.c ****          owiTemperatureMiscSubCommandGetSetStepByStepParasiticConversion(ptr_uartStruct);
 346:one_wire_temperature.c ****          ptr_uartStruct->number_of_arguments=2;
 347:one_wire_temperature.c ****          break;
 348:one_wire_temperature.c ****       default:
 349:one_wire_temperature.c ****          generalErrorCode = CommunicationError_p(ERRG, dynamicMessage_ErrorIndex, TRUE, PSTR("inval
 350:one_wire_temperature.c ****          break;
 351:one_wire_temperature.c ****    }
 352:one_wire_temperature.c **** }
 720               	.LM59:
 721 034a DF91      		pop r29
 722 034c CF91      		pop r28
 333:one_wire_temperature.c ****          break;
 724               	.LM60:
 725 034e 0C94 0000 		jmp clearString
 726               	.L39:
 341:one_wire_temperature.c **** #endif
 728               	.LM61:
 729 0352 81E0      		ldi r24,lo8(1)
 730 0354 9091 0000 		lds r25,owiTemperatureSensorBySensorParasiticConversionFlag
 731 0358 9111      		cpse r25,__zero_reg__
 732 035a 00C0      		rjmp .L41
 733 035c 80E0      		ldi r24,0
 734               	.L41:
 735 035e 8093 0000 		sts owiTemperatureSensorBySensorParasiticConversionFlag,r24
 344:one_wire_temperature.c ****          owiTemperatureMiscSubCommandGetSetStepByStepParasiticConversion(ptr_uartStruct);
 737               	.LM62:
 738 0362 81E0      		ldi r24,lo8(1)
 739 0364 8B8F      		std Y+27,r24
 345:one_wire_temperature.c ****          ptr_uartStruct->number_of_arguments=2;
 741               	.LM63:
 742 0366 CE01      		movw r24,r28
 743 0368 0E94 0000 		call owiTemperatureMiscSubCommandGetSetStepByStepParasiticConversion
 346:one_wire_temperature.c ****          break;
 745               	.LM64:
 746 036c 82E0      		ldi r24,lo8(2)
 747 036e 8B8F      		std Y+27,r24
 347:one_wire_temperature.c ****       default:
 749               	.LM65:
 750 0370 00C0      		rjmp .L36
 751               	.L45:
 349:one_wire_temperature.c ****          break;
 753               	.LM66:
 754 0372 80E0      		ldi r24,lo8(__c.3097)
 755 0374 90E0      		ldi r25,hi8(__c.3097)
 756 0376 9F93      		push r25
 757 0378 8F93      		push r24
 758 037a 81E0      		ldi r24,lo8(1)
 759 037c 8F93      		push r24
 760 037e 8FEF      		ldi r24,lo8(-1)
 761 0380 8F93      		push r24
 762 0382 8CE9      		ldi r24,lo8(-100)
 763 0384 8F93      		push r24
 764 0386 1F92      		push __zero_reg__
 765 0388 E091 0000 		lds r30,CommunicationError_p
 766 038c F091 0000 		lds r31,CommunicationError_p+1
 767 0390 0995      		icall
 768 0392 90E0      		ldi r25,0
 769 0394 9093 0000 		sts generalErrorCode+1,r25
 770 0398 8093 0000 		sts generalErrorCode,r24
 350:one_wire_temperature.c ****    }
 772               	.LM67:
 773 039c 0F90      		pop __tmp_reg__
 774 039e 0F90      		pop __tmp_reg__
 775 03a0 0F90      		pop __tmp_reg__
 776 03a2 0F90      		pop __tmp_reg__
 777 03a4 0F90      		pop __tmp_reg__
 778 03a6 0F90      		pop __tmp_reg__
 779               	.L36:
 780               	/* epilogue start */
 782               	.LM68:
 783 03a8 DF91      		pop r29
 784 03aa CF91      		pop r28
 785 03ac 0895      		ret
 787               	.Lscope4:
 790               	.global	owiTemperatureMiscSubCommandGetSetForceParasiticMode
 792               	owiTemperatureMiscSubCommandGetSetForceParasiticMode:
 353:one_wire_temperature.c **** 
 354:one_wire_temperature.c **** void owiTemperatureMiscSubCommandGetSetForceParasiticMode(struct uartStruct *ptr_uartStruct)
 355:one_wire_temperature.c **** {
 794               	.LM69:
 795               	.LFBB5:
 796 03ae CF93      		push r28
 797 03b0 DF93      		push r29
 798               	/* prologue: function */
 799               	/* frame size = 0 */
 800               	/* stack size = 2 */
 801               	.L__stack_usage = 2
 802 03b2 EC01      		movw r28,r24
 356:one_wire_temperature.c ****    uint8_t *flag = &owiTemperatureForceParasiticMode;
 357:one_wire_temperature.c **** 
 358:one_wire_temperature.c ****    //owiTemperatureMiscSubCommandGetSetFlag(ptr_uartStruct,flag,PSTR(":"),FALSE);
 359:one_wire_temperature.c ****    //int8_t keywordIndex = owiTemperatureCommandKeyNumber_FORCE_PARASITIC_MODE;
 360:one_wire_temperature.c ****    switch(ptr_uartStruct->number_of_arguments - 1 /* arguments of argument */)
 804               	.LM70:
 805 03b4 8B8D      		ldd r24,Y+27
 806 03b6 9927      		clr r25
 807 03b8 87FD      		sbrc r24,7
 808 03ba 9095      		com r25
 809 03bc 0197      		sbiw r24,1
 810 03be 0097      		sbiw r24,0
 811 03c0 01F0      		breq .L48
 812 03c2 0197      		sbiw r24,1
 813 03c4 01F0      		breq .L49
 814 03c6 00C0      		rjmp .L55
 815               	.L48:
 361:one_wire_temperature.c ****    {
 362:one_wire_temperature.c ****       case 0:
 363:one_wire_temperature.c ****          /* printout status*/
 364:one_wire_temperature.c **** 
 365:one_wire_temperature.c ****          /* generate message */
 366:one_wire_temperature.c ****          createExtendedSubCommandReceiveResponseHeader(ptr_uartStruct, -1,
 817               	.LM71:
 818 03c8 20E0      		ldi r18,lo8(owiTemperatureCommandKeywords)
 819 03ca 30E0      		ldi r19,hi8(owiTemperatureCommandKeywords)
 820 03cc 44E0      		ldi r20,lo8(4)
 821 03ce 6FEF      		ldi r22,lo8(-1)
 822 03d0 CE01      		movw r24,r28
 823 03d2 0E94 0000 		call createExtendedSubCommandReceiveResponseHeader
 367:one_wire_temperature.c ****                                                        owiTemperatureCommandKeyNumber_FORCE_PARASIT
 368:one_wire_temperature.c ****                                                        owiTemperatureCommandKeywords);
 369:one_wire_temperature.c ****          strncat_P(uart_message_string, ( FALSE != (*flag)) ? PSTR(" TRUE"):PSTR(" FALSE"),BUFFER_S
 825               	.LM72:
 826 03d6 8091 0000 		lds r24,owiTemperatureForceParasiticMode
 827 03da 8823      		tst r24
 828 03dc 01F0      		breq .L53
 829 03de 60E0      		ldi r22,lo8(__c.3104)
 830 03e0 70E0      		ldi r23,hi8(__c.3104)
 831 03e2 00C0      		rjmp .L50
 832               	.L53:
 833 03e4 60E0      		ldi r22,lo8(__c.3106)
 834 03e6 70E0      		ldi r23,hi8(__c.3106)
 835               	.L50:
 837               	.LM73:
 838 03e8 4BE8      		ldi r20,lo8(-117)
 839 03ea 50E0      		ldi r21,0
 840 03ec 80E0      		ldi r24,lo8(uart_message_string)
 841 03ee 90E0      		ldi r25,hi8(uart_message_string)
 842 03f0 0E94 0000 		call strncat_P
 370:one_wire_temperature.c ****          /*send the data*/
 371:one_wire_temperature.c ****          UART0_Send_Message_String_p(uart_message_string, BUFFER_SIZE - 1);
 844               	.LM74:
 845 03f4 E091 0000 		lds r30,UART0_Send_Message_String_p
 846 03f8 F091 0000 		lds r31,UART0_Send_Message_String_p+1
 847 03fc 6BE8      		ldi r22,lo8(-117)
 848 03fe 70E0      		ldi r23,0
 849 0400 80E0      		ldi r24,lo8(uart_message_string)
 850 0402 90E0      		ldi r25,hi8(uart_message_string)
 851 0404 0995      		icall
 372:one_wire_temperature.c ****          /*clear strings*/
 373:one_wire_temperature.c ****          clearString(uart_message_string, BUFFER_SIZE);
 853               	.LM75:
 854 0406 6CE8      		ldi r22,lo8(-116)
 855 0408 70E0      		ldi r23,0
 856 040a 80E0      		ldi r24,lo8(uart_message_string)
 857 040c 90E0      		ldi r25,hi8(uart_message_string)
 858               	/* epilogue start */
 374:one_wire_temperature.c ****          break;
 375:one_wire_temperature.c ****       case 1:
 376:one_wire_temperature.c **** #warning TODO why use '#if' 0? 
 377:one_wire_temperature.c **** #if 0
 378:one_wire_temperature.c ****          /* set status*/
 379:one_wire_temperature.c ****          (*flag) = (0 != ptr_owiStruct->value) ? TRUE: FALSE;
 380:one_wire_temperature.c **** #else
 381:one_wire_temperature.c ****          /* toggle status*/
 382:one_wire_temperature.c **** 	owiTemperatureForceParasiticMode = ( FALSE != owiTemperatureForceParasiticMode) ;
 383:one_wire_temperature.c **** #endif
 384:one_wire_temperature.c ****          /*recursive call to show change*/
 385:one_wire_temperature.c ****          ptr_uartStruct->number_of_arguments=1;
 386:one_wire_temperature.c ****          owiTemperatureMiscSubCommandGetSetForceParasiticMode(ptr_uartStruct);
 387:one_wire_temperature.c ****          ptr_uartStruct->number_of_arguments=2;
 388:one_wire_temperature.c ****          break;
 389:one_wire_temperature.c ****       default:
 390:one_wire_temperature.c ****          generalErrorCode = CommunicationError_p(ERRG, dynamicMessage_ErrorIndex, TRUE, PSTR("inval
 391:one_wire_temperature.c ****          break;
 392:one_wire_temperature.c ****    }
 393:one_wire_temperature.c **** }
 860               	.LM76:
 861 040e DF91      		pop r29
 862 0410 CF91      		pop r28
 373:one_wire_temperature.c ****          break;
 864               	.LM77:
 865 0412 0C94 0000 		jmp clearString
 866               	.L49:
 382:one_wire_temperature.c **** #endif
 868               	.LM78:
 869 0416 81E0      		ldi r24,lo8(1)
 870 0418 9091 0000 		lds r25,owiTemperatureForceParasiticMode
 871 041c 9111      		cpse r25,__zero_reg__
 872 041e 00C0      		rjmp .L51
 873 0420 80E0      		ldi r24,0
 874               	.L51:
 875 0422 8093 0000 		sts owiTemperatureForceParasiticMode,r24
 385:one_wire_temperature.c ****          owiTemperatureMiscSubCommandGetSetForceParasiticMode(ptr_uartStruct);
 877               	.LM79:
 878 0426 81E0      		ldi r24,lo8(1)
 879 0428 8B8F      		std Y+27,r24
 386:one_wire_temperature.c ****          ptr_uartStruct->number_of_arguments=2;
 881               	.LM80:
 882 042a CE01      		movw r24,r28
 883 042c 0E94 0000 		call owiTemperatureMiscSubCommandGetSetForceParasiticMode
 387:one_wire_temperature.c ****          break;
 885               	.LM81:
 886 0430 82E0      		ldi r24,lo8(2)
 887 0432 8B8F      		std Y+27,r24
 388:one_wire_temperature.c ****       default:
 889               	.LM82:
 890 0434 00C0      		rjmp .L46
 891               	.L55:
 390:one_wire_temperature.c ****          break;
 893               	.LM83:
 894 0436 80E0      		ldi r24,lo8(__c.3111)
 895 0438 90E0      		ldi r25,hi8(__c.3111)
 896 043a 9F93      		push r25
 897 043c 8F93      		push r24
 898 043e 81E0      		ldi r24,lo8(1)
 899 0440 8F93      		push r24
 900 0442 8FEF      		ldi r24,lo8(-1)
 901 0444 8F93      		push r24
 902 0446 8CE9      		ldi r24,lo8(-100)
 903 0448 8F93      		push r24
 904 044a 1F92      		push __zero_reg__
 905 044c E091 0000 		lds r30,CommunicationError_p
 906 0450 F091 0000 		lds r31,CommunicationError_p+1
 907 0454 0995      		icall
 908 0456 90E0      		ldi r25,0
 909 0458 9093 0000 		sts generalErrorCode+1,r25
 910 045c 8093 0000 		sts generalErrorCode,r24
 391:one_wire_temperature.c ****    }
 912               	.LM84:
 913 0460 0F90      		pop __tmp_reg__
 914 0462 0F90      		pop __tmp_reg__
 915 0464 0F90      		pop __tmp_reg__
 916 0466 0F90      		pop __tmp_reg__
 917 0468 0F90      		pop __tmp_reg__
 918 046a 0F90      		pop __tmp_reg__
 919               	.L46:
 920               	/* epilogue start */
 922               	.LM85:
 923 046c DF91      		pop r29
 924 046e CF91      		pop r28
 925 0470 0895      		ret
 927               	.Lscope5:
 930               	.global	owiTemperatureMiscSubCommandGetSetMaxConversionTime
 932               	owiTemperatureMiscSubCommandGetSetMaxConversionTime:
 394:one_wire_temperature.c **** 
 395:one_wire_temperature.c **** void owiTemperatureMiscSubCommandGetSetMaxConversionTime(struct uartStruct *ptr_uartStruct)
 396:one_wire_temperature.c **** {
 934               	.LM86:
 935               	.LFBB6:
 936 0472 CF93      		push r28
 937 0474 DF93      		push r29
 938               	/* prologue: function */
 939               	/* frame size = 0 */
 940               	/* stack size = 2 */
 941               	.L__stack_usage = 2
 942 0476 EC01      		movw r28,r24
 397:one_wire_temperature.c ****    switch(ptr_uartStruct->number_of_arguments - 1 /* arguments of argument */)
 944               	.LM87:
 945 0478 8B8D      		ldd r24,Y+27
 946 047a 9927      		clr r25
 947 047c 87FD      		sbrc r24,7
 948 047e 9095      		com r25
 949 0480 0197      		sbiw r24,1
 950 0482 0097      		sbiw r24,0
 951 0484 01F0      		breq .L58
 952 0486 0197      		sbiw r24,1
 953 0488 01F0      		breq .+2
 954 048a 00C0      		rjmp .L62
 398:one_wire_temperature.c ****    {
 399:one_wire_temperature.c ****       case 0:
 400:one_wire_temperature.c ****          /* printout status*/
 401:one_wire_temperature.c **** 
 402:one_wire_temperature.c ****          /* generate message */
 403:one_wire_temperature.c ****          createReceiveHeader(ptr_uartStruct, uart_message_string, BUFFER_SIZE);
 404:one_wire_temperature.c ****          strncat(uart_message_string, setParameter[1],BUFFER_SIZE -1 );
 405:one_wire_temperature.c ****          snprintf_P(uart_message_string, BUFFER_SIZE -1 , PSTR("%s%i (%#x)"),
 406:one_wire_temperature.c ****                     owiTemperatureMaxConversionTime, owiTemperatureMaxConversionTime);
 407:one_wire_temperature.c ****          /*send the data*/
 408:one_wire_temperature.c ****          UART0_Send_Message_String_p(uart_message_string, BUFFER_SIZE - 1);
 409:one_wire_temperature.c ****          break;
 410:one_wire_temperature.c ****       case 1:
 411:one_wire_temperature.c ****          /* set status*/
 412:one_wire_temperature.c ****          owiTemperatureMaxConversionTime = ptr_owiStruct->value;
 956               	.LM88:
 957 048c E091 0000 		lds r30,ptr_owiStruct
 958 0490 F091 0000 		lds r31,ptr_owiStruct+1
 959 0494 8385      		ldd r24,Z+11
 960 0496 9485      		ldd r25,Z+12
 961 0498 9093 0000 		sts owiTemperatureMaxConversionTime+1,r25
 962 049c 8093 0000 		sts owiTemperatureMaxConversionTime,r24
 413:one_wire_temperature.c **** 
 414:one_wire_temperature.c ****          /*recursive call to show change*/
 415:one_wire_temperature.c ****          ptr_uartStruct->number_of_arguments=1;
 964               	.LM89:
 965 04a0 81E0      		ldi r24,lo8(1)
 966 04a2 8B8F      		std Y+27,r24
 416:one_wire_temperature.c ****          owiTemperatureMiscSubCommandGetSetMaxConversionTime(ptr_uartStruct);
 968               	.LM90:
 969 04a4 CE01      		movw r24,r28
 970 04a6 0E94 0000 		call owiTemperatureMiscSubCommandGetSetMaxConversionTime
 417:one_wire_temperature.c ****          ptr_uartStruct->number_of_arguments=2;
 972               	.LM91:
 973 04aa 82E0      		ldi r24,lo8(2)
 974 04ac 8B8F      		std Y+27,r24
 418:one_wire_temperature.c ****          break;
 976               	.LM92:
 977 04ae 00C0      		rjmp .L56
 978               	.L58:
 403:one_wire_temperature.c ****          strncat(uart_message_string, setParameter[1],BUFFER_SIZE -1 );
 980               	.LM93:
 981 04b0 4CE8      		ldi r20,lo8(-116)
 982 04b2 50E0      		ldi r21,0
 983 04b4 60E0      		ldi r22,lo8(uart_message_string)
 984 04b6 70E0      		ldi r23,hi8(uart_message_string)
 985 04b8 CE01      		movw r24,r28
 986 04ba 0E94 0000 		call createReceiveHeader
 404:one_wire_temperature.c ****          snprintf_P(uart_message_string, BUFFER_SIZE -1 , PSTR("%s%i (%#x)"),
 988               	.LM94:
 989 04be 4BE8      		ldi r20,lo8(-117)
 990 04c0 50E0      		ldi r21,0
 991 04c2 60E0      		ldi r22,lo8(setParameter+25)
 992 04c4 70E0      		ldi r23,hi8(setParameter+25)
 993 04c6 80E0      		ldi r24,lo8(uart_message_string)
 994 04c8 90E0      		ldi r25,hi8(uart_message_string)
 995 04ca 0E94 0000 		call strncat
 405:one_wire_temperature.c ****                     owiTemperatureMaxConversionTime, owiTemperatureMaxConversionTime);
 997               	.LM95:
 998 04ce 8091 0000 		lds r24,owiTemperatureMaxConversionTime
 999 04d2 9091 0000 		lds r25,owiTemperatureMaxConversionTime+1
 1000 04d6 9F93      		push r25
 1001 04d8 8F93      		push r24
 1002 04da 9F93      		push r25
 1003 04dc 8F93      		push r24
 1004 04de 80E0      		ldi r24,lo8(__c.3117)
 1005 04e0 90E0      		ldi r25,hi8(__c.3117)
 1006 04e2 9F93      		push r25
 1007 04e4 8F93      		push r24
 1008 04e6 1F92      		push __zero_reg__
 1009 04e8 8BE8      		ldi r24,lo8(-117)
 1010 04ea 8F93      		push r24
 1011 04ec 80E0      		ldi r24,lo8(uart_message_string)
 1012 04ee 90E0      		ldi r25,hi8(uart_message_string)
 1013 04f0 9F93      		push r25
 1014 04f2 8F93      		push r24
 1015 04f4 0E94 0000 		call snprintf_P
 408:one_wire_temperature.c ****          break;
 1017               	.LM96:
 1018 04f8 8DB7      		in r24,__SP_L__
 1019 04fa 9EB7      		in r25,__SP_H__
 1020 04fc 0A96      		adiw r24,10
 1021 04fe 0FB6      		in __tmp_reg__,__SREG__
 1022 0500 F894      		cli
 1023 0502 9EBF      		out __SP_H__,r25
 1024 0504 0FBE      		out __SREG__,__tmp_reg__
 1025 0506 8DBF      		out __SP_L__,r24
 1026 0508 E091 0000 		lds r30,UART0_Send_Message_String_p
 1027 050c F091 0000 		lds r31,UART0_Send_Message_String_p+1
 1028 0510 6BE8      		ldi r22,lo8(-117)
 1029 0512 70E0      		ldi r23,0
 1030 0514 80E0      		ldi r24,lo8(uart_message_string)
 1031 0516 90E0      		ldi r25,hi8(uart_message_string)
 1032               	/* epilogue start */
 419:one_wire_temperature.c ****       default:
 420:one_wire_temperature.c ****          generalErrorCode = CommunicationError_p(ERRG, dynamicMessage_ErrorIndex, TRUE, PSTR("inval
 421:one_wire_temperature.c ****          break;
 422:one_wire_temperature.c ****    }
 423:one_wire_temperature.c **** }
 1034               	.LM97:
 1035 0518 DF91      		pop r29
 1036 051a CF91      		pop r28
 408:one_wire_temperature.c ****          break;
 1038               	.LM98:
 1039 051c 0994      		ijmp
 1040               	.L62:
 420:one_wire_temperature.c ****          break;
 1042               	.LM99:
 1043 051e 80E0      		ldi r24,lo8(__c.3122)
 1044 0520 90E0      		ldi r25,hi8(__c.3122)
 1045 0522 9F93      		push r25
 1046 0524 8F93      		push r24
 1047 0526 81E0      		ldi r24,lo8(1)
 1048 0528 8F93      		push r24
 1049 052a 8FEF      		ldi r24,lo8(-1)
 1050 052c 8F93      		push r24
 1051 052e 8CE9      		ldi r24,lo8(-100)
 1052 0530 8F93      		push r24
 1053 0532 1F92      		push __zero_reg__
 1054 0534 E091 0000 		lds r30,CommunicationError_p
 1055 0538 F091 0000 		lds r31,CommunicationError_p+1
 1056 053c 0995      		icall
 1057 053e 90E0      		ldi r25,0
 1058 0540 9093 0000 		sts generalErrorCode+1,r25
 1059 0544 8093 0000 		sts generalErrorCode,r24
 421:one_wire_temperature.c ****    }
 1061               	.LM100:
 1062 0548 0F90      		pop __tmp_reg__
 1063 054a 0F90      		pop __tmp_reg__
 1064 054c 0F90      		pop __tmp_reg__
 1065 054e 0F90      		pop __tmp_reg__
 1066 0550 0F90      		pop __tmp_reg__
 1067 0552 0F90      		pop __tmp_reg__
 1068               	.L56:
 1069               	/* epilogue start */
 1071               	.LM101:
 1072 0554 DF91      		pop r29
 1073 0556 CF91      		pop r28
 1074 0558 0895      		ret
 1076               	.Lscope6:
 1079               	.global	owiTemperatureMiscSubCommandGetSetResolution_DS18B20
 1081               	owiTemperatureMiscSubCommandGetSetResolution_DS18B20:
 424:one_wire_temperature.c **** 
 425:one_wire_temperature.c **** void owiTemperatureMiscSubCommandGetSetResolution_DS18B20(struct uartStruct *ptr_uartStruct)
 426:one_wire_temperature.c **** {
 1083               	.LM102:
 1084               	.LFBB7:
 1085 055a CF93      		push r28
 1086 055c DF93      		push r29
 1087               	/* prologue: function */
 1088               	/* frame size = 0 */
 1089               	/* stack size = 2 */
 1090               	.L__stack_usage = 2
 1091 055e EC01      		movw r28,r24
 427:one_wire_temperature.c ****    switch(ptr_uartStruct->number_of_arguments - 1 /* arguments of argument */)
 1093               	.LM103:
 1094 0560 8B8D      		ldd r24,Y+27
 1095 0562 9927      		clr r25
 1096 0564 87FD      		sbrc r24,7
 1097 0566 9095      		com r25
 1098 0568 0197      		sbiw r24,1
 1099 056a 0097      		sbiw r24,0
 1100 056c 01F0      		breq .L65
 1101 056e 0197      		sbiw r24,1
 1102 0570 01F0      		breq .L66
 1103 0572 00C0      		rjmp .L71
 1104               	.L65:
 428:one_wire_temperature.c ****    {
 429:one_wire_temperature.c ****       case 0:
 430:one_wire_temperature.c ****          /* printout status*/
 431:one_wire_temperature.c **** 
 432:one_wire_temperature.c ****          /* generate message */
 433:one_wire_temperature.c ****          createReceiveHeader(ptr_uartStruct, uart_message_string, BUFFER_SIZE);
 1106               	.LM104:
 1107 0574 4CE8      		ldi r20,lo8(-116)
 1108 0576 50E0      		ldi r21,0
 1109 0578 60E0      		ldi r22,lo8(uart_message_string)
 1110 057a 70E0      		ldi r23,hi8(uart_message_string)
 1111 057c CE01      		movw r24,r28
 1112 057e 0E94 0000 		call createReceiveHeader
 434:one_wire_temperature.c ****          strncat(uart_message_string, setParameter[1],BUFFER_SIZE -1 );
 1114               	.LM105:
 1115 0582 4BE8      		ldi r20,lo8(-117)
 1116 0584 50E0      		ldi r21,0
 1117 0586 60E0      		ldi r22,lo8(setParameter+25)
 1118 0588 70E0      		ldi r23,hi8(setParameter+25)
 1119 058a 80E0      		ldi r24,lo8(uart_message_string)
 1120 058c 90E0      		ldi r25,hi8(uart_message_string)
 1121 058e 0E94 0000 		call strncat
 435:one_wire_temperature.c ****          snprintf_P(uart_message_string, BUFFER_SIZE -1 , PSTR("%s%i "),
 1123               	.LM106:
 1124 0592 8091 0000 		lds r24,owiTemperatureResolution_DS18B20
 1125 0596 1F92      		push __zero_reg__
 1126 0598 8F93      		push r24
 1127 059a 80E0      		ldi r24,lo8(__c.3128)
 1128 059c 90E0      		ldi r25,hi8(__c.3128)
 1129 059e 9F93      		push r25
 1130 05a0 8F93      		push r24
 1131 05a2 1F92      		push __zero_reg__
 1132 05a4 8BE8      		ldi r24,lo8(-117)
 1133 05a6 8F93      		push r24
 1134 05a8 80E0      		ldi r24,lo8(uart_message_string)
 1135 05aa 90E0      		ldi r25,hi8(uart_message_string)
 1136 05ac 9F93      		push r25
 1137 05ae 8F93      		push r24
 1138 05b0 0E94 0000 		call snprintf_P
 436:one_wire_temperature.c ****                      owiTemperatureResolution_DS18B20);
 437:one_wire_temperature.c ****          /*send the data*/
 438:one_wire_temperature.c ****          UART0_Send_Message_String_p(uart_message_string, BUFFER_SIZE - 1);
 1140               	.LM107:
 1141 05b4 8DB7      		in r24,__SP_L__
 1142 05b6 9EB7      		in r25,__SP_H__
 1143 05b8 0896      		adiw r24,8
 1144 05ba 0FB6      		in __tmp_reg__,__SREG__
 1145 05bc F894      		cli
 1146 05be 9EBF      		out __SP_H__,r25
 1147 05c0 0FBE      		out __SREG__,__tmp_reg__
 1148 05c2 8DBF      		out __SP_L__,r24
 1149 05c4 E091 0000 		lds r30,UART0_Send_Message_String_p
 1150 05c8 F091 0000 		lds r31,UART0_Send_Message_String_p+1
 1151 05cc 6BE8      		ldi r22,lo8(-117)
 1152 05ce 70E0      		ldi r23,0
 1153 05d0 80E0      		ldi r24,lo8(uart_message_string)
 1154 05d2 90E0      		ldi r25,hi8(uart_message_string)
 1155               	/* epilogue start */
 439:one_wire_temperature.c ****          break;
 440:one_wire_temperature.c ****       case 1:
 441:one_wire_temperature.c ****       {
 442:one_wire_temperature.c ****          uint16_t value = ptr_owiStruct->value;
 443:one_wire_temperature.c **** 
 444:one_wire_temperature.c ****          /* set status*/
 445:one_wire_temperature.c ****          switch(value)
 446:one_wire_temperature.c ****          {
 447:one_wire_temperature.c ****             case 12:
 448:one_wire_temperature.c ****             case 11:
 449:one_wire_temperature.c ****             case 10:
 450:one_wire_temperature.c ****             case  9:
 451:one_wire_temperature.c ****                owiTemperatureResolution_DS18B20 = value;
 452:one_wire_temperature.c ****                break;
 453:one_wire_temperature.c ****             default:
 454:one_wire_temperature.c ****                generalErrorCode = CommunicationError_p(ERRG, dynamicMessage_ErrorIndex, TRUE, PSTR(
 455:one_wire_temperature.c ****                return;
 456:one_wire_temperature.c ****                break;
 457:one_wire_temperature.c ****          }
 458:one_wire_temperature.c **** 
 459:one_wire_temperature.c ****          /*recursive call to show change*/
 460:one_wire_temperature.c ****          ptr_uartStruct->number_of_arguments=1;
 461:one_wire_temperature.c ****          owiTemperatureMiscSubCommandGetSetResolution_DS18B20(ptr_uartStruct);
 462:one_wire_temperature.c ****          ptr_uartStruct->number_of_arguments=2;
 463:one_wire_temperature.c ****       }
 464:one_wire_temperature.c ****       break;
 465:one_wire_temperature.c ****       default:
 466:one_wire_temperature.c ****          generalErrorCode = CommunicationError_p(ERRG, dynamicMessage_ErrorIndex, TRUE, PSTR("inval
 467:one_wire_temperature.c ****          break;
 468:one_wire_temperature.c ****    }
 469:one_wire_temperature.c **** }
 1157               	.LM108:
 1158 05d4 DF91      		pop r29
 1159 05d6 CF91      		pop r28
 438:one_wire_temperature.c ****          break;
 1161               	.LM109:
 1162 05d8 0994      		ijmp
 1163               	.L66:
 1164               	.LBB46:
 442:one_wire_temperature.c **** 
 1166               	.LM110:
 1167 05da E091 0000 		lds r30,ptr_owiStruct
 1168 05de F091 0000 		lds r31,ptr_owiStruct+1
 1169 05e2 8385      		ldd r24,Z+11
 1170 05e4 9485      		ldd r25,Z+12
 445:one_wire_temperature.c ****          {
 1172               	.LM111:
 1173 05e6 9C01      		movw r18,r24
 1174 05e8 2950      		subi r18,9
 1175 05ea 3109      		sbc r19,__zero_reg__
 1176 05ec 2430      		cpi r18,4
 1177 05ee 3105      		cpc r19,__zero_reg__
 1178 05f0 00F4      		brsh .L67
 451:one_wire_temperature.c ****                break;
 1180               	.LM112:
 1181 05f2 8093 0000 		sts owiTemperatureResolution_DS18B20,r24
 460:one_wire_temperature.c ****          owiTemperatureMiscSubCommandGetSetResolution_DS18B20(ptr_uartStruct);
 1183               	.LM113:
 1184 05f6 81E0      		ldi r24,lo8(1)
 1185 05f8 8B8F      		std Y+27,r24
 461:one_wire_temperature.c ****          ptr_uartStruct->number_of_arguments=2;
 1187               	.LM114:
 1188 05fa CE01      		movw r24,r28
 1189 05fc 0E94 0000 		call owiTemperatureMiscSubCommandGetSetResolution_DS18B20
 462:one_wire_temperature.c ****       }
 1191               	.LM115:
 1192 0600 82E0      		ldi r24,lo8(2)
 1193 0602 8B8F      		std Y+27,r24
 1194               	.LBE46:
 464:one_wire_temperature.c ****       default:
 1196               	.LM116:
 1197 0604 00C0      		rjmp .L63
 1198               	.L67:
 1199               	.LBB47:
 454:one_wire_temperature.c ****                return;
 1201               	.LM117:
 1202 0606 9F93      		push r25
 1203 0608 8F93      		push r24
 1204 060a 80E0      		ldi r24,lo8(__c.3139)
 1205 060c 90E0      		ldi r25,hi8(__c.3139)
 1206 060e 9F93      		push r25
 1207 0610 8F93      		push r24
 1208 0612 81E0      		ldi r24,lo8(1)
 1209 0614 8F93      		push r24
 1210 0616 8FEF      		ldi r24,lo8(-1)
 1211 0618 8F93      		push r24
 1212 061a 8CE9      		ldi r24,lo8(-100)
 1213 061c 8F93      		push r24
 1214 061e 1F92      		push __zero_reg__
 1215 0620 E091 0000 		lds r30,CommunicationError_p
 1216 0624 F091 0000 		lds r31,CommunicationError_p+1
 1217 0628 0995      		icall
 1218 062a 90E0      		ldi r25,0
 1219 062c 9093 0000 		sts generalErrorCode+1,r25
 1220 0630 8093 0000 		sts generalErrorCode,r24
 455:one_wire_temperature.c ****                break;
 1222               	.LM118:
 1223 0634 8DB7      		in r24,__SP_L__
 1224 0636 9EB7      		in r25,__SP_H__
 1225 0638 0896      		adiw r24,8
 1226 063a 0FB6      		in __tmp_reg__,__SREG__
 1227 063c F894      		cli
 1228 063e 9EBF      		out __SP_H__,r25
 1229 0640 0FBE      		out __SREG__,__tmp_reg__
 1230 0642 8DBF      		out __SP_L__,r24
 1231 0644 00C0      		rjmp .L63
 1232               	.L71:
 1233               	.LBE47:
 466:one_wire_temperature.c ****          break;
 1235               	.LM119:
 1236 0646 80E0      		ldi r24,lo8(__c.3142)
 1237 0648 90E0      		ldi r25,hi8(__c.3142)
 1238 064a 9F93      		push r25
 1239 064c 8F93      		push r24
 1240 064e 81E0      		ldi r24,lo8(1)
 1241 0650 8F93      		push r24
 1242 0652 8FEF      		ldi r24,lo8(-1)
 1243 0654 8F93      		push r24
 1244 0656 8CE9      		ldi r24,lo8(-100)
 1245 0658 8F93      		push r24
 1246 065a 1F92      		push __zero_reg__
 1247 065c E091 0000 		lds r30,CommunicationError_p
 1248 0660 F091 0000 		lds r31,CommunicationError_p+1
 1249 0664 0995      		icall
 1250 0666 90E0      		ldi r25,0
 1251 0668 9093 0000 		sts generalErrorCode+1,r25
 1252 066c 8093 0000 		sts generalErrorCode,r24
 467:one_wire_temperature.c ****    }
 1254               	.LM120:
 1255 0670 0F90      		pop __tmp_reg__
 1256 0672 0F90      		pop __tmp_reg__
 1257 0674 0F90      		pop __tmp_reg__
 1258 0676 0F90      		pop __tmp_reg__
 1259 0678 0F90      		pop __tmp_reg__
 1260 067a 0F90      		pop __tmp_reg__
 1261               	.L63:
 1262               	/* epilogue start */
 1264               	.LM121:
 1265 067c DF91      		pop r29
 1266 067e CF91      		pop r28
 1267 0680 0895      		ret
 1275               	.Lscope7:
 1278               	.global	owiTemperatureConversionParasitic
 1280               	owiTemperatureConversionParasitic:
 470:one_wire_temperature.c **** 
 471:one_wire_temperature.c **** void owiTemperatureMiscSubCommandConvertOnly(struct uartStruct *ptr_uartStruct)
 472:one_wire_temperature.c **** {
 473:one_wire_temperature.c ****    switch(ptr_uartStruct->number_of_arguments - 1 /* arguments of argument */)
 474:one_wire_temperature.c ****    {
 475:one_wire_temperature.c ****       case 0:
 476:one_wire_temperature.c ****          if ( 0 != owiTemperatureGetNumberOfDevicesAndSetTemperatureMask(ptr_uartStruct))
 477:one_wire_temperature.c ****          {
 478:one_wire_temperature.c ****             if ( 0 == owiTemperatureConversions(BUSES, TRUE, FALSE))
 479:one_wire_temperature.c ****             {
 480:one_wire_temperature.c ****                createReceiveHeader(ptr_uartStruct, uart_message_string, BUFFER_SIZE);
 481:one_wire_temperature.c ****                strncat(uart_message_string, setParameter[1],BUFFER_SIZE -1 );
 482:one_wire_temperature.c ****                strncat_P(uart_message_string, PSTR(" done"),BUFFER_SIZE -1 );
 483:one_wire_temperature.c ****                /*send the data*/
 484:one_wire_temperature.c ****                UART0_Send_Message_String_p(uart_message_string, BUFFER_SIZE - 1);
 485:one_wire_temperature.c ****                /*clear strings*/
 486:one_wire_temperature.c ****                clearString(uart_message_string, BUFFER_SIZE);
 487:one_wire_temperature.c ****             }
 488:one_wire_temperature.c ****          }
 489:one_wire_temperature.c ****          else
 490:one_wire_temperature.c ****          {
 491:one_wire_temperature.c ****             generalErrorCode = CommunicationError_p(ERRG, dynamicMessage_ErrorIndex, TRUE, PSTR("no
 492:one_wire_temperature.c ****          }
 493:one_wire_temperature.c ****          break;
 494:one_wire_temperature.c ****       case 1:
 495:one_wire_temperature.c ****          /* any further argument*/
 496:one_wire_temperature.c ****          if ( 0 != owiTemperatureGetNumberOfDevicesAndSetTemperatureMask(ptr_uartStruct))
 497:one_wire_temperature.c ****          {
 498:one_wire_temperature.c ****             if ( 0 == owiTemperatureConversions(BUSES, FALSE, FALSE))
 499:one_wire_temperature.c ****             {
 500:one_wire_temperature.c ****                createReceiveHeader(ptr_uartStruct, uart_message_string, BUFFER_SIZE);
 501:one_wire_temperature.c ****                strncat(uart_message_string, setParameter[1],BUFFER_SIZE -1 );
 502:one_wire_temperature.c ****                strncat_P(uart_message_string, PSTR(" "),BUFFER_SIZE -1 );
 503:one_wire_temperature.c ****                strncat(uart_message_string, setParameter[2],BUFFER_SIZE -1 );
 504:one_wire_temperature.c ****                strncat_P(uart_message_string, PSTR(" done"),BUFFER_SIZE -1 );
 505:one_wire_temperature.c ****                /*send the data*/
 506:one_wire_temperature.c ****                UART0_Send_Message_String_p(uart_message_string, BUFFER_SIZE - 1);
 507:one_wire_temperature.c ****                /*clear strings*/
 508:one_wire_temperature.c ****                clearString(uart_message_string, BUFFER_SIZE);
 509:one_wire_temperature.c ****             }
 510:one_wire_temperature.c ****          }
 511:one_wire_temperature.c ****          else
 512:one_wire_temperature.c ****          {
 513:one_wire_temperature.c ****             generalErrorCode = CommunicationError_p(ERRG, dynamicMessage_ErrorIndex, TRUE, PSTR("no
 514:one_wire_temperature.c ****          }
 515:one_wire_temperature.c ****          break;
 516:one_wire_temperature.c ****       default:
 517:one_wire_temperature.c ****          CommunicationError_p(ERRA, dynamicMessage_ErrorIndex, FALSE, PSTR("invalid number of argum
 518:one_wire_temperature.c ****          break;
 519:one_wire_temperature.c ****    }
 520:one_wire_temperature.c **** }
 521:one_wire_temperature.c **** 
 522:one_wire_temperature.c **** void owiTemperatureMiscSubCommands( struct uartStruct *ptr_uartStruct )
 523:one_wire_temperature.c **** {
 524:one_wire_temperature.c ****    uint8_t index = 0;
 525:one_wire_temperature.c ****    // find matching temperature command keyword
 526:one_wire_temperature.c ****    index = apiFindCommandKeywordIndex(setParameter[1], owiTemperatureCommandKeywords, owiTemperatur
 527:one_wire_temperature.c **** 
 528:one_wire_temperature.c ****    switch (index)
 529:one_wire_temperature.c ****    {
 530:one_wire_temperature.c ****       case owiTemperatureCommandKeyNumber_CONVERT_ONLY:
 531:one_wire_temperature.c ****          owiTemperatureMiscSubCommandConvertOnly(ptr_uartStruct);
 532:one_wire_temperature.c ****          break;
 533:one_wire_temperature.c ****       case owiTemperatureCommandKeyNumber_NO_CONVERT:
 534:one_wire_temperature.c ****          ptr_uartStruct->number_of_arguments = 0;
 535:one_wire_temperature.c ****          clearString(setParameter[1], MAX_LENGTH_PARAMETER);
 536:one_wire_temperature.c ****          owiTemperatureReadSensors(ptr_uartStruct, FALSE);
 537:one_wire_temperature.c ****          break;
 538:one_wire_temperature.c ****       case owiTemperatureCommandKeyNumber_IGNORE_CONVERSION_RESPONSE:
 539:one_wire_temperature.c ****          owiTemperatureMiscSubCommandGetSetFlag(ptr_uartStruct, &owiTemperatureIgnoreConversionResp
 540:one_wire_temperature.c ****          break;
 541:one_wire_temperature.c ****       case owiTemperatureCommandKeyNumber_MAX_CONVERSION_TIME_MS:
 542:one_wire_temperature.c ****          owiTemperatureMiscSubCommandGetSetMaxConversionTime(ptr_uartStruct);
 543:one_wire_temperature.c ****          break;
 544:one_wire_temperature.c ****       case owiTemperatureCommandKeyNumber_FORCE_PARASITIC_MODE:
 545:one_wire_temperature.c ****          owiTemperatureMiscSubCommandGetSetForceParasiticMode(ptr_uartStruct);
 546:one_wire_temperature.c ****          break;
 547:one_wire_temperature.c ****       case owiTemperatureCommandKeyNumber_RESOLUTION_DS18B20:
 548:one_wire_temperature.c ****          owiTemperatureMiscSubCommandGetSetResolution_DS18B20(ptr_uartStruct);
 549:one_wire_temperature.c ****          break;
 550:one_wire_temperature.c ****       case owiTemperatureCommandKeyNumber_SINGLE_SENSOR_PARSITIC_CONVERSION:
 551:one_wire_temperature.c **** 	 owiTemperatureMiscSubCommandGetSetStepByStepParasiticConversion(ptr_uartStruct);
 552:one_wire_temperature.c **** 	break;
 553:one_wire_temperature.c ****       default:
 554:one_wire_temperature.c ****          CommunicationError_p(ERRA, dynamicMessage_ErrorIndex, FALSE, PSTR("invalid argument"));
 555:one_wire_temperature.c ****          return;
 556:one_wire_temperature.c ****          break;
 557:one_wire_temperature.c ****    }
 558:one_wire_temperature.c **** 
 559:one_wire_temperature.c ****    return;
 560:one_wire_temperature.c **** }
 561:one_wire_temperature.c **** 
 562:one_wire_temperature.c **** void owiTemperatureConversionParasitic( unsigned char pins )
 563:one_wire_temperature.c **** {
 1282               	.LM122:
 1283               	.LFBB8:
 1284 0682 1F93      		push r17
 1285 0684 CF93      		push r28
 1286 0686 DF93      		push r29
 1287               	/* prologue: function */
 1288               	/* frame size = 0 */
 1289               	/* stack size = 3 */
 1290               	.L__stack_usage = 3
 1291 0688 182F      		mov r17,r24
 564:one_wire_temperature.c ****    unsigned char data = DS1820_START_CONVERSION;
 565:one_wire_temperature.c ****    unsigned char temp;
 566:one_wire_temperature.c ****    unsigned char i;
 567:one_wire_temperature.c **** 
 568:one_wire_temperature.c ****    // Do once for each bit
 569:one_wire_temperature.c ****    for ( i = 0; i < 8 ; i++ )
 1293               	.LM123:
 1294 068a C0E0      		ldi r28,0
 564:one_wire_temperature.c ****    unsigned char data = DS1820_START_CONVERSION;
 1296               	.LM124:
 1297 068c D4E4      		ldi r29,lo8(68)
 1298               	.L77:
 570:one_wire_temperature.c ****    {
 571:one_wire_temperature.c ****       // Determine if lsb is '0' or '1' and transmit corresponding
 572:one_wire_temperature.c ****       // waveform on the bus.
 573:one_wire_temperature.c ****       temp = data & 0x01;
 574:one_wire_temperature.c ****       if ( temp )
 575:one_wire_temperature.c ****       {
 576:one_wire_temperature.c ****          OWI_WriteBit1(pins);
 1300               	.LM125:
 1301 068e 812F      		mov r24,r17
 574:one_wire_temperature.c ****       {
 1303               	.LM126:
 1304 0690 D0FF      		sbrs r29,0
 1305 0692 00C0      		rjmp .L73
 1307               	.LM127:
 1308 0694 0E94 0000 		call OWI_WriteBit1
 1309 0698 00C0      		rjmp .L74
 1310               	.L73:
 577:one_wire_temperature.c ****       }
 578:one_wire_temperature.c ****       else
 579:one_wire_temperature.c ****       {
 580:one_wire_temperature.c ****          if (7 == i)
 1312               	.LM128:
 1313 069a C730      		cpi r28,lo8(7)
 1314 069c 01F4      		brne .L75
 581:one_wire_temperature.c ****          {
 582:one_wire_temperature.c ****             OWI_WriteBit0ShortRelease(pins);
 1316               	.LM129:
 1317 069e 0E94 0000 		call OWI_WriteBit0ShortRelease
 1318 06a2 00C0      		rjmp .L74
 1319               	.L75:
 583:one_wire_temperature.c ****          }
 584:one_wire_temperature.c ****          else
 585:one_wire_temperature.c ****          {
 586:one_wire_temperature.c ****             OWI_WriteBit0(pins);
 1321               	.LM130:
 1322 06a4 0E94 0000 		call OWI_WriteBit0
 1323               	.L74:
 587:one_wire_temperature.c ****          }
 588:one_wire_temperature.c ****       }
 589:one_wire_temperature.c ****       // Right shift the data to get next bit.
 590:one_wire_temperature.c ****       data >>= 1;
 1325               	.LM131:
 1326 06a8 D695      		lsr r29
 569:one_wire_temperature.c ****    {
 1328               	.LM132:
 1329 06aa CF5F      		subi r28,lo8(-(1))
 1330 06ac C830      		cpi r28,lo8(8)
 1331 06ae 01F4      		brne .L77
 591:one_wire_temperature.c ****    }
 592:one_wire_temperature.c **** 
 593:one_wire_temperature.c ****    // lowering pin on PORTA3, to trigger external strong pull-up
 594:one_wire_temperature.c ****    // this must come within max 10us after the last writeBit operation, critical if writing a 0,
 595:one_wire_temperature.c ****    // therefore special OWI_WriteBit0ShortRelease call
 596:one_wire_temperature.c **** #warning TODO unused mode stems from mdc relay, clarify
 597:one_wire_temperature.c **** #if 0
 598:one_wire_temperature.c **** #warning name pin 0x8
 599:one_wire_temperature.c ****    PORTA = PORTA & (~0x8);
 600:one_wire_temperature.c **** 
 601:one_wire_temperature.c ****    _delay_ms(100);
 602:one_wire_temperature.c ****    _delay_ms(100);
 603:one_wire_temperature.c ****    _delay_ms(100);
 604:one_wire_temperature.c ****    _delay_ms(100);
 605:one_wire_temperature.c ****    _delay_ms(100);
 606:one_wire_temperature.c ****    _delay_ms(100);
 607:one_wire_temperature.c ****    _delay_ms(100);
 608:one_wire_temperature.c ****    _delay_ms(100);
 609:one_wire_temperature.c ****    _delay_ms(100);
 610:one_wire_temperature.c **** 
 611:one_wire_temperature.c ****    // raising pin on PORTA3, to release external strong pull-up
 612:one_wire_temperature.c ****    PORTA |= 0x8;
 613:one_wire_temperature.c **** 
 614:one_wire_temperature.c **** #else
 615:one_wire_temperature.c **** //   PORTA = PORTA & (~0x8);
 616:one_wire_temperature.c ****    
 617:one_wire_temperature.c ****    PORTA = 0xff;
 1333               	.LM133:
 1334 06b0 8FEF      		ldi r24,lo8(-1)
 1335 06b2 82B9      		out 0x2,r24
 618:one_wire_temperature.c ****    DDRA = 0xff;
 1337               	.LM134:
 1338 06b4 81B9      		out 0x1,r24
 1339               	.LBB48:
 1340               	.LBB49:
 1342               	.Ltext1:
   1:/usr/lib/avr/include/util/delay.h **** /* Copyright (c) 2002, Marek Michalkiewicz
   2:/usr/lib/avr/include/util/delay.h ****    Copyright (c) 2004,2005,2007 Joerg Wunsch
   3:/usr/lib/avr/include/util/delay.h ****    Copyright (c) 2007  Florin-Viorel Petrov
   4:/usr/lib/avr/include/util/delay.h ****    All rights reserved.
   5:/usr/lib/avr/include/util/delay.h **** 
   6:/usr/lib/avr/include/util/delay.h ****    Redistribution and use in source and binary forms, with or without
   7:/usr/lib/avr/include/util/delay.h ****    modification, are permitted provided that the following conditions are met:
   8:/usr/lib/avr/include/util/delay.h **** 
   9:/usr/lib/avr/include/util/delay.h ****    * Redistributions of source code must retain the above copyright
  10:/usr/lib/avr/include/util/delay.h ****      notice, this list of conditions and the following disclaimer.
  11:/usr/lib/avr/include/util/delay.h **** 
  12:/usr/lib/avr/include/util/delay.h ****    * Redistributions in binary form must reproduce the above copyright
  13:/usr/lib/avr/include/util/delay.h ****      notice, this list of conditions and the following disclaimer in
  14:/usr/lib/avr/include/util/delay.h ****      the documentation and/or other materials provided with the
  15:/usr/lib/avr/include/util/delay.h ****      distribution.
  16:/usr/lib/avr/include/util/delay.h **** 
  17:/usr/lib/avr/include/util/delay.h ****    * Neither the name of the copyright holders nor the names of
  18:/usr/lib/avr/include/util/delay.h ****      contributors may be used to endorse or promote products derived
  19:/usr/lib/avr/include/util/delay.h ****      from this software without specific prior written permission.
  20:/usr/lib/avr/include/util/delay.h **** 
  21:/usr/lib/avr/include/util/delay.h ****   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  22:/usr/lib/avr/include/util/delay.h ****   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  23:/usr/lib/avr/include/util/delay.h ****   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  24:/usr/lib/avr/include/util/delay.h ****   ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
  25:/usr/lib/avr/include/util/delay.h ****   LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  26:/usr/lib/avr/include/util/delay.h ****   CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  27:/usr/lib/avr/include/util/delay.h ****   SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  28:/usr/lib/avr/include/util/delay.h ****   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  29:/usr/lib/avr/include/util/delay.h ****   CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  30:/usr/lib/avr/include/util/delay.h ****   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  31:/usr/lib/avr/include/util/delay.h ****   POSSIBILITY OF SUCH DAMAGE. */
  32:/usr/lib/avr/include/util/delay.h **** 
  33:/usr/lib/avr/include/util/delay.h **** /* $Id$ */
  34:/usr/lib/avr/include/util/delay.h **** 
  35:/usr/lib/avr/include/util/delay.h **** #ifndef _UTIL_DELAY_H_
  36:/usr/lib/avr/include/util/delay.h **** #define _UTIL_DELAY_H_ 1
  37:/usr/lib/avr/include/util/delay.h **** 
  38:/usr/lib/avr/include/util/delay.h **** #ifndef __HAS_DELAY_CYCLES
  39:/usr/lib/avr/include/util/delay.h **** #define __HAS_DELAY_CYCLES 1
  40:/usr/lib/avr/include/util/delay.h **** #endif
  41:/usr/lib/avr/include/util/delay.h **** 
  42:/usr/lib/avr/include/util/delay.h **** #include <inttypes.h>
  43:/usr/lib/avr/include/util/delay.h **** #include <util/delay_basic.h>
  44:/usr/lib/avr/include/util/delay.h **** #include <math.h>
  45:/usr/lib/avr/include/util/delay.h **** 
  46:/usr/lib/avr/include/util/delay.h **** /** \file */
  47:/usr/lib/avr/include/util/delay.h **** /** \defgroup util_delay <util/delay.h>: Convenience functions for busy-wait delay loops
  48:/usr/lib/avr/include/util/delay.h ****     \code
  49:/usr/lib/avr/include/util/delay.h ****     #define F_CPU 1000000UL  // 1 MHz
  50:/usr/lib/avr/include/util/delay.h ****     //#define F_CPU 14.7456E6
  51:/usr/lib/avr/include/util/delay.h ****     #include <util/delay.h>
  52:/usr/lib/avr/include/util/delay.h ****     \endcode
  53:/usr/lib/avr/include/util/delay.h **** 
  54:/usr/lib/avr/include/util/delay.h ****     \note As an alternative method, it is possible to pass the
  55:/usr/lib/avr/include/util/delay.h ****     F_CPU macro down to the compiler from the Makefile.
  56:/usr/lib/avr/include/util/delay.h ****     Obviously, in that case, no \c \#define statement should be
  57:/usr/lib/avr/include/util/delay.h ****     used.
  58:/usr/lib/avr/include/util/delay.h **** 
  59:/usr/lib/avr/include/util/delay.h ****     The functions in this header file are wrappers around the basic
  60:/usr/lib/avr/include/util/delay.h ****     busy-wait functions from <util/delay_basic.h>.  They are meant as
  61:/usr/lib/avr/include/util/delay.h ****     convenience functions where actual time values can be specified
  62:/usr/lib/avr/include/util/delay.h ****     rather than a number of cycles to wait for.  The idea behind is
  63:/usr/lib/avr/include/util/delay.h ****     that compile-time constant expressions will be eliminated by
  64:/usr/lib/avr/include/util/delay.h ****     compiler optimization so floating-point expressions can be used
  65:/usr/lib/avr/include/util/delay.h ****     to calculate the number of delay cycles needed based on the CPU
  66:/usr/lib/avr/include/util/delay.h ****     frequency passed by the macro F_CPU.
  67:/usr/lib/avr/include/util/delay.h **** 
  68:/usr/lib/avr/include/util/delay.h ****     \note In order for these functions to work as intended, compiler
  69:/usr/lib/avr/include/util/delay.h ****     optimizations <em>must</em> be enabled, and the delay time
  70:/usr/lib/avr/include/util/delay.h ****     <em>must</em> be an expression that is a known constant at
  71:/usr/lib/avr/include/util/delay.h ****     compile-time.  If these requirements are not met, the resulting
  72:/usr/lib/avr/include/util/delay.h ****     delay will be much longer (and basically unpredictable), and
  73:/usr/lib/avr/include/util/delay.h ****     applications that otherwise do not use floating-point calculations
  74:/usr/lib/avr/include/util/delay.h ****     will experience severe code bloat by the floating-point library
  75:/usr/lib/avr/include/util/delay.h ****     routines linked into the application.
  76:/usr/lib/avr/include/util/delay.h **** 
  77:/usr/lib/avr/include/util/delay.h ****     The functions available allow the specification of microsecond, and
  78:/usr/lib/avr/include/util/delay.h ****     millisecond delays directly, using the application-supplied macro
  79:/usr/lib/avr/include/util/delay.h ****     F_CPU as the CPU clock frequency (in Hertz).
  80:/usr/lib/avr/include/util/delay.h **** 
  81:/usr/lib/avr/include/util/delay.h **** */
  82:/usr/lib/avr/include/util/delay.h **** 
  83:/usr/lib/avr/include/util/delay.h **** #if !defined(__DOXYGEN__)
  84:/usr/lib/avr/include/util/delay.h **** static inline void _delay_us(double __us) __attribute__((always_inline));
  85:/usr/lib/avr/include/util/delay.h **** static inline void _delay_ms(double __ms) __attribute__((always_inline));
  86:/usr/lib/avr/include/util/delay.h **** #endif
  87:/usr/lib/avr/include/util/delay.h **** 
  88:/usr/lib/avr/include/util/delay.h **** #ifndef F_CPU
  89:/usr/lib/avr/include/util/delay.h **** /* prevent compiler error by supplying a default */
  90:/usr/lib/avr/include/util/delay.h **** # warning "F_CPU not defined for <util/delay.h>"
  91:/usr/lib/avr/include/util/delay.h **** # define F_CPU 1000000UL
  92:/usr/lib/avr/include/util/delay.h **** #endif
  93:/usr/lib/avr/include/util/delay.h **** 
  94:/usr/lib/avr/include/util/delay.h **** #ifndef __OPTIMIZE__
  95:/usr/lib/avr/include/util/delay.h **** # warning "Compiler optimizations disabled; functions from <util/delay.h> won't work as designed"
  96:/usr/lib/avr/include/util/delay.h **** #endif
  97:/usr/lib/avr/include/util/delay.h **** 
  98:/usr/lib/avr/include/util/delay.h **** #if __HAS_DELAY_CYCLES && defined(__OPTIMIZE__) && \
  99:/usr/lib/avr/include/util/delay.h ****   !defined(__DELAY_BACKWARD_COMPATIBLE__) &&	   \
 100:/usr/lib/avr/include/util/delay.h ****   __STDC_HOSTED__
 101:/usr/lib/avr/include/util/delay.h **** #  include <math.h>
 102:/usr/lib/avr/include/util/delay.h **** #endif
 103:/usr/lib/avr/include/util/delay.h **** 
 104:/usr/lib/avr/include/util/delay.h **** /**
 105:/usr/lib/avr/include/util/delay.h ****    \ingroup util_delay
 106:/usr/lib/avr/include/util/delay.h **** 
 107:/usr/lib/avr/include/util/delay.h ****    Perform a delay of \c __ms milliseconds, using _delay_loop_2().
 108:/usr/lib/avr/include/util/delay.h **** 
 109:/usr/lib/avr/include/util/delay.h ****    The macro F_CPU is supposed to be defined to a
 110:/usr/lib/avr/include/util/delay.h ****    constant defining the CPU clock frequency (in Hertz).
 111:/usr/lib/avr/include/util/delay.h **** 
 112:/usr/lib/avr/include/util/delay.h ****    The maximal possible delay is 262.14 ms / F_CPU in MHz.
 113:/usr/lib/avr/include/util/delay.h **** 
 114:/usr/lib/avr/include/util/delay.h ****    When the user request delay which exceed the maximum possible one,
 115:/usr/lib/avr/include/util/delay.h ****    _delay_ms() provides a decreased resolution functionality. In this
 116:/usr/lib/avr/include/util/delay.h ****    mode _delay_ms() will work with a resolution of 1/10 ms, providing
 117:/usr/lib/avr/include/util/delay.h ****    delays up to 6.5535 seconds (independent from CPU frequency).  The
 118:/usr/lib/avr/include/util/delay.h ****    user will not be informed about decreased resolution.
 119:/usr/lib/avr/include/util/delay.h **** 
 120:/usr/lib/avr/include/util/delay.h ****    If the avr-gcc toolchain has __builtin_avr_delay_cycles(unsigned long)
 121:/usr/lib/avr/include/util/delay.h ****    support, maximal possible delay is 4294967.295 ms/ F_CPU in MHz. For
 122:/usr/lib/avr/include/util/delay.h ****    values greater than the maximal possible delay, overflows results in
 123:/usr/lib/avr/include/util/delay.h ****    no delay i.e., 0ms.
 124:/usr/lib/avr/include/util/delay.h **** 
 125:/usr/lib/avr/include/util/delay.h ****    Conversion of __us into clock cycles may not always result in integer.
 126:/usr/lib/avr/include/util/delay.h ****    By default, the clock cycles rounded up to next integer. This ensures that
 127:/usr/lib/avr/include/util/delay.h ****    the user gets atleast __us microseconds of delay.
 128:/usr/lib/avr/include/util/delay.h **** 
 129:/usr/lib/avr/include/util/delay.h ****    Alternatively, user can define __DELAY_ROUND_DOWN__ and __DELAY_ROUND_CLOSEST__
 130:/usr/lib/avr/include/util/delay.h ****    to round down and round to closest integer.
 131:/usr/lib/avr/include/util/delay.h **** 
 132:/usr/lib/avr/include/util/delay.h ****    Note: The new implementation of _delay_ms(double __ms) with 
 133:/usr/lib/avr/include/util/delay.h ****     __builtin_avr_delay_cycles(unsigned long) support is not backward compatible. 
 134:/usr/lib/avr/include/util/delay.h ****    User can define __DELAY_BACKWARD_COMPATIBLE__ to get a backward compatible delay.
 135:/usr/lib/avr/include/util/delay.h ****    Also, the backward compatible
 136:/usr/lib/avr/include/util/delay.h ****    algorithm will be chosen if the code is compiled in a <em>freestanding
 137:/usr/lib/avr/include/util/delay.h ****    environment</em> (GCC option \c -ffreestanding), as the math functions
 138:/usr/lib/avr/include/util/delay.h ****    required for rounding are not available to the compiler then.
 139:/usr/lib/avr/include/util/delay.h **** 
 140:/usr/lib/avr/include/util/delay.h ****  */
 141:/usr/lib/avr/include/util/delay.h **** void
 142:/usr/lib/avr/include/util/delay.h **** _delay_ms(double __ms)
 143:/usr/lib/avr/include/util/delay.h **** {
 144:/usr/lib/avr/include/util/delay.h **** 	double __tmp ; 
 145:/usr/lib/avr/include/util/delay.h **** #if __HAS_DELAY_CYCLES && defined(__OPTIMIZE__) && \
 146:/usr/lib/avr/include/util/delay.h ****   !defined(__DELAY_BACKWARD_COMPATIBLE__) &&	   \
 147:/usr/lib/avr/include/util/delay.h ****   __STDC_HOSTED__
 148:/usr/lib/avr/include/util/delay.h **** 	uint32_t __ticks_dc;
 149:/usr/lib/avr/include/util/delay.h **** 	extern void __builtin_avr_delay_cycles(unsigned long);
 150:/usr/lib/avr/include/util/delay.h **** 	__tmp = ((F_CPU) / 1e3) * __ms;
 151:/usr/lib/avr/include/util/delay.h **** 
 152:/usr/lib/avr/include/util/delay.h **** 	#if defined(__DELAY_ROUND_DOWN__)
 153:/usr/lib/avr/include/util/delay.h **** 		__ticks_dc = (uint32_t)fabs(__tmp);
 154:/usr/lib/avr/include/util/delay.h **** 
 155:/usr/lib/avr/include/util/delay.h **** 	#elif defined(__DELAY_ROUND_CLOSEST__)
 156:/usr/lib/avr/include/util/delay.h **** 		__ticks_dc = (uint32_t)(fabs(__tmp)+0.5);
 157:/usr/lib/avr/include/util/delay.h **** 
 158:/usr/lib/avr/include/util/delay.h **** 	#else
 159:/usr/lib/avr/include/util/delay.h **** 		//round up by default
 160:/usr/lib/avr/include/util/delay.h **** 		__ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
 161:/usr/lib/avr/include/util/delay.h **** 	#endif
 162:/usr/lib/avr/include/util/delay.h **** 
 163:/usr/lib/avr/include/util/delay.h **** 	__builtin_avr_delay_cycles(__ticks_dc);
 1344               	.LM135:
 1345 06b6 2FE3      		ldi r18,lo8(199999)
 1346 06b8 8DE0      		ldi r24,hi8(199999)
 1347 06ba 93E0      		ldi r25,hlo8(199999)
 1348 06bc 2150      		1: subi r18,1
 1349 06be 8040      		sbci r24,0
 1350 06c0 9040      		sbci r25,0
 1351 06c2 01F4      		brne 1b
 1352 06c4 00C0      		rjmp .
 1353 06c6 0000      		nop
 1354               	.LBE49:
 1355               	.LBE48:
 1356               	.LBB50:
 1357               	.LBB51:
 1358 06c8 2FE3      		ldi r18,lo8(199999)
 1359 06ca 8DE0      		ldi r24,hi8(199999)
 1360 06cc 93E0      		ldi r25,hlo8(199999)
 1361 06ce 2150      		1: subi r18,1
 1362 06d0 8040      		sbci r24,0
 1363 06d2 9040      		sbci r25,0
 1364 06d4 01F4      		brne 1b
 1365 06d6 00C0      		rjmp .
 1366 06d8 0000      		nop
 1367               	.LBE51:
 1368               	.LBE50:
 1369               	.LBB52:
 1370               	.LBB53:
 1371 06da 2FE3      		ldi r18,lo8(199999)
 1372 06dc 8DE0      		ldi r24,hi8(199999)
 1373 06de 93E0      		ldi r25,hlo8(199999)
 1374 06e0 2150      		1: subi r18,1
 1375 06e2 8040      		sbci r24,0
 1376 06e4 9040      		sbci r25,0
 1377 06e6 01F4      		brne 1b
 1378 06e8 00C0      		rjmp .
 1379 06ea 0000      		nop
 1380               	.LBE53:
 1381               	.LBE52:
 1382               	.LBB54:
 1383               	.LBB55:
 1384 06ec 2FE3      		ldi r18,lo8(199999)
 1385 06ee 8DE0      		ldi r24,hi8(199999)
 1386 06f0 93E0      		ldi r25,hlo8(199999)
 1387 06f2 2150      		1: subi r18,1
 1388 06f4 8040      		sbci r24,0
 1389 06f6 9040      		sbci r25,0
 1390 06f8 01F4      		brne 1b
 1391 06fa 00C0      		rjmp .
 1392 06fc 0000      		nop
 1393               	.LBE55:
 1394               	.LBE54:
 1395               	.LBB56:
 1396               	.LBB57:
 1397 06fe 2FE3      		ldi r18,lo8(199999)
 1398 0700 8DE0      		ldi r24,hi8(199999)
 1399 0702 93E0      		ldi r25,hlo8(199999)
 1400 0704 2150      		1: subi r18,1
 1401 0706 8040      		sbci r24,0
 1402 0708 9040      		sbci r25,0
 1403 070a 01F4      		brne 1b
 1404 070c 00C0      		rjmp .
 1405 070e 0000      		nop
 1406               	.LBE57:
 1407               	.LBE56:
 1408               	.LBB58:
 1409               	.LBB59:
 1410 0710 2FE3      		ldi r18,lo8(199999)
 1411 0712 8DE0      		ldi r24,hi8(199999)
 1412 0714 93E0      		ldi r25,hlo8(199999)
 1413 0716 2150      		1: subi r18,1
 1414 0718 8040      		sbci r24,0
 1415 071a 9040      		sbci r25,0
 1416 071c 01F4      		brne 1b
 1417 071e 00C0      		rjmp .
 1418 0720 0000      		nop
 1419               	.LBE59:
 1420               	.LBE58:
 1421               	.LBB60:
 1422               	.LBB61:
 1423 0722 2FE3      		ldi r18,lo8(199999)
 1424 0724 8DE0      		ldi r24,hi8(199999)
 1425 0726 93E0      		ldi r25,hlo8(199999)
 1426 0728 2150      		1: subi r18,1
 1427 072a 8040      		sbci r24,0
 1428 072c 9040      		sbci r25,0
 1429 072e 01F4      		brne 1b
 1430 0730 00C0      		rjmp .
 1431 0732 0000      		nop
 1432               	.LBE61:
 1433               	.LBE60:
 1434               	.LBB62:
 1435               	.LBB63:
 1436 0734 2FE3      		ldi r18,lo8(199999)
 1437 0736 8DE0      		ldi r24,hi8(199999)
 1438 0738 93E0      		ldi r25,hlo8(199999)
 1439 073a 2150      		1: subi r18,1
 1440 073c 8040      		sbci r24,0
 1441 073e 9040      		sbci r25,0
 1442 0740 01F4      		brne 1b
 1443 0742 00C0      		rjmp .
 1444 0744 0000      		nop
 1445               	.LBE63:
 1446               	.LBE62:
 1447               	.LBB64:
 1448               	.LBB65:
 1449 0746 2FE3      		ldi r18,lo8(199999)
 1450 0748 8DE0      		ldi r24,hi8(199999)
 1451 074a 93E0      		ldi r25,hlo8(199999)
 1452 074c 2150      		1: subi r18,1
 1453 074e 8040      		sbci r24,0
 1454 0750 9040      		sbci r25,0
 1455 0752 01F4      		brne 1b
 1456 0754 00C0      		rjmp .
 1457 0756 0000      		nop
 1458               	.LBE65:
 1459               	.LBE64:
 1461               	.Ltext2:
 619:one_wire_temperature.c **** 
 620:one_wire_temperature.c ****    _delay_ms(100);
 621:one_wire_temperature.c ****    _delay_ms(100);
 622:one_wire_temperature.c ****    _delay_ms(100);
 623:one_wire_temperature.c ****    _delay_ms(100);
 624:one_wire_temperature.c ****    _delay_ms(100);
 625:one_wire_temperature.c ****    _delay_ms(100);
 626:one_wire_temperature.c ****    _delay_ms(100);
 627:one_wire_temperature.c ****    _delay_ms(100);
 628:one_wire_temperature.c ****    _delay_ms(100);
 629:one_wire_temperature.c **** 
 630:one_wire_temperature.c ****    // raising pin on PORTA3, to release external strong pull-up
 631:one_wire_temperature.c ****    DDRA =0x00; /* disable output */
 1463               	.LM136:
 1464 0758 11B8      		out 0x1,__zero_reg__
 632:one_wire_temperature.c ****    PORTA = 0;
 1466               	.LM137:
 1467 075a 12B8      		out 0x2,__zero_reg__
 1468               	/* epilogue start */
 633:one_wire_temperature.c **** #endif
 634:one_wire_temperature.c **** }
 1470               	.LM138:
 1471 075c DF91      		pop r29
 1472 075e CF91      		pop r28
 1473 0760 1F91      		pop r17
 1474 0762 0895      		ret
 1480               	.Lscope8:
 1484               	.global	owiTemperatureSensorBySensorParasiticConversion
 1486               	owiTemperatureSensorBySensorParasiticConversion:
 635:one_wire_temperature.c **** 
 636:one_wire_temperature.c **** void owiTemperatureSensorBySensorParasiticConversion(uint8_t currentPins, uint16_t selectedDeviceIn
 637:one_wire_temperature.c **** {
 1488               	.LM139:
 1489               	.LFBB9:
 1490               	/* prologue: function */
 1491               	/* frame size = 0 */
 1492               	/* stack size = 0 */
 1493               	.L__stack_usage = 0
 638:one_wire_temperature.c ****    uint8_t deviceIndex = 0;
 639:one_wire_temperature.c ****    static const int8_t familyCode[] = {
 640:one_wire_temperature.c ****             OWI_FAMILY_DS18B20_TEMP,
 641:one_wire_temperature.c ****             OWI_FAMILY_DS18S20_TEMP
 642:one_wire_temperature.c ****    };
 643:one_wire_temperature.c ****    uint8_t skipDevice = FALSE;
 644:one_wire_temperature.c ****    uint8_t index = 0;
 645:one_wire_temperature.c ****   
 646:one_wire_temperature.c ****    /* 
 647:one_wire_temperature.c ****    OWI_SendByte(OWI_ROM_SKIP, currentPins);
 648:one_wire_temperature.c ****    owiTemperatureConversionParasitic(currentPins);
 649:one_wire_temperature.c ****    return;
 650:one_wire_temperature.c ****   */
 651:one_wire_temperature.c **** 
 652:one_wire_temperature.c ****    for ( deviceIndex = 0 ; deviceIndex < countDEV ; deviceIndex++ )
 1495               	.LM140:
 1496 0764 8091 0000 		lds r24,countDEV
 1497 0768 9927      		clr r25
 1498 076a 87FD      		sbrc r24,7
 1499 076c 9095      		com r25
 1500 076e 40E0      		ldi r20,0
 1501               	.L79:
 1503               	.LM141:
 1504 0770 242F      		mov r18,r20
 1505 0772 30E0      		ldi r19,0
 1506 0774 2817      		cp r18,r24
 1507 0776 3907      		cpc r19,r25
 1508 0778 04F4      		brge .L81
 1510               	.LM142:
 1511 077a 4F5F      		subi r20,lo8(-(1))
 1512 077c 00C0      		rjmp .L79
 1513               	.L81:
 1514               	/* epilogue start */
 653:one_wire_temperature.c ****    {
 654:one_wire_temperature.c ****       /* no overlap of currentPins and devicePin */
 655:one_wire_temperature.c ****       if ( 0 == (currentPins & owi_IDs_pinMask[deviceIndex])) { continue; }
 656:one_wire_temperature.c **** 
 657:one_wire_temperature.c ****       skipDevice = FALSE;
 658:one_wire_temperature.c ****       for (index = 0; index < sizeof(familyCode)/sizeof(int8_t); index++)
 659:one_wire_temperature.c ****       {
 660:one_wire_temperature.c ****          /* is index selection used and does current device index match?*/
 661:one_wire_temperature.c ****          if ( 0 <= selectedDeviceIndex && deviceIndex != selectedDeviceIndex)
 662:one_wire_temperature.c ****          { skipDevice = TRUE; break; }
 663:one_wire_temperature.c **** 
 664:one_wire_temperature.c ****          /* does familyID matches current ID */
 665:one_wire_temperature.c ****          if ( familyCode[index] != owi_IDs[deviceIndex][0] )  { skipDevice = TRUE; break; }
 666:one_wire_temperature.c **** 
 667:one_wire_temperature.c ****          /* bus mask matches device's bus ? */
 668:one_wire_temperature.c ****          if ( 0 == ( ( owiBusMask & owi_IDs_pinMask[deviceIndex] ) & 0xFF ) )  { skipDevice = TRUE;
 669:one_wire_temperature.c ****       }
 670:one_wire_temperature.c ****       /* skip if skipDevice is set */
 671:one_wire_temperature.c ****       if ( FALSE != skipDevice ) { continue;}
 672:one_wire_temperature.c **** 
 673:one_wire_temperature.c ****       OWI_MatchRom(owi_IDs[deviceIndex], owi_IDs_pinMask[deviceIndex]);
 674:one_wire_temperature.c ****       owiTemperatureConversionParasitic(owi_IDs_pinMask[deviceIndex]);
 675:one_wire_temperature.c ****    }
 676:one_wire_temperature.c **** }
 1516               	.LM143:
 1517 077e 0895      		ret
 1522               	.Lscope9:
 1523               		.section	.rodata.str1.1,"aMS",@progbits,1
 1524               	.LC0:
 1525 0000 2573 2025 		.string	"%s %i ms"
 1525      6920 6D73 
 1525      00
 1526               		.text
 1534               	.global	owiTemperatureConversionEvaluateTimeoutFlag
 1536               	owiTemperatureConversionEvaluateTimeoutFlag:
 677:one_wire_temperature.c **** 
 678:one_wire_temperature.c **** int owiTemperatureConversions( uint8_t *pins, uint8_t waitForConversion, uint8_t spawnReleaseBlock 
 679:one_wire_temperature.c **** {
 680:one_wire_temperature.c ****     printDebug_p(debugLevelEventDebugVerbose, debugSystemOWITemperatures, __LINE__, filename, PSTR(
 681:one_wire_temperature.c **** 
 682:one_wire_temperature.c ****    uint16_t currentTimeoutMask = 0;
 683:one_wire_temperature.c ****    uint16_t maxConversionTime = owiTemperatureMaxConversionTime;
 684:one_wire_temperature.c ****    static unsigned char timeout_flag;
 685:one_wire_temperature.c ****    static uint32_t count;
 686:one_wire_temperature.c ****    static uint32_t maxcount;
 687:one_wire_temperature.c ****    uint8_t currentPins = 0x0;
 688:one_wire_temperature.c ****    uint8_t busPatternIndexMax = OWI_MAX_NUM_PIN_BUS;
 689:one_wire_temperature.c ****    uint8_t status = 0;
 690:one_wire_temperature.c ****    uint16_t selectedDeviceIndex = -1;
 691:one_wire_temperature.c **** 
 692:one_wire_temperature.c ****    /* check for parasitic lines , non verbose*/
 693:one_wire_temperature.c ****    owiFindParasitePoweredDevices(FALSE);
 694:one_wire_temperature.c **** 
 695:one_wire_temperature.c ****    /* fill ID table and ID bus table OUTSIDE this loop !
 696:one_wire_temperature.c ****     *   if some of the pins have parasitic devices 
 697:one_wire_temperature.c ****     *   or 
 698:one_wire_temperature.c ****     *   parasitic mode is forced
 699:one_wire_temperature.c ****     */
 700:one_wire_temperature.c ****    if ( 0 != owiTemperatureParasiticModeMask || FALSE != owiTemperatureForceParasiticMode )
 701:one_wire_temperature.c ****    {
 702:one_wire_temperature.c ****       /* check if no devices availabe, then return */
 703:one_wire_temperature.c ****       if ( 0 == owiTemperatureGetNumberOfDevicesAndSetTemperatureMask(ptr_uartStruct))
 704:one_wire_temperature.c ****       {
 705:one_wire_temperature.c ****           printDebug_p(debugLevelEventDebug, debugSystemOWITemperatures, __LINE__, filename, PSTR("
 706:one_wire_temperature.c ****          return 0;
 707:one_wire_temperature.c ****       }
 708:one_wire_temperature.c ****    }
 709:one_wire_temperature.c **** 
 710:one_wire_temperature.c ****    /* if a single id has been chosen,
 711:one_wire_temperature.c ****       find its corresponding index in the IDs list
 712:one_wire_temperature.c ****    */
 713:one_wire_temperature.c ****    if (ptr_owiStruct->idSelect_flag)
 714:one_wire_temperature.c ****    {
 715:one_wire_temperature.c ****       selectedDeviceIndex = owiFindIdAndGetIndex(ptr_owiStruct->id);
 716:one_wire_temperature.c ****    }
 717:one_wire_temperature.c **** 
 718:one_wire_temperature.c ****    /* bus pattern loop:
 719:one_wire_temperature.c ****     * looping over all pins
 720:one_wire_temperature.c ****     */
 721:one_wire_temperature.c ****    for ( int8_t busPatternIndex = 0 ; busPatternIndex < busPatternIndexMax ; busPatternIndex++ )
 722:one_wire_temperature.c ****    {
 723:one_wire_temperature.c ****       if ( TRUE == owiUseCommonTemperatureConversion_flag)
 724:one_wire_temperature.c ****       {
 725:one_wire_temperature.c ****          currentPins = generateCommonPinsPattern(pins, owiBusMask, owiTemperatureMask);
 726:one_wire_temperature.c ****          busPatternIndexMax = 1; // finish loop after one round
 727:one_wire_temperature.c ****       }
 728:one_wire_temperature.c ****       else
 729:one_wire_temperature.c ****       {
 730:one_wire_temperature.c ****          currentPins = pins[busPatternIndex];
 731:one_wire_temperature.c **** 
 732:one_wire_temperature.c ****          if ( 0 != checkBusAndDeviceActivityMasks(currentPins, busPatternIndex, owiBusMask, owiTemp
 733:one_wire_temperature.c ****          {
 734:one_wire_temperature.c ****             continue;
 735:one_wire_temperature.c ****          }
 736:one_wire_temperature.c ****       }
 737:one_wire_temperature.c **** 
 738:one_wire_temperature.c ****       /*
 739:one_wire_temperature.c ****        * determine max common conversion time (per bus)
 740:one_wire_temperature.c ****        */
 741:one_wire_temperature.c ****       maxConversionTime = owiTemperatureMaxConversionTime;
 742:one_wire_temperature.c **** 
 743:one_wire_temperature.c ****       /* if there are only DS18B20 devices availabe, i.e. no DS18S20, conversion time can be lowere
 744:one_wire_temperature.c ****       if ( 0 == ((owiTemperatureMask_DS18S20 & currentPins) & 0xFF ) )
 745:one_wire_temperature.c ****       {
 746:one_wire_temperature.c ****           printDebug_p(debugLevelEventDebug, debugSystemOWITemperatures, __LINE__, filename, PSTR("
 747:one_wire_temperature.c **** 
 748:one_wire_temperature.c ****          maxConversionTime = maxConversionTime >> (12 - owiTemperatureResolution_DS18B20);
 749:one_wire_temperature.c ****       }
 750:one_wire_temperature.c ****       else
 751:one_wire_temperature.c ****       {
 752:one_wire_temperature.c ****           printDebug_p(debugLevelEventDebug, debugSystemOWITemperatures, __LINE__, filename, PSTR("
 753:one_wire_temperature.c ****       }
 754:one_wire_temperature.c **** 
 755:one_wire_temperature.c ****       if ( 0 == OWI_DetectPresence(currentPins) )
 756:one_wire_temperature.c ****       {
 757:one_wire_temperature.c ****           printDebug_p(debugLevelEventDebug, debugSystemOWITemperatures, __LINE__, filename, PSTR("
 758:one_wire_temperature.c **** 
 759:one_wire_temperature.c ****          continue;
 760:one_wire_temperature.c ****       }
 761:one_wire_temperature.c ****       else
 762:one_wire_temperature.c ****       {
 763:one_wire_temperature.c ****           printDebug_p(debugLevelEventDebug, debugSystemOWITemperatures, __LINE__, filename, PSTR("
 764:one_wire_temperature.c ****           printDebug_p(debugLevelEventDebug, debugSystemOWITemperatures, __LINE__, filename, PSTR("
 765:one_wire_temperature.c ****       }
 766:one_wire_temperature.c **** 
 767:one_wire_temperature.c ****        /*
 768:one_wire_temperature.c ****         * send conversion command to all devices
 769:one_wire_temperature.c ****         */
 770:one_wire_temperature.c **** 
 771:one_wire_temperature.c ****       /*
 772:one_wire_temperature.c ****        * expect parasitic devices if forced to or the parasiticModeMask has common pins with the cu
 773:one_wire_temperature.c ****        */
 774:one_wire_temperature.c ****       if (FALSE != owiTemperatureForceParasiticMode || 0 != ((owiTemperatureParasiticModeMask & cur
 775:one_wire_temperature.c ****       {
 776:one_wire_temperature.c ****            printDebug_p(debugLevelEventDebugVerbose, debugSystemOWITemperatures, __LINE__, filename
 777:one_wire_temperature.c **** 
 778:one_wire_temperature.c **** 	  if ( FALSE != owiTemperatureSensorBySensorParasiticConversionFlag )
 779:one_wire_temperature.c **** 	  {
 780:one_wire_temperature.c **** 	    OWI_SendByte(OWI_ROM_SKIP, currentPins);
 781:one_wire_temperature.c **** 	    owiTemperatureConversionParasitic(currentPins);
 782:one_wire_temperature.c **** 	  }
 783:one_wire_temperature.c **** 	  else
 784:one_wire_temperature.c **** 	  {
 785:one_wire_temperature.c **** 	    owiTemperatureSensorBySensorParasiticConversion(currentPins, selectedDeviceIndex);
 786:one_wire_temperature.c **** 	    waitForConversion = FALSE;
 787:one_wire_temperature.c **** 	  }
 788:one_wire_temperature.c ****            printDebug_p(debugLevelEventDebugVerbose, debugSystemOWITemperatures, __LINE__, filename
 789:one_wire_temperature.c ****        }
 790:one_wire_temperature.c ****        else
 791:one_wire_temperature.c ****        {
 792:one_wire_temperature.c ****           /*
 793:one_wire_temperature.c ****            * non parasitic mode: wait / don't wait
 794:one_wire_temperature.c ****            */
 795:one_wire_temperature.c ****           if ( TRUE == waitForConversion )
 796:one_wire_temperature.c ****           {
 797:one_wire_temperature.c ****              maxcount = ( OWI_TEMPERATURE_CONVERSION_DELAY_MILLISECONDS > 0 ) ? maxConversionTime /
 798:one_wire_temperature.c ****              count = maxcount;
 799:one_wire_temperature.c ****              timeout_flag = FALSE;
 800:one_wire_temperature.c **** 
 801:one_wire_temperature.c ****               printDebug_p(debugLevelEventDebug, debugSystemOWITemperatures, __LINE__, filename, PS
 802:one_wire_temperature.c **** 
 803:one_wire_temperature.c ****              uint8_t owiReadBit = 0;
 804:one_wire_temperature.c **** 
 805:one_wire_temperature.c ****              /*conversion commands to reach all devices of the current pin at once*/
 806:one_wire_temperature.c ****              OWI_SendByte(OWI_ROM_SKIP, currentPins);
 807:one_wire_temperature.c ****              OWI_SendByte(DS1820_START_CONVERSION, currentPins);
 808:one_wire_temperature.c **** 
 809:one_wire_temperature.c ****              while ( 0 == owiReadBit)
 810:one_wire_temperature.c ****              {
 811:one_wire_temperature.c ****                 /* if conversion response isn't ignored, look for the currentPins to react*/
 812:one_wire_temperature.c ****                 if ( FALSE == owiTemperatureIgnoreConversionResponse )
 813:one_wire_temperature.c ****                 {
 814:one_wire_temperature.c ****                    owiReadBit = OWI_ReadBit(currentPins);
 815:one_wire_temperature.c ****                 }
 816:one_wire_temperature.c ****                 _delay_ms(OWI_TEMPERATURE_CONVERSION_DELAY_MILLISECONDS);
 817:one_wire_temperature.c **** 
 818:one_wire_temperature.c ****                 /* timeout check */
 819:one_wire_temperature.c ****                 if ( 0 == --count)
 820:one_wire_temperature.c ****                 {
 821:one_wire_temperature.c ****                    /* if conversion response isn't ignored, set timeout flag*/
 822:one_wire_temperature.c ****                    if ( FALSE == owiTemperatureIgnoreConversionResponse )
 823:one_wire_temperature.c ****                    {
 824:one_wire_temperature.c ****                       timeout_flag = TRUE;
 825:one_wire_temperature.c ****                    }
 826:one_wire_temperature.c ****                    break;
 827:one_wire_temperature.c ****                 }
 828:one_wire_temperature.c ****              }
 829:one_wire_temperature.c ****           }
 830:one_wire_temperature.c ****        }
 831:one_wire_temperature.c **** 
 832:one_wire_temperature.c ****        if ( TRUE == waitForConversion )
 833:one_wire_temperature.c ****        {
 834:one_wire_temperature.c ****           status = owiTemperatureConversionEvaluateTimeoutFlag(timeout_flag, currentPins, maxcount,
 835:one_wire_temperature.c ****        }
 836:one_wire_temperature.c ****        else
 837:one_wire_temperature.c ****        {
 838:one_wire_temperature.c ****           status = owiTemperatureConversionEvaluateTimeoutFlag(FALSE, currentPins, 0, 0, &currentTi
 839:one_wire_temperature.c ****           if ( TRUE == spawnReleaseBlock )
 840:one_wire_temperature.c ****           {
 841:one_wire_temperature.c ****              owiTemperatureConversionGoingOnCountDown = (1 > (maxConversionTime / 1000)) ? 1: (maxC
 842:one_wire_temperature.c ****           }
 843:one_wire_temperature.c ****        }
 844:one_wire_temperature.c ****    }//end of for ( int8_t busPatternIndex = 0 ; busPatternIndex < OWI_MAX_NUM_PIN_BUS ; busPatternI
 845:one_wire_temperature.c **** 
 846:one_wire_temperature.c ****     printDebug_p(debugLevelEventDebug, debugSystemOWITemperatures, __LINE__, filename, PSTR("finish
 847:one_wire_temperature.c **** 
 848:one_wire_temperature.c ****    return status;
 849:one_wire_temperature.c **** }
 850:one_wire_temperature.c **** 
 851:one_wire_temperature.c **** /*
 852:one_wire_temperature.c ****  * owiTemperatureConversionEvaluateTimeoutFlag(const unsigned char timeout_flag, const uint8_t curr
 853:one_wire_temperature.c ****  *
 854:one_wire_temperature.c ****  * this function checks or a given timeout flag
 855:one_wire_temperature.c ****  *     - if not set
 856:one_wire_temperature.c ****  *        - clears currentPins from
 857:one_wire_temperature.c ****  *              global owiTemperatureTimeoutMask
 858:one_wire_temperature.c ****  *        - it waits the remaining time:
 859:one_wire_temperature.c ****  *              count x OWI_TEMPERATURE_CONVERSION_DELAY_MILLISECONDS
 860:one_wire_temperature.c ****  *     - if set
 861:one_wire_temperature.c ****  *        - currentPins are added to
 862:one_wire_temperature.c ****  *              global owiTemperatureTimeoutMask
 863:one_wire_temperature.c ****  *                  and
 864:one_wire_temperature.c ****  *              currentTimeOutMask
 865:one_wire_temperature.c ****  *        - error messages are issued
 866:one_wire_temperature.c ****  *
 867:one_wire_temperature.c ****  * return
 868:one_wire_temperature.c ****  *      0: o.k.
 869:one_wire_temperature.c ****  *      else: error
 870:one_wire_temperature.c ****  */
 871:one_wire_temperature.c **** 
 872:one_wire_temperature.c **** uint8_t owiTemperatureConversionEvaluateTimeoutFlag(const unsigned char timeout_flag, const uint8_t
 873:one_wire_temperature.c **** {
 1538               	.LM144:
 1539               	.LFBB10:
 1540 0780 8F92      		push r8
 1541 0782 9F92      		push r9
 1542 0784 AF92      		push r10
 1543 0786 BF92      		push r11
 1544 0788 CF92      		push r12
 1545 078a DF92      		push r13
 1546 078c EF92      		push r14
 1547 078e FF92      		push r15
 1548 0790 0F93      		push r16
 1549 0792 1F93      		push r17
 1550               	/* prologue: function */
 1551               	/* frame size = 0 */
 1552               	/* stack size = 10 */
 1553               	.L__stack_usage = 10
 1554 0794 4701      		movw r8,r14
 1555 0796 5801      		movw r10,r16
 1556 0798 F601      		movw r30,r12
 1557 079a 70E0      		ldi r23,0
 1558 079c A091 0000 		lds r26,owiTemperatureTimeoutMask
 1559 07a0 B091 0000 		lds r27,owiTemperatureTimeoutMask+1
 874:one_wire_temperature.c ****     if ( FALSE == timeout_flag )
 1561               	.LM145:
 1562 07a4 8111      		cpse r24,__zero_reg__
 1563 07a6 00C0      		rjmp .L83
 875:one_wire_temperature.c ****       {
 876:one_wire_temperature.c ****          owiTemperatureTimeoutMask &= ~(currentPins);
 1565               	.LM146:
 1566 07a8 6095      		com r22
 1567 07aa 7095      		com r23
 1568 07ac 6A23      		and r22,r26
 1569 07ae 7B23      		and r23,r27
 1570 07b0 7093 0000 		sts owiTemperatureTimeoutMask+1,r23
 1571 07b4 6093 0000 		sts owiTemperatureTimeoutMask,r22
 877:one_wire_temperature.c **** 
 878:one_wire_temperature.c ****          if ( 0 < maxcount )
 1573               	.LM147:
 1574 07b8 2115      		cp r18,__zero_reg__
 1575 07ba 3105      		cpc r19,__zero_reg__
 1576 07bc 4105      		cpc r20,__zero_reg__
 1577 07be 5105      		cpc r21,__zero_reg__
 1578 07c0 01F0      		breq .L84
 879:one_wire_temperature.c ****          {
 880:one_wire_temperature.c ****              printDebug_p(debugLevelEventDebug, debugSystemOWITemperatures, __LINE__, filename, PST
 1580               	.LM148:
 1581 07c2 DA01      		movw r26,r20
 1582 07c4 C901      		movw r24,r18
 1583 07c6 8E19      		sub r24,r14
 1584 07c8 9F09      		sbc r25,r15
 1585 07ca A00B      		sbc r26,r16
 1586 07cc B10B      		sbc r27,r17
 1587 07ce BF93      		push r27
 1588 07d0 AF93      		push r26
 1589 07d2 9F93      		push r25
 1590 07d4 8F93      		push r24
 1591 07d6 80E0      		ldi r24,lo8(__c.3257)
 1592 07d8 90E0      		ldi r25,hi8(__c.3257)
 1593 07da 9F93      		push r25
 1594 07dc 8F93      		push r24
 1595 07de 80E0      		ldi r24,lo8(filename)
 1596 07e0 90E0      		ldi r25,hi8(filename)
 1597 07e2 9F93      		push r25
 1598 07e4 8F93      		push r24
 1599 07e6 83E0      		ldi r24,lo8(3)
 1600 07e8 8F93      		push r24
 1601 07ea 80E7      		ldi r24,lo8(112)
 1602 07ec 8F93      		push r24
 1603 07ee 1F92      		push __zero_reg__
 1604 07f0 1F92      		push __zero_reg__
 1605 07f2 1F92      		push __zero_reg__
 1606 07f4 89E0      		ldi r24,lo8(9)
 1607 07f6 8F93      		push r24
 1608 07f8 82E0      		ldi r24,lo8(2)
 1609 07fa 8F93      		push r24
 1610 07fc E091 0000 		lds r30,printDebug_p
 1611 0800 F091 0000 		lds r31,printDebug_p+1
 1612 0804 0995      		icall
 1613 0806 1F92      		push __zero_reg__
 1614 0808 8AE0      		ldi r24,lo8(10)
 1615 080a 8F93      		push r24
 1616 080c 80E0      		ldi r24,lo8(uart_message_string)
 1617 080e 90E0      		ldi r25,hi8(uart_message_string)
 1618 0810 9F93      		push r25
 1619 0812 8F93      		push r24
 1620 0814 20E0      		ldi r18,lo8(.LC0)
 1621 0816 30E0      		ldi r19,hi8(.LC0)
 1622 0818 3F93      		push r19
 1623 081a 2F93      		push r18
 1624 081c 1F92      		push __zero_reg__
 1625 081e 2BE8      		ldi r18,lo8(-117)
 1626 0820 2F93      		push r18
 1627 0822 9F93      		push r25
 1628 0824 8F93      		push r24
 1629 0826 0E94 0000 		call snprintf
 1630 082a 8DB7      		in r24,__SP_L__
 1631 082c 9EB7      		in r25,__SP_H__
 1632 082e 4996      		adiw r24,25
 1633 0830 0FB6      		in __tmp_reg__,__SREG__
 1634 0832 F894      		cli
 1635 0834 9EBF      		out __SP_H__,r25
 1636 0836 0FBE      		out __SREG__,__tmp_reg__
 1637 0838 8DBF      		out __SP_L__,r24
 1638               	.L84:
 881:one_wire_temperature.c ****          }
 882:one_wire_temperature.c **** 
 883:one_wire_temperature.c ****          if ( count > 0 )
 1640               	.LM149:
 1641 083a 8114      		cp r8,__zero_reg__
 1642 083c 9104      		cpc r9,__zero_reg__
 1643 083e A104      		cpc r10,__zero_reg__
 1644 0840 B104      		cpc r11,__zero_reg__
 1645 0842 01F4      		brne .L85
 1646               	.L89:
 884:one_wire_temperature.c ****          {
 885:one_wire_temperature.c ****             /*wait the remaining time*/
 886:one_wire_temperature.c ****              printDebug_p(debugLevelEventDebug, debugSystemOWITemperatures, __LINE__, filename, PST
 887:one_wire_temperature.c **** 
 888:one_wire_temperature.c ****             while ( 0 < --count ) { _delay_ms(OWI_TEMPERATURE_CONVERSION_DELAY_MILLISECONDS); }
 889:one_wire_temperature.c ****          }
 890:one_wire_temperature.c ****           printDebug_p(debugLevelEventDebug, debugSystemOWITemperatures, __LINE__, filename, PSTR("
 1648               	.LM150:
 1649 0844 80E0      		ldi r24,lo8(__c.3264)
 1650 0846 90E0      		ldi r25,hi8(__c.3264)
 1651 0848 9F93      		push r25
 1652 084a 8F93      		push r24
 1653 084c 80E0      		ldi r24,lo8(filename)
 1654 084e 90E0      		ldi r25,hi8(filename)
 1655 0850 9F93      		push r25
 1656 0852 8F93      		push r24
 1657 0854 83E0      		ldi r24,lo8(3)
 1658 0856 8F93      		push r24
 1659 0858 8AE7      		ldi r24,lo8(122)
 1660 085a 8F93      		push r24
 1661 085c 1F92      		push __zero_reg__
 1662 085e 1F92      		push __zero_reg__
 1663 0860 1F92      		push __zero_reg__
 1664 0862 89E0      		ldi r24,lo8(9)
 1665 0864 8F93      		push r24
 1666 0866 82E0      		ldi r24,lo8(2)
 1667 0868 8F93      		push r24
 1668 086a E091 0000 		lds r30,printDebug_p
 1669 086e F091 0000 		lds r31,printDebug_p+1
 1670 0872 0995      		icall
 891:one_wire_temperature.c **** 
 892:one_wire_temperature.c ****          return 0;
 1672               	.LM151:
 1673 0874 8DB7      		in r24,__SP_L__
 1674 0876 9EB7      		in r25,__SP_H__
 1675 0878 0B96      		adiw r24,11
 1676 087a 0FB6      		in __tmp_reg__,__SREG__
 1677 087c F894      		cli
 1678 087e 9EBF      		out __SP_H__,r25
 1679 0880 0FBE      		out __SREG__,__tmp_reg__
 1680 0882 8DBF      		out __SP_L__,r24
 1681 0884 80E0      		ldi r24,0
 1682 0886 00C0      		rjmp .L86
 1683               	.L85:
 886:one_wire_temperature.c **** 
 1685               	.LM152:
 1686 0888 BF92      		push r11
 1687 088a AF92      		push r10
 1688 088c 9F92      		push r9
 1689 088e 8F92      		push r8
 1690 0890 80E0      		ldi r24,lo8(__c.3259)
 1691 0892 90E0      		ldi r25,hi8(__c.3259)
 1692 0894 9F93      		push r25
 1693 0896 8F93      		push r24
 1694 0898 80E0      		ldi r24,lo8(filename)
 1695 089a 90E0      		ldi r25,hi8(filename)
 1696 089c 9F93      		push r25
 1697 089e 8F93      		push r24
 1698 08a0 83E0      		ldi r24,lo8(3)
 1699 08a2 8F93      		push r24
 1700 08a4 86E7      		ldi r24,lo8(118)
 1701 08a6 8F93      		push r24
 1702 08a8 1F92      		push __zero_reg__
 1703 08aa 1F92      		push __zero_reg__
 1704 08ac 1F92      		push __zero_reg__
 1705 08ae 89E0      		ldi r24,lo8(9)
 1706 08b0 8F93      		push r24
 1707 08b2 82E0      		ldi r24,lo8(2)
 1708 08b4 8F93      		push r24
 1709 08b6 E091 0000 		lds r30,printDebug_p
 1710 08ba F091 0000 		lds r31,printDebug_p+1
 1711 08be 0995      		icall
 1712 08c0 1F92      		push __zero_reg__
 1713 08c2 8AE0      		ldi r24,lo8(10)
 1714 08c4 8F93      		push r24
 1715 08c6 80E0      		ldi r24,lo8(uart_message_string)
 1716 08c8 90E0      		ldi r25,hi8(uart_message_string)
 1717 08ca 9F93      		push r25
 1718 08cc 8F93      		push r24
 1719 08ce 20E0      		ldi r18,lo8(.LC0)
 1720 08d0 30E0      		ldi r19,hi8(.LC0)
 1721 08d2 3F93      		push r19
 1722 08d4 2F93      		push r18
 1723 08d6 1F92      		push __zero_reg__
 1724 08d8 2BE8      		ldi r18,lo8(-117)
 1725 08da 2F93      		push r18
 1726 08dc 9F93      		push r25
 1727 08de 8F93      		push r24
 1728 08e0 0E94 0000 		call snprintf
 888:one_wire_temperature.c ****          }
 1730               	.LM153:
 1731 08e4 8DB7      		in r24,__SP_L__
 1732 08e6 9EB7      		in r25,__SP_H__
 1733 08e8 4996      		adiw r24,25
 1734 08ea 0FB6      		in __tmp_reg__,__SREG__
 1735 08ec F894      		cli
 1736 08ee 9EBF      		out __SP_H__,r25
 1737 08f0 0FBE      		out __SREG__,__tmp_reg__
 1738 08f2 8DBF      		out __SP_L__,r24
 1739               	.L87:
 888:one_wire_temperature.c ****          }
 1741               	.LM154:
 1742 08f4 91E0      		ldi r25,1
 1743 08f6 891A      		sub r8,r25
 1744 08f8 9108      		sbc r9,__zero_reg__
 1745 08fa A108      		sbc r10,__zero_reg__
 1746 08fc B108      		sbc r11,__zero_reg__
 1747 08fe 8114      		cp r8,__zero_reg__
 1748 0900 9104      		cpc r9,__zero_reg__
 1749 0902 A104      		cpc r10,__zero_reg__
 1750 0904 B104      		cpc r11,__zero_reg__
 1751 0906 01F4      		brne .+2
 1752 0908 00C0      		rjmp .L89
 1753               	.LBB66:
 1754               	.LBB67:
 1756               	.Ltext3:
 1758               	.LM155:
 1759 090a 87EA      		ldi r24,lo8(24999)
 1760 090c 91E6      		ldi r25,hi8(24999)
 1761 090e 0197      		1: sbiw r24,1
 1762 0910 01F4      		brne 1b
 1763 0912 00C0      		rjmp .
 1764 0914 0000      		nop
 1765 0916 00C0      		rjmp .L87
 1766               	.L83:
 1767               	.LBE67:
 1768               	.LBE66:
 1770               	.Ltext4:
 893:one_wire_temperature.c ****       }
 894:one_wire_temperature.c ****       else
 895:one_wire_temperature.c ****       {
 896:one_wire_temperature.c ****          owiTemperatureTimeoutMask |= currentPins;
 1772               	.LM156:
 1773 0918 A62B      		or r26,r22
 1774 091a B72B      		or r27,r23
 1775 091c B093 0000 		sts owiTemperatureTimeoutMask+1,r27
 1776 0920 A093 0000 		sts owiTemperatureTimeoutMask,r26
 897:one_wire_temperature.c ****          *currentTimeoutMask |= currentPins;
 1778               	.LM157:
 1779 0924 8081      		ld r24,Z
 1780 0926 9181      		ldd r25,Z+1
 1781 0928 862B      		or r24,r22
 1782 092a 972B      		or r25,r23
 1783 092c 9183      		std Z+1,r25
 1784 092e 8083      		st Z,r24
 898:one_wire_temperature.c ****          CommunicationError_p(ERRG, dynamicMessage_ErrorIndex, FALSE, PSTR("OWI Temperature Convers
 1786               	.LM158:
 1787 0930 80E0      		ldi r24,lo8(__c.3266)
 1788 0932 90E0      		ldi r25,hi8(__c.3266)
 1789 0934 9F93      		push r25
 1790 0936 8F93      		push r24
 1791 0938 1F92      		push __zero_reg__
 1792 093a 8FEF      		ldi r24,lo8(-1)
 1793 093c 8F93      		push r24
 1794 093e 8CE9      		ldi r24,lo8(-100)
 1795 0940 8F93      		push r24
 1796 0942 1F92      		push __zero_reg__
 1797 0944 E091 0000 		lds r30,CommunicationError_p
 1798 0948 F091 0000 		lds r31,CommunicationError_p+1
 1799 094c 0995      		icall
 899:one_wire_temperature.c **** 
 900:one_wire_temperature.c ****          return 1;
 1801               	.LM159:
 1802 094e 0F90      		pop __tmp_reg__
 1803 0950 0F90      		pop __tmp_reg__
 1804 0952 0F90      		pop __tmp_reg__
 1805 0954 0F90      		pop __tmp_reg__
 1806 0956 0F90      		pop __tmp_reg__
 1807 0958 0F90      		pop __tmp_reg__
 1808 095a 81E0      		ldi r24,lo8(1)
 1809               	.L86:
 1810               	/* epilogue start */
 901:one_wire_temperature.c ****       }
 902:one_wire_temperature.c **** }
 1812               	.LM160:
 1813 095c 1F91      		pop r17
 1814 095e 0F91      		pop r16
 1815 0960 FF90      		pop r15
 1816 0962 EF90      		pop r14
 1817 0964 DF90      		pop r13
 1818 0966 CF90      		pop r12
 1819 0968 BF90      		pop r11
 1820 096a AF90      		pop r10
 1821 096c 9F90      		pop r9
 1822 096e 8F90      		pop r8
 1823 0970 0895      		ret
 1825               	.Lscope10:
 1830               	.global	owiTemperatureConversions
 1832               	owiTemperatureConversions:
 679:one_wire_temperature.c ****     printDebug_p(debugLevelEventDebugVerbose, debugSystemOWITemperatures, __LINE__, filename, PSTR(
 1834               	.LM161:
 1835               	.LFBB11:
 1836 0972 2F92      		push r2
 1837 0974 3F92      		push r3
 1838 0976 4F92      		push r4
 1839 0978 5F92      		push r5
 1840 097a 6F92      		push r6
 1841 097c 7F92      		push r7
 1842 097e 8F92      		push r8
 1843 0980 9F92      		push r9
 1844 0982 AF92      		push r10
 1845 0984 BF92      		push r11
 1846 0986 CF92      		push r12
 1847 0988 DF92      		push r13
 1848 098a EF92      		push r14
 1849 098c FF92      		push r15
 1850 098e 0F93      		push r16
 1851 0990 1F93      		push r17
 1852 0992 CF93      		push r28
 1853 0994 DF93      		push r29
 1854 0996 CDB7      		in r28,__SP_L__
 1855 0998 DEB7      		in r29,__SP_H__
 1856 099a 2797      		sbiw r28,7
 1857 099c 0FB6      		in __tmp_reg__,__SREG__
 1858 099e F894      		cli
 1859 09a0 DEBF      		out __SP_H__,r29
 1860 09a2 0FBE      		out __SREG__,__tmp_reg__
 1861 09a4 CDBF      		out __SP_L__,r28
 1862               	/* prologue: function */
 1863               	/* frame size = 7 */
 1864               	/* stack size = 25 */
 1865               	.L__stack_usage = 25
 1866 09a6 1C01      		movw r2,r24
 1867 09a8 6B83      		std Y+3,r22
 1868 09aa 4F83      		std Y+7,r20
 680:one_wire_temperature.c **** 
 1870               	.LM162:
 1871 09ac 80E0      		ldi r24,lo8(__c.3209)
 1872 09ae 90E0      		ldi r25,hi8(__c.3209)
 1873 09b0 9F93      		push r25
 1874 09b2 8F93      		push r24
 1875 09b4 80E0      		ldi r24,lo8(filename)
 1876 09b6 90E0      		ldi r25,hi8(filename)
 1877 09b8 9F93      		push r25
 1878 09ba 8F93      		push r24
 1879 09bc 82E0      		ldi r24,lo8(2)
 1880 09be 8F93      		push r24
 1881 09c0 88EA      		ldi r24,lo8(-88)
 1882 09c2 8F93      		push r24
 1883 09c4 1F92      		push __zero_reg__
 1884 09c6 1F92      		push __zero_reg__
 1885 09c8 1F92      		push __zero_reg__
 1886 09ca 89E0      		ldi r24,lo8(9)
 1887 09cc 8F93      		push r24
 1888 09ce 83E0      		ldi r24,lo8(3)
 1889 09d0 8F93      		push r24
 1890 09d2 E091 0000 		lds r30,printDebug_p
 1891 09d6 F091 0000 		lds r31,printDebug_p+1
 1892 09da 0995      		icall
 682:one_wire_temperature.c ****    uint16_t maxConversionTime = owiTemperatureMaxConversionTime;
 1894               	.LM163:
 1895 09dc 1A82      		std Y+2,__zero_reg__
 1896 09de 1982      		std Y+1,__zero_reg__
 683:one_wire_temperature.c ****    static unsigned char timeout_flag;
 1898               	.LM164:
 1899 09e0 1091 0000 		lds r17,owiTemperatureMaxConversionTime
 1900 09e4 0091 0000 		lds r16,owiTemperatureMaxConversionTime+1
 693:one_wire_temperature.c **** 
 1902               	.LM165:
 1903 09e8 80E0      		ldi r24,0
 1904 09ea 0E94 0000 		call owiFindParasitePoweredDevices
 700:one_wire_temperature.c ****    {
 1906               	.LM166:
 1907 09ee 0FB6      		in __tmp_reg__,__SREG__
 1908 09f0 F894      		cli
 1909 09f2 DEBF      		out __SP_H__,r29
 1910 09f4 0FBE      		out __SREG__,__tmp_reg__
 1911 09f6 CDBF      		out __SP_L__,r28
 1912 09f8 8091 0000 		lds r24,owiTemperatureParasiticModeMask
 1913 09fc 8111      		cpse r24,__zero_reg__
 1914 09fe 00C0      		rjmp .L94
 700:one_wire_temperature.c ****    {
 1916               	.LM167:
 1917 0a00 8091 0000 		lds r24,owiTemperatureForceParasiticMode
 1918 0a04 8823      		tst r24
 1919 0a06 01F0      		breq .L95
 1920               	.L94:
 703:one_wire_temperature.c ****       {
 1922               	.LM168:
 1923 0a08 8091 0000 		lds r24,ptr_uartStruct
 1924 0a0c 9091 0000 		lds r25,ptr_uartStruct+1
 1925 0a10 0E94 0000 		call owiTemperatureGetNumberOfDevicesAndSetTemperatureMask
 1926 0a14 892B      		or r24,r25
 1927 0a16 01F4      		brne .L95
 705:one_wire_temperature.c ****          return 0;
 1929               	.LM169:
 1930 0a18 1F92      		push __zero_reg__
 1931 0a1a 1F92      		push __zero_reg__
 1932 0a1c 0F93      		push r16
 1933 0a1e 1F93      		push r17
 1934 0a20 80E0      		ldi r24,lo8(__c.3220)
 1935 0a22 90E0      		ldi r25,hi8(__c.3220)
 1936 0a24 9F93      		push r25
 1937 0a26 8F93      		push r24
 1938 0a28 80E0      		ldi r24,lo8(filename)
 1939 0a2a 90E0      		ldi r25,hi8(filename)
 1940 0a2c 9F93      		push r25
 1941 0a2e 8F93      		push r24
 1942 0a30 82E0      		ldi r24,lo8(2)
 1943 0a32 8F93      		push r24
 1944 0a34 91EC      		ldi r25,lo8(-63)
 1945 0a36 9F93      		push r25
 1946 0a38 1F92      		push __zero_reg__
 1947 0a3a 1F92      		push __zero_reg__
 1948 0a3c 1F92      		push __zero_reg__
 1949 0a3e 99E0      		ldi r25,lo8(9)
 1950 0a40 9F93      		push r25
 1951 0a42 8F93      		push r24
 1952 0a44 E091 0000 		lds r30,printDebug_p
 1953 0a48 F091 0000 		lds r31,printDebug_p+1
 1954 0a4c 0995      		icall
 706:one_wire_temperature.c ****       }
 1956               	.LM170:
 1957 0a4e 0FB6      		in __tmp_reg__,__SREG__
 1958 0a50 F894      		cli
 1959 0a52 DEBF      		out __SP_H__,r29
 1960 0a54 0FBE      		out __SREG__,__tmp_reg__
 1961 0a56 CDBF      		out __SP_L__,r28
 1962 0a58 80E0      		ldi r24,0
 1963 0a5a 90E0      		ldi r25,0
 1964 0a5c 00C0      		rjmp .L96
 1965               	.L95:
 713:one_wire_temperature.c ****    {
 1967               	.LM171:
 1968 0a5e 8091 0000 		lds r24,ptr_owiStruct
 1969 0a62 9091 0000 		lds r25,ptr_owiStruct+1
 1970 0a66 DC01      		movw r26,r24
 1971 0a68 1896      		adiw r26,8
 1972 0a6a 2C91      		ld r18,X
 1973 0a6c 2223      		tst r18
 1974 0a6e 01F0      		breq .L117
 715:one_wire_temperature.c ****    }
 1976               	.LM172:
 1977 0a70 0E94 0000 		call owiFindIdAndGetIndex
 1978 0a74 9E83      		std Y+6,r25
 1979 0a76 8D83      		std Y+5,r24
 1980 0a78 00C0      		rjmp .L97
 1981               	.L117:
 690:one_wire_temperature.c **** 
 1983               	.LM173:
 1984 0a7a EFEF      		ldi r30,lo8(-1)
 1985 0a7c FFEF      		ldi r31,lo8(-1)
 1986 0a7e FE83      		std Y+6,r31
 1987 0a80 ED83      		std Y+5,r30
 1988               	.L97:
 1989               	.LBB68:
 721:one_wire_temperature.c ****    {
 1991               	.LM174:
 1992 0a82 412C      		mov r4,__zero_reg__
 1993               	.LBE68:
 689:one_wire_temperature.c ****    uint16_t selectedDeviceIndex = -1;
 1995               	.LM175:
 1996 0a84 10E0      		ldi r17,0
 688:one_wire_temperature.c ****    uint8_t status = 0;
 1998               	.LM176:
 1999 0a86 F6E0      		ldi r31,lo8(6)
 2000 0a88 FC83      		std Y+4,r31
 2001               	.LBB72:
 763:one_wire_temperature.c ****           printDebug_p(debugLevelEventDebug, debugSystemOWITemperatures, __LINE__, filename, PSTR("
 2003               	.LM177:
 2004 0a8a 80E0      		ldi r24,lo8(filename)
 2005 0a8c 882E      		mov r8,r24
 2006 0a8e 80E0      		ldi r24,hi8(filename)
 2007 0a90 982E      		mov r9,r24
 2008               	.L98:
 721:one_wire_temperature.c ****    {
 2010               	.LM178:
 2011 0a92 842D      		mov r24,r4
 2012 0a94 9927      		clr r25
 2013 0a96 87FD      		sbrc r24,7
 2014 0a98 9095      		com r25
 2015 0a9a AC81      		ldd r26,Y+4
 2016 0a9c 2A2F      		mov r18,r26
 2017 0a9e 30E0      		ldi r19,0
 2018 0aa0 8217      		cp r24,r18
 2019 0aa2 9307      		cpc r25,r19
 2020 0aa4 04F0      		brlt .+2
 2021 0aa6 00C0      		rjmp .L127
 723:one_wire_temperature.c ****       {
 2023               	.LM179:
 2024 0aa8 4091 0000 		lds r20,owiUseCommonTemperatureConversion_flag
 2025 0aac 2091 0000 		lds r18,owiTemperatureMask
 2026 0ab0 3091 0000 		lds r19,owiTemperatureMask+1
 2027 0ab4 6091 0000 		lds r22,owiBusMask
 2028 0ab8 7091 0000 		lds r23,owiBusMask+1
 2029 0abc 4130      		cpi r20,lo8(1)
 2030 0abe 01F4      		brne .L99
 725:one_wire_temperature.c ****          busPatternIndexMax = 1; // finish loop after one round
 2032               	.LM180:
 2033 0ac0 A901      		movw r20,r18
 2034 0ac2 C101      		movw r24,r2
 2035 0ac4 0E94 0000 		call generateCommonPinsPattern
 2036 0ac8 582E      		mov r5,r24
 726:one_wire_temperature.c ****       }
 2038               	.LM181:
 2039 0aca 21E0      		ldi r18,lo8(1)
 2040 0acc 2C83      		std Y+4,r18
 2041 0ace 00C0      		rjmp .L100
 2042               	.L99:
 730:one_wire_temperature.c **** 
 2044               	.LM182:
 2045 0ad0 F101      		movw r30,r2
 2046 0ad2 E80F      		add r30,r24
 2047 0ad4 F91F      		adc r31,r25
 2048 0ad6 5080      		ld r5,Z
 732:one_wire_temperature.c ****          {
 2050               	.LM183:
 2051 0ad8 01E0      		ldi r16,lo8(1)
 2052 0ada AB01      		movw r20,r22
 2053 0adc 642D      		mov r22,r4
 2054 0ade 852D      		mov r24,r5
 2055 0ae0 0E94 0000 		call checkBusAndDeviceActivityMasks
 2056 0ae4 8111      		cpse r24,__zero_reg__
 2057 0ae6 00C0      		rjmp .L101
 2058               	.L100:
 741:one_wire_temperature.c **** 
 2060               	.LM184:
 2061 0ae8 6090 0000 		lds r6,owiTemperatureMaxConversionTime
 2062 0aec 7090 0000 		lds r7,owiTemperatureMaxConversionTime+1
 744:one_wire_temperature.c ****       {
 2064               	.LM185:
 2065 0af0 252D      		mov r18,r5
 2066 0af2 30E0      		ldi r19,0
 2067 0af4 8091 0000 		lds r24,owiTemperatureMask_DS18S20
 2068 0af8 9091 0000 		lds r25,owiTemperatureMask_DS18S20+1
 2069 0afc 2823      		and r18,r24
 2070 0afe 3923      		and r19,r25
 2071 0b00 E091 0000 		lds r30,printDebug_p
 2072 0b04 F091 0000 		lds r31,printDebug_p+1
 2073 0b08 232B      		or r18,r19
 2074 0b0a 01F4      		brne .L102
 746:one_wire_temperature.c **** 
 2076               	.LM186:
 2077 0b0c 1F92      		push __zero_reg__
 2078 0b0e 5F92      		push r5
 2079 0b10 7F92      		push r7
 2080 0b12 6F92      		push r6
 2081 0b14 A0E0      		ldi r26,lo8(__c.3224)
 2082 0b16 B0E0      		ldi r27,hi8(__c.3224)
 2083 0b18 BF93      		push r27
 2084 0b1a AF93      		push r26
 2085 0b1c 9F92      		push r9
 2086 0b1e 8F92      		push r8
 2087 0b20 82E0      		ldi r24,lo8(2)
 2088 0b22 8F93      		push r24
 2089 0b24 9AEE      		ldi r25,lo8(-22)
 2090 0b26 9F93      		push r25
 2091 0b28 1F92      		push __zero_reg__
 2092 0b2a 1F92      		push __zero_reg__
 2093 0b2c 1F92      		push __zero_reg__
 2094 0b2e 99E0      		ldi r25,lo8(9)
 2095 0b30 9F93      		push r25
 2096 0b32 8F93      		push r24
 2097 0b34 0995      		icall
 748:one_wire_temperature.c ****       }
 2099               	.LM187:
 2100 0b36 8091 0000 		lds r24,owiTemperatureResolution_DS18B20
 2101 0b3a ACE0      		ldi r26,lo8(12)
 2102 0b3c B0E0      		ldi r27,0
 2103 0b3e A81B      		sub r26,r24
 2104 0b40 B109      		sbc r27,__zero_reg__
 2105 0b42 0A2E      		mov r0,r26
 2106 0b44 00C0      		rjmp 2f
 2107               		1:
 2108 0b46 7694      		lsr r7
 2109 0b48 6794      		ror r6
 2110               		2:
 2111 0b4a 0A94      		dec r0
 2112 0b4c 02F4      		brpl 1b
 2113 0b4e 00C0      		rjmp .L126
 2114               	.L102:
 752:one_wire_temperature.c ****       }
 2116               	.LM188:
 2117 0b50 1F92      		push __zero_reg__
 2118 0b52 5F92      		push r5
 2119 0b54 7F92      		push r7
 2120 0b56 6F92      		push r6
 2121 0b58 A0E0      		ldi r26,lo8(__c.3226)
 2122 0b5a B0E0      		ldi r27,hi8(__c.3226)
 2123 0b5c BF93      		push r27
 2124 0b5e AF93      		push r26
 2125 0b60 9F92      		push r9
 2126 0b62 8F92      		push r8
 2127 0b64 82E0      		ldi r24,lo8(2)
 2128 0b66 8F93      		push r24
 2129 0b68 90EF      		ldi r25,lo8(-16)
 2130 0b6a 9F93      		push r25
 2131 0b6c 1F92      		push __zero_reg__
 2132 0b6e 1F92      		push __zero_reg__
 2133 0b70 1F92      		push __zero_reg__
 2134 0b72 99E0      		ldi r25,lo8(9)
 2135 0b74 9F93      		push r25
 2136 0b76 8F93      		push r24
 2137 0b78 0995      		icall
 2138               	.L126:
 2139 0b7a 0FB6      		in __tmp_reg__,__SREG__
 2140 0b7c F894      		cli
 2141 0b7e DEBF      		out __SP_H__,r29
 2142 0b80 0FBE      		out __SREG__,__tmp_reg__
 2143 0b82 CDBF      		out __SP_L__,r28
 755:one_wire_temperature.c ****       {
 2145               	.LM189:
 2146 0b84 852D      		mov r24,r5
 2147 0b86 0E94 0000 		call OWI_DetectPresence
 2148 0b8a E091 0000 		lds r30,printDebug_p
 2149 0b8e F091 0000 		lds r31,printDebug_p+1
 2150 0b92 8111      		cpse r24,__zero_reg__
 2151 0b94 00C0      		rjmp .L104
 757:one_wire_temperature.c **** 
 2153               	.LM190:
 2154 0b96 1F92      		push __zero_reg__
 2155 0b98 5F92      		push r5
 2156 0b9a A0E0      		ldi r26,lo8(__c.3228)
 2157 0b9c B0E0      		ldi r27,hi8(__c.3228)
 2158 0b9e BF93      		push r27
 2159 0ba0 AF93      		push r26
 2160 0ba2 9F92      		push r9
 2161 0ba4 8F92      		push r8
 2162 0ba6 82E0      		ldi r24,lo8(2)
 2163 0ba8 8F93      		push r24
 2164 0baa 95EF      		ldi r25,lo8(-11)
 2165 0bac 9F93      		push r25
 2166 0bae 1F92      		push __zero_reg__
 2167 0bb0 1F92      		push __zero_reg__
 2168 0bb2 1F92      		push __zero_reg__
 2169 0bb4 99E0      		ldi r25,lo8(9)
 2170 0bb6 9F93      		push r25
 2171 0bb8 8F93      		push r24
 2172 0bba 0995      		icall
 759:one_wire_temperature.c ****       }
 2174               	.LM191:
 2175 0bbc 0FB6      		in __tmp_reg__,__SREG__
 2176 0bbe F894      		cli
 2177 0bc0 DEBF      		out __SP_H__,r29
 2178 0bc2 0FBE      		out __SREG__,__tmp_reg__
 2179 0bc4 CDBF      		out __SP_L__,r28
 2180 0bc6 00C0      		rjmp .L101
 2181               	.L104:
 763:one_wire_temperature.c ****           printDebug_p(debugLevelEventDebug, debugSystemOWITemperatures, __LINE__, filename, PSTR("
 2183               	.LM192:
 2184 0bc8 1F92      		push __zero_reg__
 2185 0bca 5F92      		push r5
 2186 0bcc A0E0      		ldi r26,lo8(__c.3230)
 2187 0bce B0E0      		ldi r27,hi8(__c.3230)
 2188 0bd0 BF93      		push r27
 2189 0bd2 AF93      		push r26
 2190 0bd4 9F92      		push r9
 2191 0bd6 8F92      		push r8
 2192 0bd8 12E0      		ldi r17,lo8(2)
 2193 0bda 1F93      		push r17
 2194 0bdc 8BEF      		ldi r24,lo8(-5)
 2195 0bde 8F93      		push r24
 2196 0be0 1F92      		push __zero_reg__
 2197 0be2 1F92      		push __zero_reg__
 2198 0be4 1F92      		push __zero_reg__
 2199 0be6 09E0      		ldi r16,lo8(9)
 2200 0be8 0F93      		push r16
 2201 0bea 1F93      		push r17
 2202 0bec 0995      		icall
 764:one_wire_temperature.c ****       }
 2204               	.LM193:
 2205 0bee A0E0      		ldi r26,lo8(__c.3232)
 2206 0bf0 B0E0      		ldi r27,hi8(__c.3232)
 2207 0bf2 BF93      		push r27
 2208 0bf4 AF93      		push r26
 2209 0bf6 9F92      		push r9
 2210 0bf8 8F92      		push r8
 2211 0bfa 1F93      		push r17
 2212 0bfc 8CEF      		ldi r24,lo8(-4)
 2213 0bfe 8F93      		push r24
 2214 0c00 1F92      		push __zero_reg__
 2215 0c02 1F92      		push __zero_reg__
 2216 0c04 1F92      		push __zero_reg__
 2217 0c06 0F93      		push r16
 2218 0c08 1F93      		push r17
 2219 0c0a E091 0000 		lds r30,printDebug_p
 2220 0c0e F091 0000 		lds r31,printDebug_p+1
 2221 0c12 0995      		icall
 774:one_wire_temperature.c ****       {
 2223               	.LM194:
 2224 0c14 0FB6      		in __tmp_reg__,__SREG__
 2225 0c16 F894      		cli
 2226 0c18 DEBF      		out __SP_H__,r29
 2227 0c1a 0FBE      		out __SREG__,__tmp_reg__
 2228 0c1c CDBF      		out __SP_L__,r28
 2229 0c1e 8091 0000 		lds r24,owiTemperatureForceParasiticMode
 2230 0c22 8111      		cpse r24,__zero_reg__
 2231 0c24 00C0      		rjmp .L105
 774:one_wire_temperature.c ****       {
 2233               	.LM195:
 2234 0c26 8091 0000 		lds r24,owiTemperatureParasiticModeMask
 2235 0c2a 8F70      		andi r24,lo8(15)
 2236 0c2c 8521      		and r24,r5
 2237 0c2e 01F4      		brne .+2
 2238 0c30 00C0      		rjmp .L106
 2239               	.L105:
 776:one_wire_temperature.c **** 
 2241               	.LM196:
 2242 0c32 A0E0      		ldi r26,lo8(__c.3234)
 2243 0c34 B0E0      		ldi r27,hi8(__c.3234)
 2244 0c36 BF93      		push r27
 2245 0c38 AF93      		push r26
 2246 0c3a 9F92      		push r9
 2247 0c3c 8F92      		push r8
 2248 0c3e 83E0      		ldi r24,lo8(3)
 2249 0c40 8F93      		push r24
 2250 0c42 98E0      		ldi r25,lo8(8)
 2251 0c44 9F93      		push r25
 2252 0c46 1F92      		push __zero_reg__
 2253 0c48 1F92      		push __zero_reg__
 2254 0c4a 1F92      		push __zero_reg__
 2255 0c4c 99E0      		ldi r25,lo8(9)
 2256 0c4e 9F93      		push r25
 2257 0c50 8F93      		push r24
 2258 0c52 E091 0000 		lds r30,printDebug_p
 2259 0c56 F091 0000 		lds r31,printDebug_p+1
 2260 0c5a 0995      		icall
 778:one_wire_temperature.c **** 	  {
 2262               	.LM197:
 2263 0c5c 0FB6      		in __tmp_reg__,__SREG__
 2264 0c5e F894      		cli
 2265 0c60 DEBF      		out __SP_H__,r29
 2266 0c62 0FBE      		out __SREG__,__tmp_reg__
 2267 0c64 CDBF      		out __SP_L__,r28
 2268 0c66 8091 0000 		lds r24,owiTemperatureSensorBySensorParasiticConversionFlag
 2269 0c6a 8823      		tst r24
 2270 0c6c 01F0      		breq .L107
 780:one_wire_temperature.c **** 	    owiTemperatureConversionParasitic(currentPins);
 2272               	.LM198:
 2273 0c6e 652D      		mov r22,r5
 2274 0c70 8CEC      		ldi r24,lo8(-52)
 2275 0c72 0E94 0000 		call OWI_SendByte
 781:one_wire_temperature.c **** 	  }
 2277               	.LM199:
 2278 0c76 852D      		mov r24,r5
 2279 0c78 0E94 0000 		call owiTemperatureConversionParasitic
 2280 0c7c 00C0      		rjmp .L108
 2281               	.L107:
 785:one_wire_temperature.c **** 	    waitForConversion = FALSE;
 2283               	.LM200:
 2284 0c7e 6D81      		ldd r22,Y+5
 2285 0c80 7E81      		ldd r23,Y+6
 2286 0c82 852D      		mov r24,r5
 2287 0c84 0E94 0000 		call owiTemperatureSensorBySensorParasiticConversion
 786:one_wire_temperature.c **** 	  }
 2289               	.LM201:
 2290 0c88 1B82      		std Y+3,__zero_reg__
 2291               	.L108:
 788:one_wire_temperature.c ****        }
 2293               	.LM202:
 2294 0c8a A0E0      		ldi r26,lo8(__c.3236)
 2295 0c8c B0E0      		ldi r27,hi8(__c.3236)
 2296 0c8e BF93      		push r27
 2297 0c90 AF93      		push r26
 2298 0c92 9F92      		push r9
 2299 0c94 8F92      		push r8
 2300 0c96 83E0      		ldi r24,lo8(3)
 2301 0c98 8F93      		push r24
 2302 0c9a 94E1      		ldi r25,lo8(20)
 2303 0c9c 9F93      		push r25
 2304 0c9e 1F92      		push __zero_reg__
 2305 0ca0 1F92      		push __zero_reg__
 2306 0ca2 1F92      		push __zero_reg__
 2307 0ca4 99E0      		ldi r25,lo8(9)
 2308 0ca6 9F93      		push r25
 2309 0ca8 8F93      		push r24
 2310 0caa E091 0000 		lds r30,printDebug_p
 2311 0cae F091 0000 		lds r31,printDebug_p+1
 2312 0cb2 0995      		icall
 832:one_wire_temperature.c ****        {
 2314               	.LM203:
 2315 0cb4 0FB6      		in __tmp_reg__,__SREG__
 2316 0cb6 F894      		cli
 2317 0cb8 DEBF      		out __SP_H__,r29
 2318 0cba 0FBE      		out __SREG__,__tmp_reg__
 2319 0cbc CDBF      		out __SP_L__,r28
 2320 0cbe 3B81      		ldd r19,Y+3
 2321 0cc0 3130      		cpi r19,lo8(1)
 2322 0cc2 01F0      		breq .+2
 2323 0cc4 00C0      		rjmp .L110
 2324 0cc6 00C0      		rjmp .L109
 2325               	.L106:
 795:one_wire_temperature.c ****           {
 2327               	.LM204:
 2328 0cc8 4B81      		ldd r20,Y+3
 2329 0cca 4130      		cpi r20,lo8(1)
 2330 0ccc 01F0      		breq .+2
 2331 0cce 00C0      		rjmp .L110
 2332               	.LBB69:
 797:one_wire_temperature.c ****              count = maxcount;
 2334               	.LM205:
 2335 0cd0 C301      		movw r24,r6
 2336 0cd2 6AE0      		ldi r22,lo8(10)
 2337 0cd4 70E0      		ldi r23,0
 2338 0cd6 0E94 0000 		call __udivmodhi4
 2339 0cda CB01      		movw r24,r22
 2340 0cdc A0E0      		ldi r26,0
 2341 0cde B0E0      		ldi r27,0
 2342 0ce0 8093 0000 		sts maxcount.3215,r24
 2343 0ce4 9093 0000 		sts maxcount.3215+1,r25
 2344 0ce8 A093 0000 		sts maxcount.3215+2,r26
 2345 0cec B093 0000 		sts maxcount.3215+3,r27
 798:one_wire_temperature.c ****              timeout_flag = FALSE;
 2347               	.LM206:
 2348 0cf0 8093 0000 		sts count.3214,r24
 2349 0cf4 9093 0000 		sts count.3214+1,r25
 2350 0cf8 A093 0000 		sts count.3214+2,r26
 2351 0cfc B093 0000 		sts count.3214+3,r27
 799:one_wire_temperature.c **** 
 2353               	.LM207:
 2354 0d00 1092 0000 		sts timeout_flag.3213,__zero_reg__
 801:one_wire_temperature.c **** 
 2356               	.LM208:
 2357 0d04 A0E0      		ldi r26,lo8(__c.3238)
 2358 0d06 B0E0      		ldi r27,hi8(__c.3238)
 2359 0d08 BF93      		push r27
 2360 0d0a AF93      		push r26
 2361 0d0c 9F92      		push r9
 2362 0d0e 8F92      		push r8
 2363 0d10 83E0      		ldi r24,lo8(3)
 2364 0d12 8F93      		push r24
 2365 0d14 81E2      		ldi r24,lo8(33)
 2366 0d16 8F93      		push r24
 2367 0d18 1F92      		push __zero_reg__
 2368 0d1a 1F92      		push __zero_reg__
 2369 0d1c 1F92      		push __zero_reg__
 2370 0d1e 0F93      		push r16
 2371 0d20 1F93      		push r17
 2372 0d22 E091 0000 		lds r30,printDebug_p
 2373 0d26 F091 0000 		lds r31,printDebug_p+1
 2374 0d2a 0995      		icall
 806:one_wire_temperature.c ****              OWI_SendByte(DS1820_START_CONVERSION, currentPins);
 2376               	.LM209:
 2377 0d2c 652D      		mov r22,r5
 2378 0d2e 8CEC      		ldi r24,lo8(-52)
 2379 0d30 0E94 0000 		call OWI_SendByte
 807:one_wire_temperature.c **** 
 2381               	.LM210:
 2382 0d34 652D      		mov r22,r5
 2383 0d36 84E4      		ldi r24,lo8(68)
 2384 0d38 0E94 0000 		call OWI_SendByte
 2385 0d3c 0FB6      		in __tmp_reg__,__SREG__
 2386 0d3e F894      		cli
 2387 0d40 DEBF      		out __SP_H__,r29
 2388 0d42 0FBE      		out __SREG__,__tmp_reg__
 2389 0d44 CDBF      		out __SP_L__,r28
 2390               	.L114:
 812:one_wire_temperature.c ****                 {
 2392               	.LM211:
 2393 0d46 8091 0000 		lds r24,owiTemperatureIgnoreConversionResponse
 2394 0d4a 8111      		cpse r24,__zero_reg__
 2395 0d4c 00C0      		rjmp .L118
 814:one_wire_temperature.c ****                 }
 2397               	.LM212:
 2398 0d4e 852D      		mov r24,r5
 2399 0d50 0E94 0000 		call OWI_ReadBit
 2400 0d54 00C0      		rjmp .L111
 2401               	.L118:
 2402 0d56 80E0      		ldi r24,0
 2403               	.L111:
 2404               	.LBB70:
 2405               	.LBB71:
 2407               	.Ltext5:
 2409               	.LM213:
 2410 0d58 A7EA      		ldi r26,lo8(24999)
 2411 0d5a B1E6      		ldi r27,hi8(24999)
 2412 0d5c 1197      		1: sbiw r26,1
 2413 0d5e 01F4      		brne 1b
 2414 0d60 00C0      		rjmp .
 2415 0d62 0000      		nop
 2416               	.LBE71:
 2417               	.LBE70:
 2419               	.Ltext6:
 819:one_wire_temperature.c ****                 {
 2421               	.LM214:
 2422 0d64 4091 0000 		lds r20,count.3214
 2423 0d68 5091 0000 		lds r21,count.3214+1
 2424 0d6c 6091 0000 		lds r22,count.3214+2
 2425 0d70 7091 0000 		lds r23,count.3214+3
 2426 0d74 4150      		subi r20,1
 2427 0d76 5109      		sbc r21,__zero_reg__
 2428 0d78 6109      		sbc r22,__zero_reg__
 2429 0d7a 7109      		sbc r23,__zero_reg__
 2430 0d7c 4093 0000 		sts count.3214,r20
 2431 0d80 5093 0000 		sts count.3214+1,r21
 2432 0d84 6093 0000 		sts count.3214+2,r22
 2433 0d88 7093 0000 		sts count.3214+3,r23
 2434 0d8c 452B      		or r20,r21
 2435 0d8e 462B      		or r20,r22
 2436 0d90 472B      		or r20,r23
 2437 0d92 01F4      		brne .L112
 822:one_wire_temperature.c ****                    {
 2439               	.LM215:
 2440 0d94 8091 0000 		lds r24,owiTemperatureIgnoreConversionResponse
 2441 0d98 8111      		cpse r24,__zero_reg__
 2442 0d9a 00C0      		rjmp .L109
 824:one_wire_temperature.c ****                    }
 2444               	.LM216:
 2445 0d9c 81E0      		ldi r24,lo8(1)
 2446 0d9e 8093 0000 		sts timeout_flag.3213,r24
 2447 0da2 00C0      		rjmp .L109
 2448               	.L112:
 809:one_wire_temperature.c ****              {
 2450               	.LM217:
 2451 0da4 8823      		tst r24
 2452 0da6 01F0      		breq .L114
 2453               	.L109:
 2454               	.LBE69:
 834:one_wire_temperature.c ****        }
 2456               	.LM218:
 2457 0da8 E090 0000 		lds r14,count.3214
 2458 0dac F090 0000 		lds r15,count.3214+1
 2459 0db0 0091 0000 		lds r16,count.3214+2
 2460 0db4 1091 0000 		lds r17,count.3214+3
 2461 0db8 2091 0000 		lds r18,maxcount.3215
 2462 0dbc 3091 0000 		lds r19,maxcount.3215+1
 2463 0dc0 4091 0000 		lds r20,maxcount.3215+2
 2464 0dc4 5091 0000 		lds r21,maxcount.3215+3
 2465 0dc8 5301      		movw r10,r6
 2466 0dca FE01      		movw r30,r28
 2467 0dcc 3196      		adiw r30,1
 2468 0dce 6F01      		movw r12,r30
 2469 0dd0 652D      		mov r22,r5
 2470 0dd2 8091 0000 		lds r24,timeout_flag.3213
 2471 0dd6 0E94 0000 		call owiTemperatureConversionEvaluateTimeoutFlag
 2472 0dda 182F      		mov r17,r24
 2473 0ddc F1E0      		ldi r31,lo8(1)
 2474 0dde FB83      		std Y+3,r31
 2475 0de0 00C0      		rjmp .L101
 2476               	.L110:
 838:one_wire_temperature.c ****           if ( TRUE == spawnReleaseBlock )
 2478               	.LM219:
 2479 0de2 A12C      		mov r10,__zero_reg__
 2480 0de4 B12C      		mov r11,__zero_reg__
 2481 0de6 9E01      		movw r18,r28
 2482 0de8 2F5F      		subi r18,-1
 2483 0dea 3F4F      		sbci r19,-1
 2484 0dec 6901      		movw r12,r18
 2485 0dee E12C      		mov r14,__zero_reg__
 2486 0df0 F12C      		mov r15,__zero_reg__
 2487 0df2 8701      		movw r16,r14
 2488 0df4 20E0      		ldi r18,0
 2489 0df6 30E0      		ldi r19,0
 2490 0df8 A901      		movw r20,r18
 2491 0dfa 652D      		mov r22,r5
 2492 0dfc 80E0      		ldi r24,0
 2493 0dfe 0E94 0000 		call owiTemperatureConversionEvaluateTimeoutFlag
 2494 0e02 182F      		mov r17,r24
 839:one_wire_temperature.c ****           {
 2496               	.LM220:
 2497 0e04 3F81      		ldd r19,Y+7
 2498 0e06 3130      		cpi r19,lo8(1)
 2499 0e08 01F4      		brne .L101
 841:one_wire_temperature.c ****           }
 2501               	.LM221:
 2502 0e0a 48EE      		ldi r20,-24
 2503 0e0c 6416      		cp r6,r20
 2504 0e0e 43E0      		ldi r20,3
 2505 0e10 7406      		cpc r7,r20
 2506 0e12 00F0      		brlo .L119
 841:one_wire_temperature.c ****           }
 2508               	.LM222:
 2509 0e14 C301      		movw r24,r6
 2510 0e16 68EE      		ldi r22,lo8(-24)
 2511 0e18 73E0      		ldi r23,lo8(3)
 2512 0e1a 0E94 0000 		call __udivmodhi4
 2513 0e1e 00C0      		rjmp .L115
 2514               	.L119:
 841:one_wire_temperature.c ****           }
 2516               	.LM223:
 2517 0e20 61E0      		ldi r22,lo8(1)
 2518               	.L115:
 841:one_wire_temperature.c ****           }
 2520               	.LM224:
 2521 0e22 6093 0000 		sts owiTemperatureConversionGoingOnCountDown,r22
 2522               	.L101:
 2523 0e26 4394      		inc r4
 2524 0e28 00C0      		rjmp .L98
 2525               	.L127:
 2526               	.LBE72:
 846:one_wire_temperature.c **** 
 2528               	.LM225:
 2529 0e2a 8091 0000 		lds r24,owiTemperatureTimeoutMask+1
 2530 0e2e 8F93      		push r24
 2531 0e30 8091 0000 		lds r24,owiTemperatureTimeoutMask
 2532 0e34 8F93      		push r24
 2533 0e36 8A81      		ldd r24,Y+2
 2534 0e38 8F93      		push r24
 2535 0e3a 8981      		ldd r24,Y+1
 2536 0e3c 8F93      		push r24
 2537 0e3e 80E0      		ldi r24,lo8(__c.3247)
 2538 0e40 90E0      		ldi r25,hi8(__c.3247)
 2539 0e42 9F93      		push r25
 2540 0e44 8F93      		push r24
 2541 0e46 80E0      		ldi r24,lo8(filename)
 2542 0e48 90E0      		ldi r25,hi8(filename)
 2543 0e4a 9F93      		push r25
 2544 0e4c 8F93      		push r24
 2545 0e4e 83E0      		ldi r24,lo8(3)
 2546 0e50 8F93      		push r24
 2547 0e52 8EE4      		ldi r24,lo8(78)
 2548 0e54 8F93      		push r24
 2549 0e56 1F92      		push __zero_reg__
 2550 0e58 1F92      		push __zero_reg__
 2551 0e5a 1F92      		push __zero_reg__
 2552 0e5c 89E0      		ldi r24,lo8(9)
 2553 0e5e 8F93      		push r24
 2554 0e60 82E0      		ldi r24,lo8(2)
 2555 0e62 8F93      		push r24
 2556 0e64 E091 0000 		lds r30,printDebug_p
 2557 0e68 F091 0000 		lds r31,printDebug_p+1
 2558 0e6c 0995      		icall
 848:one_wire_temperature.c **** }
 2560               	.LM226:
 2561 0e6e 812F      		mov r24,r17
 2562 0e70 90E0      		ldi r25,0
 2563 0e72 0FB6      		in __tmp_reg__,__SREG__
 2564 0e74 F894      		cli
 2565 0e76 DEBF      		out __SP_H__,r29
 2566 0e78 0FBE      		out __SREG__,__tmp_reg__
 2567 0e7a CDBF      		out __SP_L__,r28
 2568               	.L96:
 2569               	/* epilogue start */
 849:one_wire_temperature.c **** 
 2571               	.LM227:
 2572 0e7c 2796      		adiw r28,7
 2573 0e7e 0FB6      		in __tmp_reg__,__SREG__
 2574 0e80 F894      		cli
 2575 0e82 DEBF      		out __SP_H__,r29
 2576 0e84 0FBE      		out __SREG__,__tmp_reg__
 2577 0e86 CDBF      		out __SP_L__,r28
 2578 0e88 DF91      		pop r29
 2579 0e8a CF91      		pop r28
 2580 0e8c 1F91      		pop r17
 2581 0e8e 0F91      		pop r16
 2582 0e90 FF90      		pop r15
 2583 0e92 EF90      		pop r14
 2584 0e94 DF90      		pop r13
 2585 0e96 CF90      		pop r12
 2586 0e98 BF90      		pop r11
 2587 0e9a AF90      		pop r10
 2588 0e9c 9F90      		pop r9
 2589 0e9e 8F90      		pop r8
 2590 0ea0 7F90      		pop r7
 2591 0ea2 6F90      		pop r6
 2592 0ea4 5F90      		pop r5
 2593 0ea6 4F90      		pop r4
 2594 0ea8 3F90      		pop r3
 2595 0eaa 2F90      		pop r2
 2596 0eac 0895      		ret
 2617               	.Lscope11:
 2621               	.global	owiTemperatureReadSensors
 2623               	owiTemperatureReadSensors:
 130:one_wire_temperature.c ****    /* check command syntax */
 2625               	.LM228:
 2626               	.LFBB12:
 2627 0eae 6F92      		push r6
 2628 0eb0 7F92      		push r7
 2629 0eb2 8F92      		push r8
 2630 0eb4 9F92      		push r9
 2631 0eb6 AF92      		push r10
 2632 0eb8 BF92      		push r11
 2633 0eba CF92      		push r12
 2634 0ebc DF92      		push r13
 2635 0ebe EF92      		push r14
 2636 0ec0 FF92      		push r15
 2637 0ec2 0F93      		push r16
 2638 0ec4 1F93      		push r17
 2639 0ec6 CF93      		push r28
 2640 0ec8 DF93      		push r29
 2641 0eca 00D0      		rcall .
 2642 0ecc 1F92      		push __zero_reg__
 2643 0ece CDB7      		in r28,__SP_L__
 2644 0ed0 DEB7      		in r29,__SP_H__
 2645               	/* prologue: function */
 2646               	/* frame size = 3 */
 2647               	/* stack size = 17 */
 2648               	.L__stack_usage = 17
 2649 0ed2 8C01      		movw r16,r24
 2650 0ed4 F62E      		mov r15,r22
 132:one_wire_temperature.c ****    {
 2652               	.LM229:
 2653 0ed6 0E94 0000 		call owiTemperatureReadSensorsCheckCommandSyntax
 2654 0eda 8111      		cpse r24,__zero_reg__
 2655 0edc 00C0      		rjmp .L128
 137:one_wire_temperature.c ****    {
 2657               	.LM230:
 2658 0ede C801      		movw r24,r16
 2659 0ee0 0E94 0000 		call owiTemperatureGetNumberOfDevicesAndSetTemperatureMask
 2660 0ee4 892B      		or r24,r25
 2661 0ee6 01F4      		brne .+2
 2662 0ee8 00C0      		rjmp .L130
 2663               	.LBB81:
 2664               	.LBB82:
 143:one_wire_temperature.c ****       {
 2666               	.LM231:
 2667 0eea F801      		movw r30,r16
 2668 0eec 838D      		ldd r24,Z+27
 2669 0eee 8823      		tst r24
 2670 0ef0 01F0      		breq .L132
 2671 0ef2 8230      		cpi r24,lo8(2)
 2672 0ef4 01F0      		breq .L133
 2673 0ef6 00C0      		rjmp .L131
 2674               	.L132:
 147:one_wire_temperature.c ****             break;
 2676               	.LM232:
 2677 0ef8 FF20      		tst r15
 2678 0efa 01F0      		breq .L131
 2679               	.L134:
 2680 0efc 40E0      		ldi r20,0
 2681 0efe 61E0      		ldi r22,lo8(1)
 2682 0f00 80E0      		ldi r24,lo8(BUSES)
 2683 0f02 90E0      		ldi r25,hi8(BUSES)
 2684 0f04 0E94 0000 		call owiTemperatureConversions
 2685 0f08 00C0      		rjmp .L131
 2686               	.L133:
 153:one_wire_temperature.c ****             if (TRUE == ptr_owiStruct->conv_flag) { owiTemperatureConversions(BUSES, TRUE, FALSE); 
 2688               	.LM233:
 2689 0f0a E091 0000 		lds r30,ptr_owiStruct
 2690 0f0e F091 0000 		lds r31,ptr_owiStruct+1
 2691 0f12 21E0      		ldi r18,lo8(1)
 2692 0f14 8385      		ldd r24,Z+11
 2693 0f16 9485      		ldd r25,Z+12
 2694 0f18 892B      		or r24,r25
 2695 0f1a 01F4      		brne .L135
 2696 0f1c 20E0      		ldi r18,0
 2697               	.L135:
 2698 0f1e 2587      		std Z+13,r18
 154:one_wire_temperature.c ****             break;
 2700               	.LM234:
 2701 0f20 2130      		cpi r18,lo8(1)
 2702 0f22 01F0      		breq .L134
 2703               	.L131:
 165:one_wire_temperature.c ****                OWI_FAMILY_DS18B20_TEMP,
 2705               	.LM235:
 2706 0f24 88E2      		ldi r24,lo8(40)
 2707 0f26 8983      		std Y+1,r24
 2708 0f28 80E1      		ldi r24,lo8(16)
 2709 0f2a 8A83      		std Y+2,r24
 2710 0f2c 8E01      		movw r16,r28
 2711 0f2e 0F5F      		subi r16,-1
 2712 0f30 1F4F      		sbci r17,-1
 2713 0f32 5E01      		movw r10,r28
 2714 0f34 F3E0      		ldi r31,3
 2715 0f36 AF0E      		add r10,r31
 2716 0f38 B11C      		adc r11,__zero_reg__
 170:one_wire_temperature.c **** 
 2718               	.LM236:
 2719 0f3a 912C      		mov r9,__zero_reg__
 2720               	.LBB83:
 174:one_wire_temperature.c **** 
 2722               	.LM237:
 2723 0f3c 90E0      		ldi r25,lo8(__c.3035)
 2724 0f3e C92E      		mov r12,r25
 2725 0f40 90E0      		ldi r25,hi8(__c.3035)
 2726 0f42 D92E      		mov r13,r25
 2727 0f44 20E0      		ldi r18,lo8(filename)
 2728 0f46 E22E      		mov r14,r18
 2729 0f48 20E0      		ldi r18,hi8(filename)
 2730 0f4a F22E      		mov r15,r18
 2731 0f4c 3EEA      		ldi r19,lo8(-82)
 2732 0f4e 632E      		mov r6,r19
 2733 0f50 49E0      		ldi r20,lo8(9)
 2734 0f52 742E      		mov r7,r20
 2735 0f54 52E0      		ldi r21,lo8(2)
 2736 0f56 852E      		mov r8,r21
 2737               	.L138:
 2738 0f58 F801      		movw r30,r16
 2739 0f5a 4191      		ld r20,Z+
 2740 0f5c 8F01      		movw r16,r30
 2741 0f5e 242F      		mov r18,r20
 2742 0f60 3327      		clr r19
 2743 0f62 27FD      		sbrc r18,7
 2744 0f64 3095      		com r19
 2745 0f66 3F93      		push r19
 2746 0f68 4F93      		push r20
 2747 0f6a DF92      		push r13
 2748 0f6c CF92      		push r12
 2749 0f6e FF92      		push r15
 2750 0f70 EF92      		push r14
 2751 0f72 1F92      		push __zero_reg__
 2752 0f74 6F92      		push r6
 2753 0f76 1F92      		push __zero_reg__
 2754 0f78 1F92      		push __zero_reg__
 2755 0f7a 1F92      		push __zero_reg__
 2756 0f7c 7F92      		push r7
 2757 0f7e 8F92      		push r8
 2758 0f80 E091 0000 		lds r30,printDebug_p
 2759 0f84 F091 0000 		lds r31,printDebug_p+1
 2760 0f88 4B83      		std Y+3,r20
 2761 0f8a 0995      		icall
 176:one_wire_temperature.c ****       }
 2763               	.LM238:
 2764 0f8c 20E0      		ldi r18,0
 2765 0f8e 30E0      		ldi r19,0
 2766 0f90 4B81      		ldd r20,Y+3
 2767 0f92 6091 0000 		lds r22,NumDevicesFound
 2768 0f96 80E0      		ldi r24,lo8(BUSES)
 2769 0f98 90E0      		ldi r25,hi8(BUSES)
 2770 0f9a 0E94 0000 		call owiFindFamilyDevicesAndAccessValues
 2771 0f9e 980E      		add r9,r24
 172:one_wire_temperature.c ****       {
 2773               	.LM239:
 2774 0fa0 0FB6      		in __tmp_reg__,__SREG__
 2775 0fa2 F894      		cli
 2776 0fa4 DEBF      		out __SP_H__,r29
 2777 0fa6 0FBE      		out __SREG__,__tmp_reg__
 2778 0fa8 CDBF      		out __SP_L__,r28
 2779 0faa 0A15      		cp r16,r10
 2780 0fac 1B05      		cpc r17,r11
 2781 0fae 01F4      		brne .L138
 2782               	.LBE83:
 179:one_wire_temperature.c ****       {
 2784               	.LM240:
 2785 0fb0 E091 0000 		lds r30,ptr_owiStruct
 2786 0fb4 F091 0000 		lds r31,ptr_owiStruct+1
 2787 0fb8 2085      		ldd r18,Z+8
 2788 0fba 2130      		cpi r18,lo8(1)
 2789 0fbc 01F4      		brne .L128
 2790 0fbe 9110      		cpse r9,__zero_reg__
 2791 0fc0 00C0      		rjmp .L128
 181:one_wire_temperature.c ****       }
 2793               	.LM241:
 2794 0fc2 80E0      		ldi r24,lo8(__c.3040)
 2795 0fc4 90E0      		ldi r25,hi8(__c.3040)
 2796 0fc6 9F93      		push r25
 2797 0fc8 8F93      		push r24
 2798 0fca 2F93      		push r18
 2799 0fcc 00C0      		rjmp .L143
 2800               	.L130:
 2801               	.LBE82:
 2802               	.LBE81:
 186:one_wire_temperature.c ****    }
 2804               	.LM242:
 2805 0fce 80E0      		ldi r24,lo8(__c.3042)
 2806 0fd0 90E0      		ldi r25,hi8(__c.3042)
 2807 0fd2 9F93      		push r25
 2808 0fd4 8F93      		push r24
 2809 0fd6 81E0      		ldi r24,lo8(1)
 2810 0fd8 8F93      		push r24
 2811               	.L143:
 2812 0fda 8FEF      		ldi r24,lo8(-1)
 2813 0fdc 8F93      		push r24
 2814 0fde 8CE9      		ldi r24,lo8(-100)
 2815 0fe0 8F93      		push r24
 2816 0fe2 1F92      		push __zero_reg__
 2817 0fe4 E091 0000 		lds r30,CommunicationError_p
 2818 0fe8 F091 0000 		lds r31,CommunicationError_p+1
 2819 0fec 0995      		icall
 2820 0fee 90E0      		ldi r25,0
 2821 0ff0 9093 0000 		sts generalErrorCode+1,r25
 2822 0ff4 8093 0000 		sts generalErrorCode,r24
 2823 0ff8 0F90      		pop __tmp_reg__
 2824 0ffa 0F90      		pop __tmp_reg__
 2825 0ffc 0F90      		pop __tmp_reg__
 2826 0ffe 0F90      		pop __tmp_reg__
 2827 1000 0F90      		pop __tmp_reg__
 2828 1002 0F90      		pop __tmp_reg__
 2829               	.L128:
 2830               	/* epilogue start */
 188:one_wire_temperature.c **** 
 2832               	.LM243:
 2833 1004 0F90      		pop __tmp_reg__
 2834 1006 0F90      		pop __tmp_reg__
 2835 1008 0F90      		pop __tmp_reg__
 2836 100a DF91      		pop r29
 2837 100c CF91      		pop r28
 2838 100e 1F91      		pop r17
 2839 1010 0F91      		pop r16
 2840 1012 FF90      		pop r15
 2841 1014 EF90      		pop r14
 2842 1016 DF90      		pop r13
 2843 1018 CF90      		pop r12
 2844 101a BF90      		pop r11
 2845 101c AF90      		pop r10
 2846 101e 9F90      		pop r9
 2847 1020 8F90      		pop r8
 2848 1022 7F90      		pop r7
 2849 1024 6F90      		pop r6
 2850 1026 0895      		ret
 2856               	.Lscope12:
 2859               	.global	owiTemperatureMiscSubCommandConvertOnly
 2861               	owiTemperatureMiscSubCommandConvertOnly:
 472:one_wire_temperature.c ****    switch(ptr_uartStruct->number_of_arguments - 1 /* arguments of argument */)
 2863               	.LM244:
 2864               	.LFBB13:
 2865 1028 CF93      		push r28
 2866 102a DF93      		push r29
 2867               	/* prologue: function */
 2868               	/* frame size = 0 */
 2869               	/* stack size = 2 */
 2870               	.L__stack_usage = 2
 2871 102c EC01      		movw r28,r24
 473:one_wire_temperature.c ****    {
 2873               	.LM245:
 2874 102e 8B8D      		ldd r24,Y+27
 2875 1030 9927      		clr r25
 2876 1032 87FD      		sbrc r24,7
 2877 1034 9095      		com r25
 2878 1036 0197      		sbiw r24,1
 2879 1038 0097      		sbiw r24,0
 2880 103a 01F0      		breq .L146
 2881 103c 0197      		sbiw r24,1
 2882 103e 01F0      		breq .L147
 2883 1040 00C0      		rjmp .L157
 2884               	.L146:
 476:one_wire_temperature.c ****          {
 2886               	.LM246:
 2887 1042 CE01      		movw r24,r28
 2888 1044 0E94 0000 		call owiTemperatureGetNumberOfDevicesAndSetTemperatureMask
 2889 1048 892B      		or r24,r25
 2890 104a 01F0      		breq .L148
 478:one_wire_temperature.c ****             {
 2892               	.LM247:
 2893 104c 40E0      		ldi r20,0
 2894 104e 61E0      		ldi r22,lo8(1)
 2895 1050 80E0      		ldi r24,lo8(BUSES)
 2896 1052 90E0      		ldi r25,hi8(BUSES)
 2897 1054 0E94 0000 		call owiTemperatureConversions
 2898 1058 892B      		or r24,r25
 2899 105a 01F0      		breq .+2
 2900 105c 00C0      		rjmp .L144
 480:one_wire_temperature.c ****                strncat(uart_message_string, setParameter[1],BUFFER_SIZE -1 );
 2902               	.LM248:
 2903 105e 4CE8      		ldi r20,lo8(-116)
 2904 1060 50E0      		ldi r21,0
 2905 1062 60E0      		ldi r22,lo8(uart_message_string)
 2906 1064 70E0      		ldi r23,hi8(uart_message_string)
 2907 1066 CE01      		movw r24,r28
 2908 1068 0E94 0000 		call createReceiveHeader
 481:one_wire_temperature.c ****                strncat_P(uart_message_string, PSTR(" done"),BUFFER_SIZE -1 );
 2910               	.LM249:
 2911 106c 4BE8      		ldi r20,lo8(-117)
 2912 106e 50E0      		ldi r21,0
 2913 1070 60E0      		ldi r22,lo8(setParameter+25)
 2914 1072 70E0      		ldi r23,hi8(setParameter+25)
 2915 1074 80E0      		ldi r24,lo8(uart_message_string)
 2916 1076 90E0      		ldi r25,hi8(uart_message_string)
 2917 1078 0E94 0000 		call strncat
 482:one_wire_temperature.c ****                /*send the data*/
 2919               	.LM250:
 2920 107c 4BE8      		ldi r20,lo8(-117)
 2921 107e 50E0      		ldi r21,0
 2922 1080 60E0      		ldi r22,lo8(__c.3148)
 2923 1082 70E0      		ldi r23,hi8(__c.3148)
 2924 1084 00C0      		rjmp .L155
 2925               	.L148:
 491:one_wire_temperature.c ****          }
 2927               	.LM251:
 2928 1086 80E0      		ldi r24,lo8(__c.3150)
 2929 1088 90E0      		ldi r25,hi8(__c.3150)
 2930 108a 00C0      		rjmp .L156
 2931               	.L147:
 496:one_wire_temperature.c ****          {
 2933               	.LM252:
 2934 108c CE01      		movw r24,r28
 2935 108e 0E94 0000 		call owiTemperatureGetNumberOfDevicesAndSetTemperatureMask
 2936 1092 892B      		or r24,r25
 2937 1094 01F4      		brne .+2
 2938 1096 00C0      		rjmp .L151
 498:one_wire_temperature.c ****             {
 2940               	.LM253:
 2941 1098 40E0      		ldi r20,0
 2942 109a 60E0      		ldi r22,0
 2943 109c 80E0      		ldi r24,lo8(BUSES)
 2944 109e 90E0      		ldi r25,hi8(BUSES)
 2945 10a0 0E94 0000 		call owiTemperatureConversions
 2946 10a4 892B      		or r24,r25
 2947 10a6 01F0      		breq .+2
 2948 10a8 00C0      		rjmp .L144
 500:one_wire_temperature.c ****                strncat(uart_message_string, setParameter[1],BUFFER_SIZE -1 );
 2950               	.LM254:
 2951 10aa 4CE8      		ldi r20,lo8(-116)
 2952 10ac 50E0      		ldi r21,0
 2953 10ae 60E0      		ldi r22,lo8(uart_message_string)
 2954 10b0 70E0      		ldi r23,hi8(uart_message_string)
 2955 10b2 CE01      		movw r24,r28
 2956 10b4 0E94 0000 		call createReceiveHeader
 501:one_wire_temperature.c ****                strncat_P(uart_message_string, PSTR(" "),BUFFER_SIZE -1 );
 2958               	.LM255:
 2959 10b8 4BE8      		ldi r20,lo8(-117)
 2960 10ba 50E0      		ldi r21,0
 2961 10bc 60E0      		ldi r22,lo8(setParameter+25)
 2962 10be 70E0      		ldi r23,hi8(setParameter+25)
 2963 10c0 80E0      		ldi r24,lo8(uart_message_string)
 2964 10c2 90E0      		ldi r25,hi8(uart_message_string)
 2965 10c4 0E94 0000 		call strncat
 502:one_wire_temperature.c ****                strncat(uart_message_string, setParameter[2],BUFFER_SIZE -1 );
 2967               	.LM256:
 2968 10c8 4BE8      		ldi r20,lo8(-117)
 2969 10ca 50E0      		ldi r21,0
 2970 10cc 60E0      		ldi r22,lo8(__c.3154)
 2971 10ce 70E0      		ldi r23,hi8(__c.3154)
 2972 10d0 80E0      		ldi r24,lo8(uart_message_string)
 2973 10d2 90E0      		ldi r25,hi8(uart_message_string)
 2974 10d4 0E94 0000 		call strncat_P
 503:one_wire_temperature.c ****                strncat_P(uart_message_string, PSTR(" done"),BUFFER_SIZE -1 );
 2976               	.LM257:
 2977 10d8 4BE8      		ldi r20,lo8(-117)
 2978 10da 50E0      		ldi r21,0
 2979 10dc 60E0      		ldi r22,lo8(setParameter+50)
 2980 10de 70E0      		ldi r23,hi8(setParameter+50)
 2981 10e0 80E0      		ldi r24,lo8(uart_message_string)
 2982 10e2 90E0      		ldi r25,hi8(uart_message_string)
 2983 10e4 0E94 0000 		call strncat
 504:one_wire_temperature.c ****                /*send the data*/
 2985               	.LM258:
 2986 10e8 4BE8      		ldi r20,lo8(-117)
 2987 10ea 50E0      		ldi r21,0
 2988 10ec 60E0      		ldi r22,lo8(__c.3156)
 2989 10ee 70E0      		ldi r23,hi8(__c.3156)
 2990               	.L155:
 2991 10f0 80E0      		ldi r24,lo8(uart_message_string)
 2992 10f2 90E0      		ldi r25,hi8(uart_message_string)
 2993 10f4 0E94 0000 		call strncat_P
 506:one_wire_temperature.c ****                /*clear strings*/
 2995               	.LM259:
 2996 10f8 E091 0000 		lds r30,UART0_Send_Message_String_p
 2997 10fc F091 0000 		lds r31,UART0_Send_Message_String_p+1
 2998 1100 6BE8      		ldi r22,lo8(-117)
 2999 1102 70E0      		ldi r23,0
 3000 1104 80E0      		ldi r24,lo8(uart_message_string)
 3001 1106 90E0      		ldi r25,hi8(uart_message_string)
 3002 1108 0995      		icall
 508:one_wire_temperature.c ****             }
 3004               	.LM260:
 3005 110a 6CE8      		ldi r22,lo8(-116)
 3006 110c 70E0      		ldi r23,0
 3007 110e 80E0      		ldi r24,lo8(uart_message_string)
 3008 1110 90E0      		ldi r25,hi8(uart_message_string)
 3009               	/* epilogue start */
 520:one_wire_temperature.c **** 
 3011               	.LM261:
 3012 1112 DF91      		pop r29
 3013 1114 CF91      		pop r28
 508:one_wire_temperature.c ****             }
 3015               	.LM262:
 3016 1116 0C94 0000 		jmp clearString
 3017               	.L151:
 513:one_wire_temperature.c ****          }
 3019               	.LM263:
 3020 111a 80E0      		ldi r24,lo8(__c.3158)
 3021 111c 90E0      		ldi r25,hi8(__c.3158)
 3022               	.L156:
 3023 111e 9F93      		push r25
 3024 1120 8F93      		push r24
 3025 1122 81E0      		ldi r24,lo8(1)
 3026 1124 8F93      		push r24
 3027 1126 8FEF      		ldi r24,lo8(-1)
 3028 1128 8F93      		push r24
 3029 112a 8CE9      		ldi r24,lo8(-100)
 3030 112c 8F93      		push r24
 3031 112e 1F92      		push __zero_reg__
 3032 1130 E091 0000 		lds r30,CommunicationError_p
 3033 1134 F091 0000 		lds r31,CommunicationError_p+1
 3034 1138 0995      		icall
 3035 113a 90E0      		ldi r25,0
 3036 113c 9093 0000 		sts generalErrorCode+1,r25
 3037 1140 8093 0000 		sts generalErrorCode,r24
 3038 1144 00C0      		rjmp .L154
 3039               	.L157:
 517:one_wire_temperature.c ****          break;
 3041               	.LM264:
 3042 1146 80E0      		ldi r24,lo8(__c.3161)
 3043 1148 90E0      		ldi r25,hi8(__c.3161)
 3044 114a 9F93      		push r25
 3045 114c 8F93      		push r24
 3046 114e 1F92      		push __zero_reg__
 3047 1150 8FEF      		ldi r24,lo8(-1)
 3048 1152 8F93      		push r24
 3049 1154 8CE9      		ldi r24,lo8(-100)
 3050 1156 8F93      		push r24
 3051 1158 81E0      		ldi r24,lo8(1)
 3052 115a 8F93      		push r24
 3053 115c E091 0000 		lds r30,CommunicationError_p
 3054 1160 F091 0000 		lds r31,CommunicationError_p+1
 3055 1164 0995      		icall
 3056               	.L154:
 518:one_wire_temperature.c ****    }
 3058               	.LM265:
 3059 1166 0F90      		pop __tmp_reg__
 3060 1168 0F90      		pop __tmp_reg__
 3061 116a 0F90      		pop __tmp_reg__
 3062 116c 0F90      		pop __tmp_reg__
 3063 116e 0F90      		pop __tmp_reg__
 3064 1170 0F90      		pop __tmp_reg__
 3065               	.L144:
 3066               	/* epilogue start */
 520:one_wire_temperature.c **** 
 3068               	.LM266:
 3069 1172 DF91      		pop r29
 3070 1174 CF91      		pop r28
 3071 1176 0895      		ret
 3073               	.Lscope13:
 3076               	.global	owiTemperatureMiscSubCommands
 3078               	owiTemperatureMiscSubCommands:
 523:one_wire_temperature.c ****    uint8_t index = 0;
 3080               	.LM267:
 3081               	.LFBB14:
 3082 1178 CF93      		push r28
 3083 117a DF93      		push r29
 3084               	/* prologue: function */
 3085               	/* frame size = 0 */
 3086               	/* stack size = 2 */
 3087               	.L__stack_usage = 2
 3088 117c EC01      		movw r28,r24
 526:one_wire_temperature.c **** 
 3090               	.LM268:
 3091 117e 47E0      		ldi r20,lo8(7)
 3092 1180 50E0      		ldi r21,0
 3093 1182 60E0      		ldi r22,lo8(owiTemperatureCommandKeywords)
 3094 1184 70E0      		ldi r23,hi8(owiTemperatureCommandKeywords)
 3095 1186 80E0      		ldi r24,lo8(setParameter+25)
 3096 1188 90E0      		ldi r25,hi8(setParameter+25)
 3097 118a 0E94 0000 		call apiFindCommandKeywordIndex
 528:one_wire_temperature.c ****    {
 3099               	.LM269:
 3100 118e 482F      		mov r20,r24
 3101 1190 50E0      		ldi r21,0
 3102 1192 4730      		cpi r20,7
 3103 1194 5105      		cpc r21,__zero_reg__
 3104 1196 00F4      		brsh .L159
 3105 1198 FA01      		movw r30,r20
 3106 119a E050      		subi r30,lo8(-(gs(.L161)))
 3107 119c F040      		sbci r31,hi8(-(gs(.L161)))
 3108 119e 0C94 0000 		jmp __tablejump2__
 3109               		.section	.progmem.gcc_sw_table,"a",@progbits
 3110               		.p2align	1
 3111               	.L161:
 3112 0000 0000      		.word gs(.L160)
 3113 0002 0000      		.word gs(.L162)
 3114 0004 0000      		.word gs(.L163)
 3115 0006 0000      		.word gs(.L164)
 3116 0008 0000      		.word gs(.L165)
 3117 000a 0000      		.word gs(.L166)
 3118 000c 0000      		.word gs(.L167)
 3119               		.text
 3120               	.L160:
 531:one_wire_temperature.c ****          break;
 3122               	.LM270:
 3123 11a2 CE01      		movw r24,r28
 3124               	/* epilogue start */
 560:one_wire_temperature.c **** 
 3126               	.LM271:
 3127 11a4 DF91      		pop r29
 3128 11a6 CF91      		pop r28
 531:one_wire_temperature.c ****          break;
 3130               	.LM272:
 3131 11a8 0C94 0000 		jmp owiTemperatureMiscSubCommandConvertOnly
 3132               	.L162:
 534:one_wire_temperature.c ****          clearString(setParameter[1], MAX_LENGTH_PARAMETER);
 3134               	.LM273:
 3135 11ac 1B8E      		std Y+27,__zero_reg__
 535:one_wire_temperature.c ****          owiTemperatureReadSensors(ptr_uartStruct, FALSE);
 3137               	.LM274:
 3138 11ae 69E1      		ldi r22,lo8(25)
 3139 11b0 70E0      		ldi r23,0
 3140 11b2 80E0      		ldi r24,lo8(setParameter+25)
 3141 11b4 90E0      		ldi r25,hi8(setParameter+25)
 3142 11b6 0E94 0000 		call clearString
 536:one_wire_temperature.c ****          break;
 3144               	.LM275:
 3145 11ba 60E0      		ldi r22,0
 3146 11bc CE01      		movw r24,r28
 3147               	/* epilogue start */
 560:one_wire_temperature.c **** 
 3149               	.LM276:
 3150 11be DF91      		pop r29
 3151 11c0 CF91      		pop r28
 536:one_wire_temperature.c ****          break;
 3153               	.LM277:
 3154 11c2 0C94 0000 		jmp owiTemperatureReadSensors
 3155               	.L163:
 539:one_wire_temperature.c ****          break;
 3157               	.LM278:
 3158 11c6 20E0      		ldi r18,0
 3159 11c8 40E0      		ldi r20,lo8(__c.3171)
 3160 11ca 50E0      		ldi r21,hi8(__c.3171)
 3161 11cc 60E0      		ldi r22,lo8(owiTemperatureIgnoreConversionResponse)
 3162 11ce 70E0      		ldi r23,hi8(owiTemperatureIgnoreConversionResponse)
 3163 11d0 CE01      		movw r24,r28
 3164               	/* epilogue start */
 560:one_wire_temperature.c **** 
 3166               	.LM279:
 3167 11d2 DF91      		pop r29
 3168 11d4 CF91      		pop r28
 539:one_wire_temperature.c ****          break;
 3170               	.LM280:
 3171 11d6 0C94 0000 		jmp owiTemperatureMiscSubCommandGetSetFlag
 3172               	.L164:
 542:one_wire_temperature.c ****          break;
 3174               	.LM281:
 3175 11da CE01      		movw r24,r28
 3176               	/* epilogue start */
 560:one_wire_temperature.c **** 
 3178               	.LM282:
 3179 11dc DF91      		pop r29
 3180 11de CF91      		pop r28
 542:one_wire_temperature.c ****          break;
 3182               	.LM283:
 3183 11e0 0C94 0000 		jmp owiTemperatureMiscSubCommandGetSetMaxConversionTime
 3184               	.L165:
 545:one_wire_temperature.c ****          break;
 3186               	.LM284:
 3187 11e4 CE01      		movw r24,r28
 3188               	/* epilogue start */
 560:one_wire_temperature.c **** 
 3190               	.LM285:
 3191 11e6 DF91      		pop r29
 3192 11e8 CF91      		pop r28
 545:one_wire_temperature.c ****          break;
 3194               	.LM286:
 3195 11ea 0C94 0000 		jmp owiTemperatureMiscSubCommandGetSetForceParasiticMode
 3196               	.L166:
 548:one_wire_temperature.c ****          break;
 3198               	.LM287:
 3199 11ee CE01      		movw r24,r28
 3200               	/* epilogue start */
 560:one_wire_temperature.c **** 
 3202               	.LM288:
 3203 11f0 DF91      		pop r29
 3204 11f2 CF91      		pop r28
 548:one_wire_temperature.c ****          break;
 3206               	.LM289:
 3207 11f4 0C94 0000 		jmp owiTemperatureMiscSubCommandGetSetResolution_DS18B20
 3208               	.L167:
 551:one_wire_temperature.c **** 	break;
 3210               	.LM290:
 3211 11f8 CE01      		movw r24,r28
 3212               	/* epilogue start */
 560:one_wire_temperature.c **** 
 3214               	.LM291:
 3215 11fa DF91      		pop r29
 3216 11fc CF91      		pop r28
 551:one_wire_temperature.c **** 	break;
 3218               	.LM292:
 3219 11fe 0C94 0000 		jmp owiTemperatureMiscSubCommandGetSetStepByStepParasiticConversion
 3220               	.L159:
 554:one_wire_temperature.c ****          return;
 3222               	.LM293:
 3223 1202 80E0      		ldi r24,lo8(__c.3178)
 3224 1204 90E0      		ldi r25,hi8(__c.3178)
 3225 1206 9F93      		push r25
 3226 1208 8F93      		push r24
 3227 120a 1F92      		push __zero_reg__
 3228 120c 8FEF      		ldi r24,lo8(-1)
 3229 120e 8F93      		push r24
 3230 1210 8CE9      		ldi r24,lo8(-100)
 3231 1212 8F93      		push r24
 3232 1214 81E0      		ldi r24,lo8(1)
 3233 1216 8F93      		push r24
 3234 1218 E091 0000 		lds r30,CommunicationError_p
 3235 121c F091 0000 		lds r31,CommunicationError_p+1
 3236 1220 0995      		icall
 555:one_wire_temperature.c ****          break;
 3238               	.LM294:
 3239 1222 0F90      		pop __tmp_reg__
 3240 1224 0F90      		pop __tmp_reg__
 3241 1226 0F90      		pop __tmp_reg__
 3242 1228 0F90      		pop __tmp_reg__
 3243 122a 0F90      		pop __tmp_reg__
 3244 122c 0F90      		pop __tmp_reg__
 3245               	/* epilogue start */
 560:one_wire_temperature.c **** 
 3247               	.LM295:
 3248 122e DF91      		pop r29
 3249 1230 CF91      		pop r28
 3250 1232 0895      		ret
 3252               	.Lscope14:
 3255               	.global	owiTemperatureSensors
 3257               	owiTemperatureSensors:
 108:one_wire_temperature.c ****    if ( 0 == strlen(ptr_owiStruct->command) )
 3259               	.LM296:
 3260               	.LFBB15:
 3261               	/* prologue: function */
 3262               	/* frame size = 0 */
 3263               	/* stack size = 0 */
 3264               	.L__stack_usage = 0
 109:one_wire_temperature.c ****    {
 3266               	.LM297:
 3267 1234 E091 0000 		lds r30,ptr_owiStruct
 3268 1238 F091 0000 		lds r31,ptr_owiStruct+1
 3269 123c 2785      		ldd r18,Z+15
 3270 123e 2111      		cpse r18,__zero_reg__
 3271 1240 00C0      		rjmp .L169
 111:one_wire_temperature.c ****    }
 3273               	.LM298:
 3274 1242 61E0      		ldi r22,lo8(1)
 3275 1244 0C94 0000 		jmp owiTemperatureReadSensors
 3276               	.L169:
 115:one_wire_temperature.c ****    }
 3278               	.LM299:
 3279 1248 0C94 0000 		jmp owiTemperatureMiscSubCommands
 3281               	.Lscope15:
 3285               	.global	owiTemperatureReadSingleSensor
 3287               	owiTemperatureReadSingleSensor:
 903:one_wire_temperature.c **** 
 904:one_wire_temperature.c **** /*
 905:one_wire_temperature.c ****  * owiTemperatureReadSingleSensor( unsigned char bus_pattern, unsigned char * id )
 906:one_wire_temperature.c ****  *
 907:one_wire_temperature.c ****  * this function will read the data contained in the scratchpad of the device
 908:one_wire_temperature.c ****  * identified by the id ID number
 909:one_wire_temperature.c ****  *
 910:one_wire_temperature.c ****  * it will return the temperature value stored in the scratchpad as an 32bit unsigned int
 911:one_wire_temperature.c ****  *   - where the temperature value is only maximum 16 lower bit
 912:one_wire_temperature.c ****  *   - the remaining top 16 bit are used to signal errors
 913:one_wire_temperature.c ****  *   - if an error occurs, this function will return values larger than 0xFFFF
 914:one_wire_temperature.c ****  */
 915:one_wire_temperature.c **** 
 916:one_wire_temperature.c **** 
 917:one_wire_temperature.c **** uint32_t owiTemperatureReadSingleSensor( unsigned char bus_pattern, unsigned char * id )
 918:one_wire_temperature.c **** {
 3289               	.LM300:
 3290               	.LFBB16:
 3291 124c 6F92      		push r6
 3292 124e 7F92      		push r7
 3293 1250 8F92      		push r8
 3294 1252 9F92      		push r9
 3295 1254 AF92      		push r10
 3296 1256 BF92      		push r11
 3297 1258 CF92      		push r12
 3298 125a DF92      		push r13
 3299 125c EF92      		push r14
 3300 125e FF92      		push r15
 3301 1260 0F93      		push r16
 3302 1262 1F93      		push r17
 3303 1264 CF93      		push r28
 3304 1266 DF93      		push r29
 3305               	/* prologue: function */
 3306               	/* frame size = 0 */
 3307               	/* stack size = 14 */
 3308               	.L__stack_usage = 14
 3309 1268 682E      		mov r6,r24
 3310 126a 7B01      		movw r14,r22
 919:one_wire_temperature.c ****    uint32_t temperature = 0x0;
 920:one_wire_temperature.c **** 
 921:one_wire_temperature.c ****    /*checks*/
 922:one_wire_temperature.c ****     printDebug_p(debugLevelEventDebug, debugSystemOWITemperatures, __LINE__, filename, PSTR("begin"
 3312               	.LM301:
 3313 126c 80E0      		ldi r24,lo8(__c.3273)
 3314 126e 90E0      		ldi r25,hi8(__c.3273)
 3315 1270 9F93      		push r25
 3316 1272 8F93      		push r24
 3317 1274 C0E0      		ldi r28,lo8(filename)
 3318 1276 D0E0      		ldi r29,hi8(filename)
 3319 1278 DF93      		push r29
 3320 127a CF93      		push r28
 3321 127c 73E0      		ldi r23,lo8(3)
 3322 127e 772E      		mov r7,r23
 3323 1280 7F92      		push r7
 3324 1282 8AE9      		ldi r24,lo8(-102)
 3325 1284 8F93      		push r24
 3326 1286 1F92      		push __zero_reg__
 3327 1288 1F92      		push __zero_reg__
 3328 128a 1F92      		push __zero_reg__
 3329 128c 09E0      		ldi r16,lo8(9)
 3330 128e 0F93      		push r16
 3331 1290 12E0      		ldi r17,lo8(2)
 3332 1292 1F93      		push r17
 3333 1294 E091 0000 		lds r30,printDebug_p
 3334 1298 F091 0000 		lds r31,printDebug_p+1
 3335 129c 0995      		icall
 923:one_wire_temperature.c **** 
 924:one_wire_temperature.c ****    if ( 0 == ((owiBusMask & bus_pattern) & 0xFF) )
 3337               	.LM302:
 3338 129e 2091 0000 		lds r18,owiBusMask
 3339 12a2 3091 0000 		lds r19,owiBusMask+1
 3340 12a6 862D      		mov r24,r6
 3341 12a8 90E0      		ldi r25,0
 3342 12aa AC01      		movw r20,r24
 3343 12ac 4223      		and r20,r18
 3344 12ae 5323      		and r21,r19
 3345 12b0 6DB7      		in r22,__SP_L__
 3346 12b2 7EB7      		in r23,__SP_H__
 3347 12b4 655F      		subi r22,-11
 3348 12b6 7F4F      		sbci r23,-1
 3349 12b8 0FB6      		in __tmp_reg__,__SREG__
 3350 12ba F894      		cli
 3351 12bc 7EBF      		out __SP_H__,r23
 3352 12be 0FBE      		out __SREG__,__tmp_reg__
 3353 12c0 6DBF      		out __SP_L__,r22
 3354 12c2 452B      		or r20,r21
 3355 12c4 01F4      		brne .L171
 925:one_wire_temperature.c ****    {
 926:one_wire_temperature.c ****        printDebug_p(debugLevelEventDebug, debugSystemOWITemperatures, __LINE__, filename, PSTR("pas
 3357               	.LM303:
 3358 12c6 3F93      		push r19
 3359 12c8 2F93      		push r18
 3360 12ca 1F92      		push __zero_reg__
 3361 12cc 6F92      		push r6
 3362 12ce 80E0      		ldi r24,lo8(__c.3275)
 3363 12d0 90E0      		ldi r25,hi8(__c.3275)
 3364 12d2 9F93      		push r25
 3365 12d4 8F93      		push r24
 3366 12d6 DF93      		push r29
 3367 12d8 CF93      		push r28
 3368 12da 7F92      		push r7
 3369 12dc 8EE9      		ldi r24,lo8(-98)
 3370 12de 8F93      		push r24
 3371 12e0 1F92      		push __zero_reg__
 3372 12e2 1F92      		push __zero_reg__
 3373 12e4 1F92      		push __zero_reg__
 3374 12e6 0F93      		push r16
 3375 12e8 1F93      		push r17
 3376 12ea E091 0000 		lds r30,printDebug_p
 3377 12ee F091 0000 		lds r31,printDebug_p+1
 3378 12f2 0995      		icall
 927:one_wire_temperature.c **** 
 928:one_wire_temperature.c ****       return (0x0L | owiReadStatus_owi_bus_mismatch) << 16;
 3380               	.LM304:
 3381 12f4 6DB7      		in r22,__SP_L__
 3382 12f6 7EB7      		in r23,__SP_H__
 3383 12f8 615F      		subi r22,-15
 3384 12fa 7F4F      		sbci r23,-1
 3385 12fc 0FB6      		in __tmp_reg__,__SREG__
 3386 12fe F894      		cli
 3387 1300 7EBF      		out __SP_H__,r23
 3388 1302 0FBE      		out __SREG__,__tmp_reg__
 3389 1304 6DBF      		out __SP_L__,r22
 3390 1306 60E0      		ldi r22,0
 3391 1308 70E0      		ldi r23,0
 3392 130a 81E0      		ldi r24,lo8(1)
 3393 130c 00C0      		rjmp .L175
 3394               	.L171:
 929:one_wire_temperature.c ****    }
 930:one_wire_temperature.c **** 
 931:one_wire_temperature.c ****    if ( 0 != ((owiTemperatureTimeoutMask & bus_pattern) & 0xFF) )
 3396               	.LM305:
 3397 130e 2091 0000 		lds r18,owiTemperatureTimeoutMask
 3398 1312 3091 0000 		lds r19,owiTemperatureTimeoutMask+1
 3399 1316 8223      		and r24,r18
 3400 1318 9323      		and r25,r19
 3401 131a 892B      		or r24,r25
 3402 131c 01F0      		breq .L173
 932:one_wire_temperature.c ****    {
 933:one_wire_temperature.c ****       /*conversion went into timeout*/
 934:one_wire_temperature.c ****       CommunicationError_p(ERRG, dynamicMessage_ErrorIndex, FALSE, PSTR("OWI Temperature Conversion
 3404               	.LM306:
 3405 131e 3F93      		push r19
 3406 1320 2F93      		push r18
 3407 1322 1F92      		push __zero_reg__
 3408 1324 6F92      		push r6
 3409 1326 80E0      		ldi r24,lo8(owi_id_string)
 3410 1328 90E0      		ldi r25,hi8(owi_id_string)
 3411 132a 9F93      		push r25
 3412 132c 8F93      		push r24
 3413 132e 1F93      		push r17
 3414 1330 8EEE      		ldi r24,lo8(-18)
 3415 1332 8F93      		push r24
 3416 1334 80E0      		ldi r24,lo8(__c.3277)
 3417 1336 90E0      		ldi r25,hi8(__c.3277)
 3418 1338 9F93      		push r25
 3419 133a 8F93      		push r24
 3420 133c 1F92      		push __zero_reg__
 3421 133e 8FEF      		ldi r24,lo8(-1)
 3422 1340 8F93      		push r24
 3423 1342 8CE9      		ldi r24,lo8(-100)
 3424 1344 8F93      		push r24
 3425 1346 1F92      		push __zero_reg__
 3426 1348 E091 0000 		lds r30,CommunicationError_p
 3427 134c F091 0000 		lds r31,CommunicationError_p+1
 3428 1350 0995      		icall
 935:one_wire_temperature.c **** 
 936:one_wire_temperature.c ****       return (0x0L | owiReadStatus_conversion_timeout) << 16;
 3430               	.LM307:
 3431 1352 8DB7      		in r24,__SP_L__
 3432 1354 9EB7      		in r25,__SP_H__
 3433 1356 0E96      		adiw r24,14
 3434 1358 0FB6      		in __tmp_reg__,__SREG__
 3435 135a F894      		cli
 3436 135c 9EBF      		out __SP_H__,r25
 3437 135e 0FBE      		out __SREG__,__tmp_reg__
 3438 1360 8DBF      		out __SP_L__,r24
 3439 1362 60E0      		ldi r22,0
 3440 1364 70E0      		ldi r23,0
 3441 1366 82E0      		ldi r24,lo8(2)
 3442 1368 00C0      		rjmp .L175
 3443               	.L173:
 937:one_wire_temperature.c ****    }
 938:one_wire_temperature.c **** #warning TODO: consider the case that bus_pattern has more than one bit active, but the conversion 
 939:one_wire_temperature.c **** 
 940:one_wire_temperature.c ****    /* Reset, presence */
 941:one_wire_temperature.c **** 
 942:one_wire_temperature.c ****    if ( 0 == OWI_DetectPresence(bus_pattern) )
 3445               	.LM308:
 3446 136a 862D      		mov r24,r6
 3447 136c 0E94 0000 		call OWI_DetectPresence
 3448 1370 8823      		tst r24
 3449 1372 01F0      		breq .L174
 943:one_wire_temperature.c ****    {
 944:one_wire_temperature.c ****       return ( 0x0L | owiReadStatus_no_device_presence ) << 16;
 945:one_wire_temperature.c ****    }
 946:one_wire_temperature.c **** 
 947:one_wire_temperature.c ****    /* Match id found earlier*/
 948:one_wire_temperature.c ****    OWI_MatchRom(id, bus_pattern);
 3451               	.LM309:
 3452 1374 662D      		mov r22,r6
 3453 1376 C701      		movw r24,r14
 3454 1378 0E94 0000 		call OWI_MatchRom
 949:one_wire_temperature.c **** 
 950:one_wire_temperature.c ****    /* Send READ SCRATCHPAD command.
 951:one_wire_temperature.c ****     *
 952:one_wire_temperature.c ****     * READ SCRATCHPAD [BEh]
 953:one_wire_temperature.c ****     * This command allows the master to read the contents of the scratchpad. The data transfer star
 954:one_wire_temperature.c ****     * least significant bit of byte 0 and continues through the scratchpad until the 9th byte (byte
 955:one_wire_temperature.c ****     * read. The master may issue a reset to terminate reading at any time if only part of the scrat
 956:one_wire_temperature.c ****     *
 957:one_wire_temperature.c ****     * (http://datasheets.maxim-ic.com/en/ds/DS18B20.pdf and http://datasheets.maxim-ic.com/en/ds/DS
 958:one_wire_temperature.c ****     */
 959:one_wire_temperature.c **** 
 960:one_wire_temperature.c **** #warning no additional reset (~1ms) or detect presence (2ms) command for termination of reading is 
 961:one_wire_temperature.c **** 
 962:one_wire_temperature.c ****    OWI_SendByte(DS1820_READ_SCRATCHPAD, bus_pattern);
 3456               	.LM310:
 3457 137c 662D      		mov r22,r6
 3458 137e 8EEB      		ldi r24,lo8(-66)
 3459 1380 0E94 0000 		call OWI_SendByte
 963:one_wire_temperature.c **** 
 964:one_wire_temperature.c ****    /* Read only two first bytes (temperature low, temperature high)*/
 965:one_wire_temperature.c ****    /* and place them in the 16 bit temperature variable.*/
 966:one_wire_temperature.c ****    temperature = OWI_ReceiveByte(bus_pattern);
 3461               	.LM311:
 3462 1384 862D      		mov r24,r6
 3463 1386 0E94 0000 		call OWI_ReceiveByte
 3464 138a 882E      		mov r8,r24
 3465 138c 912C      		mov r9,__zero_reg__
 3466 138e A12C      		mov r10,__zero_reg__
 3467 1390 B12C      		mov r11,__zero_reg__
 967:one_wire_temperature.c ****    temperature |= ( OWI_ReceiveByte(bus_pattern) << 8 );
 3469               	.LM312:
 3470 1392 862D      		mov r24,r6
 3471 1394 0E94 0000 		call OWI_ReceiveByte
 3472 1398 C82E      		mov r12,r24
 3473 139a D12C      		mov r13,__zero_reg__
 3474 139c DC2C      		mov r13,r12
 3475 139e CC24      		clr r12
 3476 13a0 E12C      		mov r14,__zero_reg__
 3477 13a2 F12C      		mov r15,__zero_reg__
 968:one_wire_temperature.c ****    temperature &= 0xFFFF;
 3479               	.LM313:
 3480 13a4 C828      		or r12,r8
 3481 13a6 D928      		or r13,r9
 3482 13a8 EA28      		or r14,r10
 3483 13aa FB28      		or r15,r11
 969:one_wire_temperature.c **** 
 970:one_wire_temperature.c ****    OWI_DetectPresence(bus_pattern);
 3485               	.LM314:
 3486 13ac 862D      		mov r24,r6
 3487 13ae 0E94 0000 		call OWI_DetectPresence
 971:one_wire_temperature.c **** 
 972:one_wire_temperature.c ****     printDebug_p(debugLevelEventDebug, debugSystemOWITemperatures, __LINE__, filename, PSTR("end"))
 3489               	.LM315:
 3490 13b2 80E0      		ldi r24,lo8(__c.3279)
 3491 13b4 90E0      		ldi r25,hi8(__c.3279)
 3492 13b6 9F93      		push r25
 3493 13b8 8F93      		push r24
 3494 13ba DF93      		push r29
 3495 13bc CF93      		push r28
 3496 13be 7F92      		push r7
 3497 13c0 8CEC      		ldi r24,lo8(-52)
 3498 13c2 8F93      		push r24
 3499 13c4 1F92      		push __zero_reg__
 3500 13c6 1F92      		push __zero_reg__
 3501 13c8 1F92      		push __zero_reg__
 3502 13ca 0F93      		push r16
 3503 13cc 1F93      		push r17
 3504 13ce E091 0000 		lds r30,printDebug_p
 3505 13d2 F091 0000 		lds r31,printDebug_p+1
 3506 13d6 0995      		icall
 973:one_wire_temperature.c **** 
 974:one_wire_temperature.c ****    return temperature | ((0x0L | owiReadWriteStatus_OK) << 16);
 3508               	.LM316:
 3509 13d8 8DB7      		in r24,__SP_L__
 3510 13da 9EB7      		in r25,__SP_H__
 3511 13dc 0B96      		adiw r24,11
 3512 13de 0FB6      		in __tmp_reg__,__SREG__
 3513 13e0 F894      		cli
 3514 13e2 9EBF      		out __SP_H__,r25
 3515 13e4 0FBE      		out __SREG__,__tmp_reg__
 3516 13e6 8DBF      		out __SP_L__,r24
 3517 13e8 B601      		movw r22,r12
 3518 13ea C701      		movw r24,r14
 3519 13ec 00C0      		rjmp .L172
 3520               	.L174:
 944:one_wire_temperature.c ****    }
 3522               	.LM317:
 3523 13ee 60E0      		ldi r22,0
 3524 13f0 70E0      		ldi r23,0
 3525 13f2 84E0      		ldi r24,lo8(4)
 3526               	.L175:
 3527 13f4 90E0      		ldi r25,0
 3528               	.L172:
 3529               	/* epilogue start */
 975:one_wire_temperature.c **** 
 976:one_wire_temperature.c **** }// END of owiTemperatureReadSingleSensor function
 3531               	.LM318:
 3532 13f6 DF91      		pop r29
 3533 13f8 CF91      		pop r28
 3534 13fa 1F91      		pop r17
 3535 13fc 0F91      		pop r16
 3536 13fe FF90      		pop r15
 3537 1400 EF90      		pop r14
 3538 1402 DF90      		pop r13
 3539 1404 CF90      		pop r12
 3540 1406 BF90      		pop r11
 3541 1408 AF90      		pop r10
 3542 140a 9F90      		pop r9
 3543 140c 8F90      		pop r8
 3544 140e 7F90      		pop r7
 3545 1410 6F90      		pop r6
 3546 1412 0895      		ret
 3548               	.Lscope16:
 3549               		.section	.progmem.data,"a",@progbits
 3552               	__c.3279:
 3553 0000 656E 6400 		.string	"end"
 3556               	__c.3277:
 3557 0004 4F57 4920 		.string	"OWI Temperature Conversion timeout (>%i ms, %s, bus_pattern %#x vs. mask: %#x)"
 3557      5465 6D70 
 3557      6572 6174 
 3557      7572 6520 
 3557      436F 6E76 
 3560               	__c.3275:
 3561 0053 7061 7373 		.string	"passive (bus pattern %#x owiBusMask %#x)"
 3561      6976 6520 
 3561      2862 7573 
 3561      2070 6174 
 3561      7465 726E 
 3564               	__c.3273:
 3565 007c 6265 6769 		.string	"begin"
 3565      6E00 
 3568               	__c.3266:
 3569 0082 4F57 4920 		.string	"OWI Temperature Conversion timeout"
 3569      5465 6D70 
 3569      6572 6174 
 3569      7572 6520 
 3569      436F 6E76 
 3572               	__c.3264:
 3573 00a5 636F 6E76 		.string	"conversion done"
 3573      6572 7369 
 3573      6F6E 2064 
 3573      6F6E 6500 
 3576               	__c.3259:
 3577 00b5 7761 6974 		.string	"waiting the remaining %i times"
 3577      696E 6720 
 3577      7468 6520 
 3577      7265 6D61 
 3577      696E 696E 
 3580               	__c.3257:
 3581 00d4 7761 6974 		.string	"waited %i times a delay of"
 3581      6564 2025 
 3581      6920 7469 
 3581      6D65 7320 
 3581      6120 6465 
 3584               	__c.3247:
 3585 00ef 6669 6E69 		.string	"finished (Timeout: current = %#x, all = %#x)"
 3585      7368 6564 
 3585      2028 5469 
 3585      6D65 6F75 
 3585      743A 2063 
 3588               	__c.3238:
 3589 011c 7761 6974 		.string	"waiting for conversion"
 3589      696E 6720 
 3589      666F 7220 
 3589      636F 6E76 
 3589      6572 7369 
 3590               		.local	timeout_flag.3213
 3591               		.comm	timeout_flag.3213,1,1
 3592               		.local	count.3214
 3593               		.comm	count.3214,4,1
 3594               		.local	maxcount.3215
 3595               		.comm	maxcount.3215,4,1
 3598               	__c.3236:
 3599 0133 7061 7261 		.string	"parasitic conversion done"
 3599      7369 7469 
 3599      6320 636F 
 3599      6E76 6572 
 3599      7369 6F6E 
 3602               	__c.3234:
 3603 014d 7061 7261 		.string	"parasitic conversion "
 3603      7369 7469 
 3603      6320 636F 
 3603      6E76 6572 
 3603      7369 6F6E 
 3606               	__c.3232:
 3607 0163 7374 6172 		.string	"starting conversion sequence"
 3607      7469 6E67 
 3607      2063 6F6E 
 3607      7665 7273 
 3607      696F 6E20 
 3610               	__c.3230:
 3611 0180 736F 6D65 		.string	"some devices present (pin pattern %#x)"
 3611      2064 6576 
 3611      6963 6573 
 3611      2070 7265 
 3611      7365 6E74 
 3614               	__c.3228:
 3615 01a7 6E6F 2044 		.string	"no Device present (pin pattern %#x)"
 3615      6576 6963 
 3615      6520 7072 
 3615      6573 656E 
 3615      7420 2870 
 3618               	__c.3226:
 3619 01cb 6275 733A 		.string	"bus: mixed sensors, max. t_conv: %f (pins %#x)"
 3619      206D 6978 
 3619      6564 2073 
 3619      656E 736F 
 3619      7273 2C20 
 3622               	__c.3224:
 3623 01fa 6275 733A 		.string	"bus: only DS18B20, adopting max. t_conv to: %i ms (pins %#x)"
 3623      206F 6E6C 
 3623      7920 4453 
 3623      3138 4232 
 3623      302C 2061 
 3626               	__c.3220:
 3627 0237 6E6F 2074 		.string	"no temp sensors at all"
 3627      656D 7020 
 3627      7365 6E73 
 3627      6F72 7320 
 3627      6174 2061 
 3630               	__c.3209:
 3631 024e 00        		.zero	1
 3634               	__c.3178:
 3635 024f 696E 7661 		.string	"invalid argument"
 3635      6C69 6420 
 3635      6172 6775 
 3635      6D65 6E74 
 3635      00
 3638               	__c.3171:
 3639 0260 2069 676E 		.string	" ignore conv. response: "
 3639      6F72 6520 
 3639      636F 6E76 
 3639      2E20 7265 
 3639      7370 6F6E 
 3642               	__c.3161:
 3643 0279 696E 7661 		.string	"invalid number of arguments"
 3643      6C69 6420 
 3643      6E75 6D62 
 3643      6572 206F 
 3643      6620 6172 
 3646               	__c.3158:
 3647 0295 6E6F 2073 		.string	"no supported 1-wire temperature device present"
 3647      7570 706F 
 3647      7274 6564 
 3647      2031 2D77 
 3647      6972 6520 
 3650               	__c.3156:
 3651 02c4 2064 6F6E 		.string	" done"
 3651      6500 
 3654               	__c.3154:
 3655 02ca 2000      		.string	" "
 3658               	__c.3150:
 3659 02cc 6E6F 2073 		.string	"no supported 1-wire temperature device present"
 3659      7570 706F 
 3659      7274 6564 
 3659      2031 2D77 
 3659      6972 6520 
 3662               	__c.3148:
 3663 02fb 2064 6F6E 		.string	" done"
 3663      6500 
 3666               	__c.3142:
 3667 0301 696E 7661 		.string	"invalid number of arguments"
 3667      6C69 6420 
 3667      6E75 6D62 
 3667      6572 206F 
 3667      6620 6172 
 3670               	__c.3139:
 3671 031d 2573 2076 		.string	"%s value '%i' out of range [9,..,12]"
 3671      616C 7565 
 3671      2027 2569 
 3671      2720 6F75 
 3671      7420 6F66 
 3674               	__c.3128:
 3675 0342 2573 2569 		.string	"%s%i "
 3675      2000 
 3678               	__c.3122:
 3679 0348 696E 7661 		.string	"invalid number of arguments"
 3679      6C69 6420 
 3679      6E75 6D62 
 3679      6572 206F 
 3679      6620 6172 
 3682               	__c.3117:
 3683 0364 2573 2569 		.string	"%s%i (%#x)"
 3683      2028 2523 
 3683      7829 00
 3686               	__c.3111:
 3687 036f 696E 7661 		.string	"invalid number of arguments"
 3687      6C69 6420 
 3687      6E75 6D62 
 3687      6572 206F 
 3687      6620 6172 
 3690               	__c.3106:
 3691 038b 2046 414C 		.string	" FALSE"
 3691      5345 00
 3694               	__c.3104:
 3695 0392 2054 5255 		.string	" TRUE"
 3695      4500 
 3698               	__c.3097:
 3699 0398 696E 7661 		.string	"invalid number of arguments"
 3699      6C69 6420 
 3699      6E75 6D62 
 3699      6572 206F 
 3699      6620 6172 
 3702               	__c.3092:
 3703 03b4 2046 414C 		.string	" FALSE"
 3703      5345 00
 3706               	__c.3090:
 3707 03bb 2054 5255 		.string	" TRUE"
 3707      4500 
 3710               	__c.3083:
 3711 03c1 696E 7661 		.string	"invalid number of arguments"
 3711      6C69 6420 
 3711      6E75 6D62 
 3711      6572 206F 
 3711      6620 6172 
 3714               	__c.3078:
 3715 03dd 4641 4C53 		.string	"FALSE"
 3715      4500 
 3718               	__c.3076:
 3719 03e3 5452 5545 		.string	"TRUE"
 3719      00
 3722               	__c.3074:
 3723 03e8 4641 4C53 		.string	"FALSE"
 3723      4500 
 3726               	__c.3072:
 3727 03ee 5452 5545 		.string	"TRUE"
 3727      00
 3730               	__c.3063:
 3731 03f3 666F 756E 		.string	"found %i temp devices"
 3731      6420 2569 
 3731      2074 656D 
 3731      7020 6465 
 3731      7669 6365 
 3734               	__c.3061:
 3735 0409 6D69 7363 		.string	"misc temp commands keyword %s matches"
 3735      2074 656D 
 3735      7020 636F 
 3735      6D6D 616E 
 3735      6473 206B 
 3738               	__c.3055:
 3739 042f 7772 6974 		.string	"write argument: too many arguments"
 3739      6520 6172 
 3739      6775 6D65 
 3739      6E74 3A20 
 3739      746F 6F20 
 3742               	__c.3052:
 3743 0452 696E 7661 		.string	"invalid arguments"
 3743      6C69 6420 
 3743      6172 6775 
 3743      6D65 6E74 
 3743      7300 
 3746               	__c.3042:
 3747 0464 6E6F 2073 		.string	"no supported 1-wire temperature device present"
 3747      7570 706F 
 3747      7274 6564 
 3747      2031 2D77 
 3747      6972 6520 
 3750               	__c.3040:
 3751 0493 6E6F 206D 		.string	"no matching ID was found"
 3751      6174 6368 
 3751      696E 6720 
 3751      4944 2077 
 3751      6173 2066 
 3754               	__c.3035:
 3755 04ac 6361 6C6C 		.string	"call: FindFamilyDevicesAndGetValues family code: %x"
 3755      3A20 4669 
 3755      6E64 4661 
 3755      6D69 6C79 
 3755      4465 7669 
 3756               	.global	owiTemperatureCommandKeywords
 3759               	owiTemperatureCommandKeywords:
 3760 04e0 0000      		.word	owiTemperatureCommandKeyword00
 3761 04e2 0000      		.word	owiTemperatureCommandKeyword01
 3762 04e4 0000      		.word	owiTemperatureCommandKeyword02
 3763 04e6 0000      		.word	owiTemperatureCommandKeyword03
 3764 04e8 0000      		.word	owiTemperatureCommandKeyword04
 3765 04ea 0000      		.word	owiTemperatureCommandKeyword05
 3766 04ec 0000      		.word	owiTemperatureCommandKeyword06
 3769               	owiTemperatureCommandKeyword06:
 3770 04ee 7369 6E67 		.string	"single_parasitic_conv"
 3770      6C65 5F70 
 3770      6172 6173 
 3770      6974 6963 
 3770      5F63 6F6E 
 3773               	owiTemperatureCommandKeyword05:
 3774 0504 7265 736F 		.string	"resolution_DS18B20"
 3774      6C75 7469 
 3774      6F6E 5F44 
 3774      5331 3842 
 3774      3230 00
 3777               	owiTemperatureCommandKeyword04:
 3778 0517 666F 7263 		.string	"force_parasitic_mode"
 3778      655F 7061 
 3778      7261 7369 
 3778      7469 635F 
 3778      6D6F 6465 
 3781               	owiTemperatureCommandKeyword03:
 3782 052c 6D61 785F 		.string	"max_conv_time_ms"
 3782      636F 6E76 
 3782      5F74 696D 
 3782      655F 6D73 
 3782      00
 3785               	owiTemperatureCommandKeyword02:
 3786 053d 6967 6E6F 		.string	"ignore_conv_response"
 3786      7265 5F63 
 3786      6F6E 765F 
 3786      7265 7370 
 3786      6F6E 7365 
 3789               	owiTemperatureCommandKeyword01:
 3790 0552 6E6F 5F63 		.string	"no_convert"
 3790      6F6E 7665 
 3790      7274 00
 3793               	owiTemperatureCommandKeyword00:
 3794 055d 636F 6E76 		.string	"convert_only"
 3794      6572 745F 
 3794      6F6E 6C79 
 3794      00
 3795               	.global	owiTemperatureSensorBySensorParasiticConversionFlag
 3796               		.section .bss
 3799               	owiTemperatureSensorBySensorParasiticConversionFlag:
 3800 0000 00        		.zero	1
 3801               	.global	owiTemperatureResolution_DS18B20
 3802               		.data
 3805               	owiTemperatureResolution_DS18B20:
 3806 0000 0C        		.byte	12
 3807               	.global	owiTemperatureParasiticModeMask
 3810               	owiTemperatureParasiticModeMask:
 3811 0001 FF        		.byte	-1
 3812               	.global	owiTemperatureForceParasiticMode
 3813               		.section .bss
 3816               	owiTemperatureForceParasiticMode:
 3817 0001 00        		.zero	1
 3818               	.global	owiTemperatureMaxConversionTime
 3819               		.data
 3822               	owiTemperatureMaxConversionTime:
 3823 0002 EE02      		.word	750
 3824               	.global	owiTemperatureIgnoreConversionResponse
 3827               	owiTemperatureIgnoreConversionResponse:
 3828 0004 01        		.byte	1
 3829               	.global	owiTemperatureConversionGoingOnCountDown
 3830               		.section .bss
 3833               	owiTemperatureConversionGoingOnCountDown:
 3834 0002 00        		.zero	1
 3835               	.global	owiUseCommonTemperatureConversion_flag
 3836               		.data
 3839               	owiUseCommonTemperatureConversion_flag:
 3840 0005 01        		.byte	1
 3841               	.global	owiTemperatureTimeoutMask
 3844               	owiTemperatureTimeoutMask:
 3845 0006 FFFF      		.word	-1
 3846               	.global	p_owiTemperatureMask_DS18S20
 3849               	p_owiTemperatureMask_DS18S20:
 3850 0008 0000      		.word	owiTemperatureMask_DS18S20
 3851               	.global	owiTemperatureMask_DS18S20
 3852               		.section .bss
 3855               	owiTemperatureMask_DS18S20:
 3856 0003 0000      		.zero	2
 3857               	.global	p_owiTemperatureMask_DS18B20
 3858               		.data
 3861               	p_owiTemperatureMask_DS18B20:
 3862 000a 0000      		.word	owiTemperatureMask_DS18B20
 3863               	.global	owiTemperatureMask_DS18B20
 3864               		.section .bss
 3867               	owiTemperatureMask_DS18B20:
 3868 0005 0000      		.zero	2
 3869               	.global	owiTemperatureMask
 3872               	owiTemperatureMask:
 3873 0007 0000      		.zero	2
 3874               		.section	.progmem.data,"a",@progbits
 3877               	filename:
 3878 056a 6F6E 655F 		.string	"one_wire_temperature.c"
 3878      7769 7265 
 3878      5F74 656D 
 3878      7065 7261 
 3878      7475 7265 
 3879               		.comm	ErrorCodes,1,1
 3880               		.comm	canTimerInterval,4,1
 3906               		.text
 3908               	.Letext0:
 3909               		.ident	"GCC: (GNU) 4.8.1"
 3910               	.global __do_copy_data
 3911               	.global __do_clear_bss
DEFINED SYMBOLS
                            *ABS*:00000000 one_wire_temperature.c
     /tmp/cc2yanCU.s:2      *ABS*:0000003e __SP_H__
     /tmp/cc2yanCU.s:3      *ABS*:0000003d __SP_L__
     /tmp/cc2yanCU.s:4      *ABS*:0000003f __SREG__
     /tmp/cc2yanCU.s:5      *ABS*:0000003b __RAMPZ__
     /tmp/cc2yanCU.s:6      *ABS*:00000000 __tmp_reg__
     /tmp/cc2yanCU.s:7      *ABS*:00000001 __zero_reg__
     /tmp/cc2yanCU.s:161    .text:00000000 owiTemperatureReadSensorsCheckCommandSyntax
     /tmp/cc2yanCU.s:3742   .progmem.data:00000452 __c.3052
     /tmp/cc2yanCU.s:3738   .progmem.data:0000042f __c.3055
     /tmp/cc2yanCU.s:236    .text:00000058 owiTemperatureGetNumberOfDevicesAndSetTemperatureMask
     /tmp/cc2yanCU.s:3872   .bss:00000007 owiTemperatureMask
     /tmp/cc2yanCU.s:3861   .data:0000000a p_owiTemperatureMask_DS18B20
     /tmp/cc2yanCU.s:3734   .progmem.data:00000409 __c.3061
     /tmp/cc2yanCU.s:3877   .progmem.data:0000056a filename
     /tmp/cc2yanCU.s:3867   .bss:00000005 owiTemperatureMask_DS18B20
     /tmp/cc2yanCU.s:3855   .bss:00000003 owiTemperatureMask_DS18S20
     /tmp/cc2yanCU.s:3730   .progmem.data:000003f3 __c.3063
     /tmp/cc2yanCU.s:421    .text:00000194 owiTemperatureMiscSubCommandGetSetFlag
     /tmp/cc2yanCU.s:3726   .progmem.data:000003ee __c.3072
     /tmp/cc2yanCU.s:3722   .progmem.data:000003e8 __c.3074
     /tmp/cc2yanCU.s:3718   .progmem.data:000003e3 __c.3076
     /tmp/cc2yanCU.s:3714   .progmem.data:000003dd __c.3078
     /tmp/cc2yanCU.s:3710   .progmem.data:000003c1 __c.3083
     /tmp/cc2yanCU.s:652    .text:000002ea owiTemperatureMiscSubCommandGetSetStepByStepParasiticConversion
     /tmp/cc2yanCU.s:3759   .progmem.data:000004e0 owiTemperatureCommandKeywords
     /tmp/cc2yanCU.s:3799   .bss:00000000 owiTemperatureSensorBySensorParasiticConversionFlag
     /tmp/cc2yanCU.s:3706   .progmem.data:000003bb __c.3090
     /tmp/cc2yanCU.s:3702   .progmem.data:000003b4 __c.3092
     /tmp/cc2yanCU.s:3698   .progmem.data:00000398 __c.3097
     /tmp/cc2yanCU.s:792    .text:000003ae owiTemperatureMiscSubCommandGetSetForceParasiticMode
     /tmp/cc2yanCU.s:3816   .bss:00000001 owiTemperatureForceParasiticMode
     /tmp/cc2yanCU.s:3694   .progmem.data:00000392 __c.3104
     /tmp/cc2yanCU.s:3690   .progmem.data:0000038b __c.3106
     /tmp/cc2yanCU.s:3686   .progmem.data:0000036f __c.3111
     /tmp/cc2yanCU.s:932    .text:00000472 owiTemperatureMiscSubCommandGetSetMaxConversionTime
     /tmp/cc2yanCU.s:3822   .data:00000002 owiTemperatureMaxConversionTime
     /tmp/cc2yanCU.s:3682   .progmem.data:00000364 __c.3117
     /tmp/cc2yanCU.s:3678   .progmem.data:00000348 __c.3122
     /tmp/cc2yanCU.s:1081   .text:0000055a owiTemperatureMiscSubCommandGetSetResolution_DS18B20
     /tmp/cc2yanCU.s:3805   .data:00000000 owiTemperatureResolution_DS18B20
     /tmp/cc2yanCU.s:3674   .progmem.data:00000342 __c.3128
     /tmp/cc2yanCU.s:3670   .progmem.data:0000031d __c.3139
     /tmp/cc2yanCU.s:3666   .progmem.data:00000301 __c.3142
     /tmp/cc2yanCU.s:1280   .text:00000682 owiTemperatureConversionParasitic
     /tmp/cc2yanCU.s:1486   .text:00000764 owiTemperatureSensorBySensorParasiticConversion
     /tmp/cc2yanCU.s:1536   .text:00000780 owiTemperatureConversionEvaluateTimeoutFlag
     /tmp/cc2yanCU.s:3844   .data:00000006 owiTemperatureTimeoutMask
     /tmp/cc2yanCU.s:3580   .progmem.data:000000d4 __c.3257
     /tmp/cc2yanCU.s:3572   .progmem.data:000000a5 __c.3264
     /tmp/cc2yanCU.s:3576   .progmem.data:000000b5 __c.3259
     /tmp/cc2yanCU.s:3568   .progmem.data:00000082 __c.3266
     /tmp/cc2yanCU.s:1832   .text:00000972 owiTemperatureConversions
     /tmp/cc2yanCU.s:3630   .progmem.data:0000024e __c.3209
     /tmp/cc2yanCU.s:3810   .data:00000001 owiTemperatureParasiticModeMask
     /tmp/cc2yanCU.s:3626   .progmem.data:00000237 __c.3220
     /tmp/cc2yanCU.s:3839   .data:00000005 owiUseCommonTemperatureConversion_flag
     /tmp/cc2yanCU.s:3622   .progmem.data:000001fa __c.3224
     /tmp/cc2yanCU.s:3618   .progmem.data:000001cb __c.3226
     /tmp/cc2yanCU.s:3614   .progmem.data:000001a7 __c.3228
     /tmp/cc2yanCU.s:3610   .progmem.data:00000180 __c.3230
     /tmp/cc2yanCU.s:3606   .progmem.data:00000163 __c.3232
     /tmp/cc2yanCU.s:3602   .progmem.data:0000014d __c.3234
     /tmp/cc2yanCU.s:3598   .progmem.data:00000133 __c.3236
     /tmp/cc2yanCU.s:3593   .bss:0000000e maxcount.3215
     /tmp/cc2yanCU.s:3591   .bss:0000000a count.3214
                             .bss:00000009 timeout_flag.3213
     /tmp/cc2yanCU.s:3588   .progmem.data:0000011c __c.3238
     /tmp/cc2yanCU.s:3827   .data:00000004 owiTemperatureIgnoreConversionResponse
     /tmp/cc2yanCU.s:3833   .bss:00000002 owiTemperatureConversionGoingOnCountDown
     /tmp/cc2yanCU.s:3584   .progmem.data:000000ef __c.3247
     /tmp/cc2yanCU.s:2623   .text:00000eae owiTemperatureReadSensors
     /tmp/cc2yanCU.s:3754   .progmem.data:000004ac __c.3035
     /tmp/cc2yanCU.s:3750   .progmem.data:00000493 __c.3040
     /tmp/cc2yanCU.s:3746   .progmem.data:00000464 __c.3042
     /tmp/cc2yanCU.s:2861   .text:00001028 owiTemperatureMiscSubCommandConvertOnly
     /tmp/cc2yanCU.s:3662   .progmem.data:000002fb __c.3148
     /tmp/cc2yanCU.s:3658   .progmem.data:000002cc __c.3150
     /tmp/cc2yanCU.s:3654   .progmem.data:000002ca __c.3154
     /tmp/cc2yanCU.s:3650   .progmem.data:000002c4 __c.3156
     /tmp/cc2yanCU.s:3646   .progmem.data:00000295 __c.3158
     /tmp/cc2yanCU.s:3642   .progmem.data:00000279 __c.3161
     /tmp/cc2yanCU.s:3078   .text:00001178 owiTemperatureMiscSubCommands
     /tmp/cc2yanCU.s:3638   .progmem.data:00000260 __c.3171
     /tmp/cc2yanCU.s:3634   .progmem.data:0000024f __c.3178
     /tmp/cc2yanCU.s:3257   .text:00001234 owiTemperatureSensors
     /tmp/cc2yanCU.s:3287   .text:0000124c owiTemperatureReadSingleSensor
     /tmp/cc2yanCU.s:3564   .progmem.data:0000007c __c.3273
     /tmp/cc2yanCU.s:3560   .progmem.data:00000053 __c.3275
     /tmp/cc2yanCU.s:3556   .progmem.data:00000004 __c.3277
     /tmp/cc2yanCU.s:3552   .progmem.data:00000000 __c.3279
     /tmp/cc2yanCU.s:3793   .progmem.data:0000055d owiTemperatureCommandKeyword00
     /tmp/cc2yanCU.s:3789   .progmem.data:00000552 owiTemperatureCommandKeyword01
     /tmp/cc2yanCU.s:3785   .progmem.data:0000053d owiTemperatureCommandKeyword02
     /tmp/cc2yanCU.s:3781   .progmem.data:0000052c owiTemperatureCommandKeyword03
     /tmp/cc2yanCU.s:3777   .progmem.data:00000517 owiTemperatureCommandKeyword04
     /tmp/cc2yanCU.s:3773   .progmem.data:00000504 owiTemperatureCommandKeyword05
     /tmp/cc2yanCU.s:3769   .progmem.data:000004ee owiTemperatureCommandKeyword06
     /tmp/cc2yanCU.s:3849   .data:00000008 p_owiTemperatureMask_DS18S20
                            *COM*:00000001 ErrorCodes
                            *COM*:00000004 canTimerInterval

UNDEFINED SYMBOLS
ptr_owiStruct
CommunicationError_p
BUSES
owiReadDevicesID
NumDevicesFound
generalErrorCode
owiScanIDS
printDebug_p
uart_message_string
createReceiveHeader
setParameter
strncat
strncat_P
UART0_Send_Message_String_p
clearString
message
createExtendedSubCommandReceiveResponseHeader
snprintf_P
OWI_WriteBit1
OWI_WriteBit0ShortRelease
OWI_WriteBit0
countDEV
snprintf
owiFindParasitePoweredDevices
ptr_uartStruct
owiFindIdAndGetIndex
owiBusMask
generateCommonPinsPattern
checkBusAndDeviceActivityMasks
OWI_DetectPresence
OWI_SendByte
__udivmodhi4
OWI_ReadBit
owiFindFamilyDevicesAndAccessValues
apiFindCommandKeywordIndex
__tablejump2__
owi_id_string
OWI_MatchRom
OWI_ReceiveByte
__do_copy_data
__do_clear_bss
