summaryrefslogtreecommitdiff
path: root/arduino_libs_1_0/I2C/examples
diff options
context:
space:
mode:
authorTim Redfern <tim@eclectronics.org>2012-01-18 18:02:10 +0000
committerTim Redfern <tim@eclectronics.org>2012-01-18 18:02:10 +0000
commit8c3efb592b16b672fc353368c04d88d3a32cf1a2 (patch)
tree9cf4887292432c656651012c5370009b4a69cddf /arduino_libs_1_0/I2C/examples
parentfe92239d966f0219e8b7caf6335a776938b4e0e3 (diff)
updated previous demo to Arduino 1.0HEADmaster
Diffstat (limited to 'arduino_libs_1_0/I2C/examples')
-rw-r--r--arduino_libs_1_0/I2C/examples/HMC5883L/HMC5883L.pde70
1 files changed, 70 insertions, 0 deletions
diff --git a/arduino_libs_1_0/I2C/examples/HMC5883L/HMC5883L.pde b/arduino_libs_1_0/I2C/examples/HMC5883L/HMC5883L.pde
new file mode 100644
index 0000000..806e749
--- /dev/null
+++ b/arduino_libs_1_0/I2C/examples/HMC5883L/HMC5883L.pde
@@ -0,0 +1,70 @@
+/*******************************************
+ Sample sketch that configures an HMC5883L 3 axis
+ magnetometer to continuous mode and reads back
+ the three axis of data.
+ Code compiles to a size of 1500 bytes
+ Equivalent Wire Library code compiles to 2032 bytes
+ *******************************************/
+
+#include <I2C.h>
+
+#define HMC5883L 0x1E
+
+int x = 0;
+int y = 0;
+int z = 0;
+
+
+void setup()
+{
+ I2c.begin();
+ I2c.write(HMC5883L,0x02,0x00); //configure device for continuous mode
+}
+
+void loop()
+{
+ I2c.read(HMC5883L,0x03,6); //read 6 bytes (x,y,z) from the device
+ x = I2c.receive() << 8;
+ x |= I2c.receive();
+ y = I2c.receive() << 8;
+ y |= I2c.receive();
+ z = I2c.receive() << 8;
+ z |= I2c.receive();
+}
+
+
+/* Wire library equivalent would be this
+
+//#include <Wire.h>
+
+#define HMC5883L 0x1E
+
+int x = 0;
+int y = 0;
+int z = 0;
+
+
+void setup()
+{
+ Wire.begin();
+ Wire.beginTransmission(HMC5883L);
+ Wire.send(0x02);
+ Wire.send(0x00);
+ Wire.endTransmission();
+}
+
+void loop()
+{
+ Wire.beginTransmission(HMC5883L);
+ Wire.send(0x03);
+ Wire.endTransmission();
+ Wire.requestFrom(HMC5883L,6);
+ x = Wire.receive() << 8;
+ x |= Wire.receive();
+ y = Wire.receive() << 8;
+ y |= Wire.receive();
+ z = Wire.receive() << 8;
+ z |= Wire.receive();
+}
+
+********************************************/