From be76990656840614230e406f88a8d99c1d81cc6a Mon Sep 17 00:00:00 2001 From: Bernhard Tittelbach Date: Sun, 4 Aug 2013 03:12:29 +0000 Subject: ds1820 onewire lib git-svn-id: https://svn.spreadspace.org/avr/trunk@214 aa12f405-d877-488e-9caf-2d797e2a1cc7 --- usb-1wire/usb-1wire.c | 138 +++++++++++++------------------------------------- 1 file changed, 35 insertions(+), 103 deletions(-) (limited to 'usb-1wire/usb-1wire.c') diff --git a/usb-1wire/usb-1wire.c b/usb-1wire/usb-1wire.c index 4480a0a..e96100f 100644 --- a/usb-1wire/usb-1wire.c +++ b/usb-1wire/usb-1wire.c @@ -33,28 +33,28 @@ #include "led.h" #include "usbio.h" +#define MAX_OWI_DEVICES 8 + #include "onewire.h" +#include "ds1820.h" -#define MAX_OWI_DEVICES 3 uint8_t owi_addr_[MAX_OWI_DEVICES][8]; -uint8_t num_owi_dev_found_; +uint8_t num_owi_dev_found_ = 0; +uint8_t num_temp_sensors_ = 0; void discoverOWIBus(void) { uint8_t d=0; led_on(); - printf("Searching OW Bus "); + printf("Searching 1W Bus "); num_owi_dev_found_ = 0; if (owi_reset()) printf(" !something is there! "); owi_reset_search(); _delay_ms(250); - //Search only for DS1820 temp sensors - owi_target_search(DS1820_FAMILY_ID); - while ( owi_search(owi_addr_[ d ])) { d++; @@ -81,113 +81,45 @@ void discoverOWIBus(void) led_off(); } -void tempToUSB(uint8_t resolution) +void tempToUSB(uint8_t bit_resolution) { - uint8_t data[9]; - int16_t celsius = 0; - int16_t raw = 0; - uint8_t type_s, cfg; - uint8_t d=0; - uint8_t cfg_res=12; - uint8_t crc_result = 0; + uint8_t sensor_index = 0; + uint16_t raw_temp = 0; + double temp=0.0; led_on(); - owi_reset(); - //we assume we do NOT use parasitic power, so we can issue - //commands while other sensors are already busy converting - for (d=0; d