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