I have a HMC5843 that I can get the reading from just fine. The x y z values adjust and print as I move the sensor around.
I wanted to find out what are the min and max values from x, y, and z over time.
Here is my code which is failing. I have for xyz, the min max, and also val variables. I setup the [xyz]val variables to store copies of what is read from the HMC.getValues function as that function from the sample code used pointers and I wanted to rule pointers out as the possible cause of the min max failing.
#include <HMC.h>
int xmin = 0;
int xmax = 0;
int ymin = 0;
int ymax = 0;
int zmin = 0;
int zmax = 0;
int xval = 0;
int yval = 0;
int zval = 0;
void setup()
{
Serial.begin(115200);
delay(300); // The HMC5843 needs 5ms before it will communicate
HMC.init();
}
void loop()
{
int x,y,z;
delay(1000); // There will be new values every 100ms
HMC.getValues(&x,&y,&z);;
Serial.print("x:");
Serial.print(x);
Serial.print(" y:");
Serial.print(y);
Serial.print(" z:");
Serial.println(z);
xval = x;
yval = y;
zval = z;
Serial.print("x:");
Serial.print(xval);
Serial.print(" y:");
Serial.print(yval);
Serial.print(" z:");
Serial.println(zval);
xmin = min(xmin, x);
xmax = max(xmax, x);
ymin = min(xmin, y);
ymax = max(xmax, y);
zmin = min(xmin, z);
zmax = max(xmax, z);
Serial.print("x min: ");
Serial.print(xmin);
Serial.print(", max: ");
Serial.println(xmax);
Serial.print("y min: ");
Serial.print(ymin);
Serial.print(", max:");
Serial.println(ymax);
Serial.print("z min: ");
Serial.print(zmin);
Serial.print(", max:");
Serial.println(zmax);
Serial.println("");
}
Look at the y max value from sample output that has me confused. It should never go down. right?
x:-118 y:28 z:-627
x:-118 y:28 z:-627
x min: -118, max: 0
y min: -118, max:28
z min: -627, max:0
x:-116 y:30 z:-618
x:-116 y:30 z:-618
x min: -118, max: 0
y min: -118, max:30
z min: -618, max:0
x:-117 y:28 z:-620
x:-117 y:28 z:-620
x min: -118, max: 0
y min: -118, max:28
z min: -620, max:0
x:-117 y:34 z:-620
x:-117 y:34 z:-620
x min: -118, max: 0
y min: -118, max:34
z min: -620, max:0
x:-114 y:33 z:-622
x:-114 y:33 z:-622
x min: -118, max: 0
y min: -118, max:33
z min: -622, max:0
x:-117 y:28 z:-625
x:-117 y:28 z:-625
x min: -118, max: 0
y min: -118, max:28
z min: -625, max:0
x:-116 y:29 z:-621
x:-116 y:29 z:-621
x min: -118, max: 0
y min: -118, max:29
z min: -621, max:0
x:-117 y:29 z:-621
x:-117 y:29 z:-621
x min: -118, max: 0
y min: -118, max:29
z min: -621, max:0
x:-117 y:29 z:-615
x:-117 y:29 z:-615
x min: -118, max: 0
y min: -118, max:29
z min: -615, max:0
x:-116 y:32 z:-620
x:-116 y:32 z:-620
x min: -118, max: 0
y min: -118, max:32
z min: -620, max:0
x:-118 y:29 z:-622
x:-118 y:29 z:-622
x min: -118, max: 0
y min: -118, max:29
z min: -622, max:0
x:-116 y:32 z:-619
x:-116 y:32 z:-619
x min: -118, max: 0
y min: -118, max:32
z min: -619, max:0
x:-116 y:31 z:-622
x:-116 y:31 z:-622
x min: -118, max: 0
y min: -118, max:31
z min: -622, max:0
x:-55 y:43 z:-624
x:-55 y:43 z:-624
x min: -118, max: 0
y min: -118, max:43
z min: -624, max:0
x:-127 y:-65 z:-617
x:-127 y:-65 z:-617
x min: -127, max: 0
y min: -127, max:0
z min: -617, max:0
x:-157 y:-167 z:-598
x:-157 y:-167 z:-598
x min: -157, max: 0
y min: -167, max:0
z min: -598, max:0
x:-159 y:-171 z:-593
x:-159 y:-171 z:-593
x min: -159, max: 0
y min: -171, max:0
z min: -593, max:0
x:-121 y:-220 z:-588
x:-121 y:-220 z:-588
x min: -159, max: 0
y min: -220, max:0
z min: -588, max:0
x:-120 y:-217 z:-588
x:-120 y:-217 z:-588
x min: -159, max: 0
y min: -217, max:0
z min: -588, max:0
x:-123 y:-216 z:-590
x:-123 y:-216 z:-590
x min: -159, max: 0
y min: -216, max:0
z min: -590, max:0
x:-124 y:-219 z:-587
x:-124 y:-219 z:-587
x min: -159, max: 0
y min: -219, max:0
z min: -587, max:0
x:-125 y:-219 z:-582
x:-125 y:-219 z:-582
x min: -159, max: 0
y min: -219, max:0
z min: -582, max:0
x:-128 y:-219 z:-586
x:-128 y:-219 z:-586
x min: -159, max: 0
y min: -219, max:0
z min: -586, max:0
x:-123 y:-220 z:-586
x:-123 y:-220 z:-586
x min: -159, max: 0
y min: -220, max:0
z min: -586, max:0
x:-129 y:-222 z:-582
x:-129 y:-222 z:-582
x min: -159, max: 0
y min: -222, max:0
z min: -582, max:0
x:-130 y:-225 z:-584
x:-130 y:-225 z:-584
x min: -159, max: 0
y min: -225, max:0
z min: -584, max:0
The min values should only go lower, and the max values should only go higher... I don't get it.