当前位置: 首页>>代码示例>>C++>>正文


C++ writeScratchPad函数代码示例

本文整理汇总了C++中writeScratchPad函数的典型用法代码示例。如果您正苦于以下问题:C++ writeScratchPad函数的具体用法?C++ writeScratchPad怎么用?C++ writeScratchPad使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了writeScratchPad函数的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: switch

// set resolution of a device to 9, 10, 11, or 12 bits
// if new resolution is out of range, 9 bits is used. 
bool DallasTemperature::setResolution(uint8_t* deviceAddress, uint8_t newResolution)
{
  ScratchPad scratchPad;
  if (isConnected(deviceAddress, scratchPad))
  {
    // DS18S20 has a fixed 9-bit resolution
    if (deviceAddress[0] != DS18S20MODEL)
    {
      switch (newResolution)
      {
        case 12:
          scratchPad[CONFIGURATION] = TEMP_12_BIT;
          break;
        case 11:
          scratchPad[CONFIGURATION] = TEMP_11_BIT;
          break;
        case 10:
          scratchPad[CONFIGURATION] = TEMP_10_BIT;
          break;
        case 9:
        default:
          scratchPad[CONFIGURATION] = TEMP_9_BIT;
          break;
      }
      writeScratchPad(deviceAddress, scratchPad);
    }
	return true;  // new value set
  }
  return false;
}
开发者ID:kdima001,项目名称:arduino-library,代码行数:32,代码来源:DallasTemperature.cpp

示例2: switch

bool DallasTemperature::setResolution(const uint8_t* deviceAddress, uint8_t newResolution) {
    ScratchPad scratchPad;
    if (readScratchPadCRC(deviceAddress, scratchPad)) {
        // DS18S20 has a fixed 9-bit resolution
        if (!isDS18S20Model(deviceAddress)) {
            uint8_t resolution;
#if REQUIRESONLY12BITCONVERSION
            resolution = TEMP_12_BIT;
#else						
            switch (newResolution) {
                case 12:
                    resolution = TEMP_12_BIT;
                    break;
                case 11:
                    resolution = TEMP_11_BIT;
                    break;
                case 10:
                    resolution = TEMP_10_BIT;
                    break;
                case 9:
                default:
                    resolution = TEMP_9_BIT;
                    break;
            }
#endif			
            scratchPad[CONFIGURATION] = resolution;
            writeScratchPad(deviceAddress, scratchPad, false);
        }
        return true; // new value set
    }
    return false;
}
开发者ID:etk29321,项目名称:BrewPi2-firmware,代码行数:32,代码来源:DallasTemperature.cpp

示例3: writeScratchPad

// note if device is not connected it will fail writing the data.
void DallasTemperature::setUserData(const uint8_t* deviceAddress, int16_t data)
{
    ScratchPad scratchPad;
    if (isConnected(deviceAddress, scratchPad))
    {
        scratchPad[HIGH_ALARM_TEMP] = data >> 8;
        scratchPad[LOW_ALARM_TEMP] = data & 255;
        writeScratchPad(deviceAddress, scratchPad);
    }
}
开发者ID:FernandoGarcia,项目名称:Ferduino_with_webcontrol_beta,代码行数:11,代码来源:DallasTemperature.cpp

示例4: if

void DallasTemperature::setLowAlarmTemp(const uint8_t* deviceAddress, char celsius) {
    // make sure the alarm temperature is within the device's range
    if (celsius > 125) celsius = 125;
    else if (celsius < -55) celsius = -55;

    ScratchPad scratchPad;
    if (readScratchPadCRC(deviceAddress, scratchPad)) {
        scratchPad[LOW_ALARM_TEMP] = (uint8_t) celsius;
        writeScratchPad(deviceAddress, scratchPad, true);
    }
}
开发者ID:etk29321,项目名称:BrewPi2-firmware,代码行数:11,代码来源:DallasTemperature.cpp

示例5: recallScratchpad

bool DallasTemperature::initConnection(const uint8_t* deviceAddress) {
#if REQUIRESRESETDETECTION
    ScratchPad scratchPad;
    bool writeSettings = false;

    if (isParasitePowered(deviceAddress)) {
        return false;
    }
    // Reload settings from EEPROM so we can skip writing EEPROM if the values are already set
    recallScratchpad(deviceAddress);
    if (!readScratchPadCRC(deviceAddress, scratchPad)) {
        return false;
    }

#if REQUIRESONLY12BITCONVERSION		
    if(scratchPad[CONFIGURATION] != TEMP_12_BIT){
        scratchPad[CONFIGURATION] = TEMP_12_BIT;
        writeSettings = true;
    }
#endif

    // Make sure that HIGH_ALARM_TEMP is set to zero in EEPROM
    // This value will be loaded on power on
    if (scratchPad[HIGH_ALARM_TEMP]) { // conditional to avoid wear on eeprom. 			
        scratchPad[HIGH_ALARM_TEMP] = 0;
        writeSettings = true;
    }

    if (writeSettings){
        writeScratchPad(deviceAddress, scratchPad, true); // save settings to eeprom
    }
    // Write HIGH_ALARM_TEMP again, but don't save to EEPROM, so that it reverts to 0 on reset
    // from this point on, if we read a scratchpad with a 0 value in HIGH_ALARM (detectedReset() returns true)
    // it means the device has reset or the previous write of the scratchpad above was unsuccessful.
    // Either way, initConnection() should be called again
    scratchPad[HIGH_ALARM_TEMP] = 1;
    writeScratchPad(deviceAddress, scratchPad, false); 
#endif
    return true;

}
开发者ID:etk29321,项目名称:BrewPi2-firmware,代码行数:41,代码来源:DallasTemperature.cpp

示例6: if

// sets the high alarm temperature for a device in degrees celsius
// accepts a float, but the alarm resolution will ignore anything
// after a decimal point.  valid range is -55C - 125C
void DallasTemperature::setHighAlarmTemp(uint8_t* deviceAddress, char celsius)
{
  // make sure the alarm temperature is within the device's range
  if (celsius > 125) celsius = 125;
  else if (celsius < -55) celsius = -55;

  ScratchPad scratchPad;
  if (isConnected(deviceAddress, scratchPad))
  {
    scratchPad[HIGH_ALARM_TEMP] = (uint8_t)celsius;
    writeScratchPad(deviceAddress, scratchPad);
  }
}
开发者ID:kdima001,项目名称:arduino-library,代码行数:16,代码来源:DallasTemperature.cpp

示例7: writeScratchPad

// note if device is not connected it will fail writing the data.
void DallasTemperature::setUserData(const uint8_t* deviceAddress, int16_t data)
{
    // return when stored value == new value
    if(getUserData(deviceAddress) == data) return;

    ScratchPad scratchPad;
    if (isConnected(deviceAddress, scratchPad))
    {
        scratchPad[HIGH_ALARM_TEMP] = data >> 8;
        scratchPad[LOW_ALARM_TEMP] = data & 255;
        writeScratchPad(deviceAddress, scratchPad);
    }
}
开发者ID:jakeloggins,项目名称:Clod-sketch-library,代码行数:14,代码来源:DallasTemperature.cpp

示例8: constrain

// set resolution of a device to 9, 10, 11, or 12 bits
// if new resolution is out of range, 9 bits is used.
bool DallasTemperature::setResolution(const uint8_t* deviceAddress, uint8_t newResolution, bool skipGlobalBitResolutionCalculation){

	// ensure same behavior as setResolution(uint8_t newResolution)
	newResolution = constrain(newResolution, 9, 12);
			
    // return when stored value == new value
    if(getResolution(deviceAddress) == newResolution) return true;

    ScratchPad scratchPad;
    if (isConnected(deviceAddress, scratchPad)){

        // DS1820 and DS18S20 have no resolution configuration register
        if (deviceAddress[0] != DS18S20MODEL){

            switch (newResolution){
            case 12:
                scratchPad[CONFIGURATION] = TEMP_12_BIT;
                break;
            case 11:
                scratchPad[CONFIGURATION] = TEMP_11_BIT;
                break;
            case 10:
                scratchPad[CONFIGURATION] = TEMP_10_BIT;
                break;
            case 9:
            default:
                scratchPad[CONFIGURATION] = TEMP_9_BIT;
                break;
            }
            writeScratchPad(deviceAddress, scratchPad);

            // without calculation we can always set it to max
			bitResolution = max(bitResolution, newResolution);
			
			if(!skipGlobalBitResolutionCalculation && (bitResolution > newResolution)){
				bitResolution = newResolution;
				DeviceAddress deviceAddr;
				for (int i=0; i<devices; i++)
				{
					getAddress(deviceAddr, i);
					bitResolution = max(bitResolution, getResolution(deviceAddr));
				}
			}
        }
        return true;  // new value set
    }

    return false;

}
开发者ID:jakeloggins,项目名称:Clod-sketch-library,代码行数:52,代码来源:DallasTemperature.cpp

示例9: if

// sets the low alarm temperature for a device in degrees Celsius
// accepts a float, but the alarm resolution will ignore anything
// after a decimal point.  valid range is -55C - 125C
void DallasTemperature::setLowAlarmTemp(const uint8_t* deviceAddress, char celsius){
    
    // return when stored value == new value
    if(getLowAlarmTemp(deviceAddress) == celsius) return;

    // make sure the alarm temperature is within the device's range
    if (celsius > 125) celsius = 125;
    else if (celsius < -55) celsius = -55;

    ScratchPad scratchPad;
    if (isConnected(deviceAddress, scratchPad)){
        scratchPad[LOW_ALARM_TEMP] = (uint8_t)celsius;
        writeScratchPad(deviceAddress, scratchPad);
    }

}
开发者ID:jakeloggins,项目名称:Clod-sketch-library,代码行数:19,代码来源:DallasTemperature.cpp


注:本文中的writeScratchPad函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。