void DallasTemperature::blockTillConversionComplete(uint8_t* bitResolution, uint8_t* deviceAddress) { if(deviceAddress != 0 && checkForConversion && !parasite) { // Continue to check if the IC has responded with a temperature // NB: Could cause issues with multiple devices (one device may respond faster) unsigned long start = millis(); while(!isConversionAvailable(0) && ((millis() - start) < 750)); } // Wait a fix number of cycles till conversion is complete (based on IC datasheet) switch (*bitResolution) { case 9: delay(94); break; case 10: delay(188); break; case 11: delay(375); break; case 12: default: delay(750); break; } }
void DallasTemperature::blockTillConversionComplete(uint8_t bitResolution, const uint8_t* deviceAddress) { int delms = millisToWaitForConversion(bitResolution); if (deviceAddress != NULL && checkForConversion && !isParasitePowerMode()) { unsigned long timend = millis() + delms; while (!isConversionAvailable(deviceAddress) && (ticks.millis() < timend)); } else { wait.millis(delms); } }
// Continue to check if the IC has responded with a temperature void DallasTemperature::blockTillConversionComplete(uint8_t bitResolution, const uint8_t* deviceAddress){ int delms = millisToWaitForConversion(bitResolution); if (deviceAddress != NULL && checkForConversion && !parasite){ unsigned long now = millis(); while(!isConversionAvailable(deviceAddress) && (millis() - delms < now)); } else { delay(delms); } }