Всё делается и работает на С при работе с DS18B20 "в лоб" - задержки делаются пустым циклом, либо можно разбить весь алгоритм работы с DS18B20 на элементарные функции, которые будут вызываться из прерывания по Compare через нужные микросекунды. Во втором случае код больше, но не тратятся ресурсы процессора на ожидание, задача выполняется в фоне сама по себе и складывает куда-нибудь готовый результат.