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


C++ HMC5883L::setOffset方法代码示例

本文整理汇总了C++中HMC5883L::setOffset方法的典型用法代码示例。如果您正苦于以下问题:C++ HMC5883L::setOffset方法的具体用法?C++ HMC5883L::setOffset怎么用?C++ HMC5883L::setOffset使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在HMC5883L的用法示例。


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

示例1: loadCompassOffset

void loadCompassOffset()
{
    byte high,low;
    uint addr = CompassStorageAddr;
    int offsetX,offsetY;

    Wire.begin();
    compass.setRange(HMC5883L_RANGE_1_3GA);
    compass.setMeasurementMode(HMC5883L_CONTINOUS);
    compass.setDataRate(HMC5883L_DATARATE_30HZ);
    compass.setSamples(HMC5883L_SAMPLES_8);

    offsetX = EEPROM_readInt(addr);
    addr += 2;
    offsetY = EEPROM_readInt(addr);

    compass.setOffset(offsetX,offsetY);

#ifdef DEBUG
    debugSerial.print("Compass Offset:");
    debugSerial.print(offsetX);
    debugSerial.print(" | ");
    debugSerial.print(offsetY);
    debugSerial.print("\n");
#endif // DEBUG
}
开发者ID:xxzl0130,项目名称:Football,代码行数:26,代码来源:DefendMain.cpp

示例2: setCompassOffset

void setCompassOffset()
{
#ifdef DEBUG
    debugSerial.println("setCompassOffset");
#endif
    Wire.begin();
    compass.setRange(HMC5883L_RANGE_1_3GA);
    compass.setMeasurementMode(HMC5883L_CONTINOUS);
    compass.setDataRate(HMC5883L_DATARATE_30HZ);
    compass.setSamples(HMC5883L_SAMPLES_8);

    int minX = INT_MAX,maxX = INT_MIN,minY = INT_MAX,maxY = INT_MIN;
    int offsetX,offsetY;

    motor.rotateRun(FORWORD, 128);
    delay(200);
#ifdef DEBUG
    debugSerial.println("setCompassOffset2");
#endif
    for(int i = 0; i < 500; ++i)
    {
        Vector mag = compass.readRaw();

        maxX = max(maxX,mag.XAxis);
        maxY = max(maxY,mag.XAxis);

        minX = min(minX,mag.XAxis);
        minY = min(minY,mag.XAxis);

        delay(20);
#ifdef DEBUG
        debugSerial.println(i);
#endif // DEBUG
    }

    motor.stop();

    offsetX = (maxX + minX) / 2;
    offsetY = (maxY + minY) / 2;

    uint addr = CompassStorageAddr;

    EEPROM_writeInt(addr,offsetX);
    addr += 2;
    EEPROM_writeInt(addr,offsetY);
    addr += 2;

    compass.setOffset(offsetX,offsetY);

#ifdef DEBUG
    debugSerial.print("Compass Offset:");
    debugSerial.print(offsetX);
    debugSerial.print(" | ");
    debugSerial.print(offsetY);
    debugSerial.print("\n");
#endif // DEBUG
}
开发者ID:xxzl0130,项目名称:Football,代码行数:57,代码来源:DefendMain.cpp


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