From eaa16b313bdda3cda7c8922a84863e705ce1eb34 Mon Sep 17 00:00:00 2001 From: Manohar Vanga <manohar.vanga@cern.ch> Date: Thu, 24 Nov 2011 14:59:51 +0100 Subject: [PATCH] simulation: fix temperature readings of ds18b20 chip Signed-off-by: Manohar Vanga <manohar.vanga@cern.ch> --- simulation/test/test1w.c | 3 ++- simulation/wb_onewire.c | 6 +++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/simulation/test/test1w.c b/simulation/test/test1w.c index 0bc16d4..eda81b8 100644 --- a/simulation/test/test1w.c +++ b/simulation/test/test1w.c @@ -37,7 +37,8 @@ int main(int argc, char *argv[]) return ret; } - printf("Temp: %08x\n", a.temp/16.0); + printf("Temp RAW: %08x\n", a.temp); + printf("Temp: %08f\n", a.temp/16.0); close(fd); return 0; diff --git a/simulation/wb_onewire.c b/simulation/wb_onewire.c index 3746ac6..f684aa9 100644 --- a/simulation/wb_onewire.c +++ b/simulation/wb_onewire.c @@ -135,7 +135,7 @@ void ds18b20_read_serial(struct wb_onewire_dev *dev, int port, uint8_t *sbuf) wb_onewire_reset(dev, port); wb_onewire_writebyte(dev, port, 0x33); sbuf[0] = wb_onewire_readbyte(dev, port); - for (i = 6; i >= 1; i--) + for (i = 1; i <= 6; i++) sbuf[i] = wb_onewire_readbyte(dev, port); sbuf[7] = wb_onewire_readbyte(dev, port); } @@ -158,7 +158,7 @@ int ds18b20_read_temp(struct wb_onewire_dev *dev, int port, uint8_t *serial) int temp; ds18b20_access(dev, port, serial); printk("serial: "); - for (i = 0; i < 8; i++) + for (i = 7; i >= 0; i--) printk("%02x ", serial[i]); printk("\n"); wb_onewire_writebyte(dev, port, 0x44); @@ -168,7 +168,7 @@ int ds18b20_read_temp(struct wb_onewire_dev *dev, int port, uint8_t *serial) wb_onewire_writebyte(dev, port, 0xbe); wb_onewire_readblock(dev, port, data, 9); printk("data: "); - for (i = 0; i < 9; i++) + for (i = 8; i >= 0; i--) printk("%2x ", data[i]); printk("\n"); temp = (data[1] << 8) | data[0]; -- GitLab