| 35 | |
| 36 | |
| 37 | bool DS18B20_INT::begin(uint8_t retries) |
| 38 | { |
| 39 | _addressFound = false; |
| 40 | for (uint8_t rtr = retries; (rtr > 0) && (_addressFound == false); rtr--) |
| 41 | { |
| 42 | _oneWire->reset(); |
| 43 | _oneWire->reset_search(); |
| 44 | _deviceAddress[0] = 0x00; |
| 45 | _oneWire->search(_deviceAddress); |
| 46 | _addressFound = _deviceAddress[0] != 0x00 && |
| 47 | _oneWire->crc8(_deviceAddress, 7) == _deviceAddress[7]; |
| 48 | } |
| 49 | |
| 50 | if (_addressFound) |
| 51 | { |
| 52 | _oneWire->reset(); |
| 53 | _oneWire->select(_deviceAddress); |
| 54 | _oneWire->write(WRITESCRATCH); |
| 55 | // two dummy values for LOW & HIGH ALARM |
| 56 | _oneWire->write(0); |
| 57 | _oneWire->write(100); |
| 58 | _oneWire->write(_resolution); // lowest as we do only integer math. |
| 59 | _oneWire->reset(); |
| 60 | } |
| 61 | return _addressFound; |
| 62 | } |
| 63 | |
| 64 | |
| 65 | void DS18B20_INT::requestTemperatures(void) |