#include <util/delay.h>
#include <avr/interrupt.h>
#include <util/atomic.h>
#include "onewire.h"
#include "ds18x20.h"
return 1;
} else {
if (parasitic_power) {
uint8_t sreg_tmp=SREG; cli();
ONEWIRE_STRONG_PU_ON
SREG = sreg_tmp;
} else {
}
}
return 0;
}
int16_t temp;
uint8_t scratchpad[9];
uint8_t rc;
if (rc) {
return ONEWIRE_CRC_ERROR;
}
temp = ((int16_t)scratchpad[1] << 8) | scratchpad[0];
temp = (temp * 10) >> 4;
*temperature = temp;
return ONEWIRE_OK;
}
int16_t temp;
uint8_t scratchpad[9];
uint8_t rc;
if (rc) {
return ONEWIRE_CRC_ERROR;
}
temp = ((int16_t)scratchpad[1] << 8) | scratchpad[0];
temp &= ~1;
temp <<= 3;
temp = temp - 4 + (16-scratchpad[6]);
temp = (temp * 10) >> 4;
*temperature = temp;
return ONEWIRE_OK;
}
uint8_t i;
for (i=0; i<9; i++) {
}
}
}
}
if (parasitic_power) {
uint8_t sreg_tmp=SREG; cli();
ONEWIRE_STRONG_PU_ON
SREG = sreg_tmp;
} else {
}
_delay_ms(10);
ONEWIRE_STRONG_PU_OFF
}
_delay_ms(1);
}
}