DS18B20 temperature sensor problem

ok started over with the programming. now im using ...

// LCD Thermostat
// www.hacktronics.com

#include <OneWire.h>
#include <LiquidCrystal.h>

// Connections:
// rs (LCD pin 4) to Arduino pin 12
// rw (LCD pin 5) to Arduino pin 11
// enable (LCD pin 6) to Arduino pin 10
// LCD pin 15 to Arduino pin 13
// LCD pins d4, d5, d6, d7 to Arduino pins 5, 4, 3, 2
LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);
int backLight = 13; // pin 13 will control the backlight

OneWire ds(8); // ds18b20 pin #2 (middle pin) to Arduino pin 8

byte i;
byte present = 0;
byte data[12];
byte addr[8];

int HighByte, LowByte, SignBit, Whole, Fract, TReading, Tc_100, FWhole;

void setup(void) {
pinMode(backLight, OUTPUT);
digitalWrite(backLight, HIGH); // turn backlight on. Replace 'HIGH' with 'LOW' to turn it off.
lcd.begin(2,16); // rows, columns. use 2,16 for a 2x16 LCD, etc.
lcd.clear(); // start with a blank screen
lcd.setCursor(0,0); // set cursor to column 0, row 0

if ( !ds.search(addr)) {
lcd.clear(); lcd.print("No more addrs");
delay(1000);
ds.reset_search();
return;
}

if ( OneWire::crc8( addr, 7) != addr[7]) {
lcd.clear(); lcd.print("CRC not valid!");
delay(1000);
return;
}
}

void getTemp() {
int foo, bar;

ds.reset();
ds.select(addr);
ds.write(0x44,1);

present = ds.reset();
ds.select(addr);
ds.write(0xBE);

for ( i = 0; i < 9; i++) {
data = ds.read();

  • }*

  • LowByte = data[0];*

  • HighByte = data[1];*

  • TReading = (HighByte << 8) + LowByte;*

  • SignBit = TReading & 0x8000; // test most sig bit*

  • if (SignBit) {*

  • TReading = -TReading;*

  • }*
    Tc_100 = (6 * TReading) + TReading / 4; // multiply by (100 * 0.0625) or 6.25

  • Whole = Tc_100 / 100; // separate off the whole and fractional portions*

  • Fract = Tc_100 % 100;*

  • if (Fract > 49) {*

  • if (SignBit) {*

  • --Whole;*

  • } else {*

  • ++Whole;*

  • }*

  • }*

  • if (SignBit) {*

  • bar = -1;*

  • } else {*

  • bar = 1;*

  • }*
    _ foo = ((Whole * bar) * 18); // celsius to fahrenheit conversion section_
    _ FWhole = (((Whole * bar) * 18) / 10) + 32;_

  • if ((foo % 10) > 4) { // round up if needed*

  • ++FWhole;*

  • }*
    }
    void printTemp(void) {

  • lcd.clear();*

  • lcd.setCursor(0,0);*

  • lcd.print("Temp is: ");*

  • lcd.setCursor(0,1); *

  • if (SignBit) { *

  • lcd.print("-");*

  • }*

  • lcd.print(Whole);*

  • lcd.print(" C / ");*

  • lcd.print(FWhole);*

  • lcd.print(" F");*
    }
    void loop(void) {

  • getTemp();*

  • printTemp();*

  • delay(1000);*
    }[/quote]
    and everything is working fine except the lcd always says "Temp is: 85C / 185F "
    no matter what i do am i overlooking something in the coding