giro for my students

Files at this revision

API Documentation at this revision

Comitter:
docent
Date:
Sat Feb 08 10:42:09 2020 +0000
Commit message:
for my students

Changed in this revision

L3G4200D_my.cpp Show annotated file Show diff for this revision Revisions of this file
L3G4200D_my.h Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/L3G4200D_my.cpp	Sat Feb 08 10:42:09 2020 +0000
@@ -0,0 +1,26 @@
+#include "L3G4200D_my.h"
+
+void GyroL3G4200D_Ini(DevI2C *gyro)
+{
+    char data_write[2];
+
+    wait(0.02);
+    data_write[0]=CTRL_REG1;  // DR1 DR0 BW1 BW0 PD Zen Yen Xen
+    data_write[1]=0x1f;       //  0   0   0   1  1   1   1   1    dr=100Hz, BW=25
+    gyro->write(I2C_ADDR_GYRO,data_write, 2,0); // 1-no stop
+}
+
+//-----------------------------------------------
+void GyroL3G4200D_GetAxis(DevI2C *gyro,int16_t* g)
+{
+    char data_write[2];
+    char  buffer[6];
+    
+    data_write[0]=OUT_X_L|0x80;
+    gyro->write(I2C_ADDR_GYRO,data_write, 1,1); // 1-no stop
+    gyro->read(I2C_ADDR_GYRO,buffer, 6,0);
+    g[0]=*((int16_t*)&buffer[0]);
+    g[1]=*((int16_t*)&buffer[2]);
+    g[2]=*((int16_t*)&buffer[4]); 
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/L3G4200D_my.h	Sat Feb 08 10:42:09 2020 +0000
@@ -0,0 +1,26 @@
+#ifndef __L3G4200D_MY_H
+#define __L3G4200D_MY_H
+
+#include "mbed.h"
+#include "DevI2C.h"
+
+#define I2C_ADDR_READ 0xd1
+#define I2C_ADDR_WRITE 0xd0
+#define I2C_ADDR_GYRO 0xd0
+
+#define CTRL_REG1 0x20
+#define CTRL_REG2 0x21
+#define CTRL_REG3 0x22
+#define CTRL_REG4 0x23
+#define CTRL_REG5 0x24
+#define STATUS_REG 0x27
+#define OUT_X_L   0x28
+#define OUT_X_H   0x29
+#define OUT_Y_L   0x2a
+#define OUT_Y_H   0x2b
+#define OUT_Z_L   0x2c
+#define OUT_Z_H   0x2d
+
+void GyroL3G4200D_Ini(DevI2C *gyro);
+void GyroL3G4200D_GetAxis(DevI2C *gyro,int16_t* g);
+#endif