資源簡介
NULL
博文鏈接:https://yiqieanhao.iteye.com/blog/1744598

代碼片段和文件信息
//?This?library?is?free?software;?you?can?redistribute?it?and/or
//?modify?it?under?the?terms?of?the?GNU?Lesser?General?Public
//?License?as?published?by?the?Free?Software?Foundation;?either
//?version?2.1?of?the?License?or?(at?your?option)?any?later?version.
//?Version?3.7.2?modified?on?Dec?6?2011?to?support?Arduino?1.0
//?See?Includes...
//?Modified?by?Jordan?Hochenbaum
#include?“DallasTemperature.h“
#if?ARDUINO?>=?100
????#include?“Arduino.h“???
#else
extern?“C“?{
????#include?“WConstants.h“
}
#endif
DallasTemperature::DallasTemperature(OneWire*?_oneWire)
??#if?REQUIRESALARMS
??:?_AlarmHandler(&defaultAlarmHandler)
??#endif
{
??_wire?=?_oneWire;
??devices?=?0;
??parasite?=?false;
??bitResolution?=?9;
??waitForConversion?=?true;
??checkForConversion?=?true;
}
//?initialise?the?bus
void?DallasTemperature::begin(void)
{
??DeviceAddress?deviceAddress;
??_wire->reset_search();
??devices?=?0;?//?Reset?the?number?of?devices?when?we?enumerate?wire?devices
??while?(_wire->search(deviceAddress))
??{
????if?(validAddress(deviceAddress))
????{
??????if?(!parasite?&&?readPowerSupply(deviceAddress))?parasite?=?true;
??????ScratchPad?scratchPad;
??????readScratchPad(deviceAddress?scratchPad);
??bitResolution?=?max(bitResolution?getResolution(deviceAddress));
??????devices++;
????}
??}
}
//?returns?the?number?of?devices?found?on?the?bus
uint8_t?DallasTemperature::getDeviceCount(void)
{
??return?devices;
}
//?returns?true?if?address?is?valid
bool?DallasTemperature::validAddress(uint8_t*?deviceAddress)
{
??return?(_wire->crc8(deviceAddress?7)?==?deviceAddress[7]);
}
//?finds?an?address?at?a?given?index?on?the?bus
//?returns?true?if?the?device?was?found
bool?DallasTemperature::getAddress(uint8_t*?deviceAddress?uint8_t?index)
{
??uint8_t?depth?=?0;
??_wire->reset_search();
??while?(depth?<=?index?&&?_wire->search(deviceAddress))
??{
????if?(depth?==?index?&&?validAddress(deviceAddress))?return?true;
????depth++;
??}
??return?false;
}
//?attempt?to?determine?if?the?device?at?the?given?address?is?connected?to?the?bus
bool?DallasTemperature::isConnected(uint8_t*?deviceAddress)
{
??ScratchPad?scratchPad;
??return?isConnected(deviceAddress?scratchPad);
}
//?attempt?to?determine?if?the?device?at?the?given?address?is?connected?to?the?bus
//?also?allows?for?updating?the?read?scratchpad
bool?DallasTemperature::isConnected(uint8_t*?deviceAddress?uint8_t*?scratchPad)
{
??readScratchPad(deviceAddress?scratchPad);
??return?(_wire->crc8(scratchPad?8)?==?scratchPad[SCRATCHPAD_CRC]);
}
//?read?device‘s?scratch?pad
void?DallasTemperature::readScratchPad(uint8_t*?deviceAddress?uint8_t*?scratchPad)
{
??//?send?the?command
??_wire->reset();
??_wire->select(deviceAddress);
??_wire->write(READSCRATCH);
??//?TODO?=>?collect?all?comments?&??use?simple?loop
??//?byte?0:?temperature?LSB??
??//?byte?1:?temperature?MSB
??//?byte?2:?high?alarm?temp
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????3961??2011-12-11?15:44??dallasTemperatureControl\change.txt
?????文件??????21604??2011-12-11?15:44??dallasTemperatureControl\DallasTemperature.cpp
?????文件???????6795??2011-12-11?15:44??dallasTemperatureControl\DallasTemperature.h
?????文件???????4326??2011-12-11?15:44??dallasTemperatureControl\examples\Alarm\Alarm.pde
?????文件???????3899??2011-12-11?15:44??dallasTemperatureControl\examples\AlarmHandler\AlarmHandler.pde
?????文件???????4767??2011-12-11?15:44??dallasTemperatureControl\examples\Multiple\Multiple.pde
?????文件????????928??2011-12-11?15:44??dallasTemperatureControl\examples\Simple\Simple.pde
?????文件???????3992??2011-12-11?15:44??dallasTemperatureControl\examples\Single\Single.pde
?????文件???????3674??2011-12-11?15:44??dallasTemperatureControl\examples\Tester\Tester.pde
?????文件???????1916??2011-12-11?15:44??dallasTemperatureControl\examples\WaitForConversion\WaitForConversion.pde
?????文件???????2128??2011-12-11?15:44??dallasTemperatureControl\examples\WaitForConversion2\WaitForConversion2.pde
?????文件???????1351??2011-12-11?15:44??dallasTemperatureControl\keywords.txt
?????文件???????1916??2011-12-11?15:44??dallasTemperatureControl\README.TXT
?????文件???????2763??2011-10-29?12:18??OneWire\examples\DS18x20_Temperature\DS18x20_Temperature.pde
?????文件???????1907??2011-10-29?03:03??OneWire\examples\DS2408_Switch\DS2408_Switch.pde
?????文件???????4099??2011-10-29?01:51??OneWire\examples\DS250x_PROM\DS250x_PROM.pde
?????文件????????819??2011-10-29?03:39??OneWire\keywords.txt
?????文件??????16361??2011-11-01?11:52??OneWire\OneWire.cpp
?????文件???????7206??2011-11-01?11:52??OneWire\OneWire.h
?????目錄??????????0??2012-12-08?17:23??dallasTemperatureControl\examples\Alarm
?????目錄??????????0??2012-12-08?17:23??dallasTemperatureControl\examples\AlarmHandler
?????目錄??????????0??2012-12-08?17:23??dallasTemperatureControl\examples\Multiple
?????目錄??????????0??2012-12-08?17:23??dallasTemperatureControl\examples\Simple
?????目錄??????????0??2012-12-08?17:23??dallasTemperatureControl\examples\Single
?????目錄??????????0??2012-12-08?17:23??dallasTemperatureControl\examples\Tester
?????目錄??????????0??2012-12-08?17:23??dallasTemperatureControl\examples\WaitForConversion
?????目錄??????????0??2012-12-08?17:23??dallasTemperatureControl\examples\WaitForConversion2
?????目錄??????????0??2012-12-08?17:20??OneWire\examples\DS18x20_Temperature
?????目錄??????????0??2012-12-08?17:20??OneWire\examples\DS2408_Switch
?????目錄??????????0??2012-12-08?17:20??OneWire\examples\DS250x_PROM
............此處省略7個文件信息
評論
共有 條評論