APP Team / Mbed 2 deprecated projet_accel

Dependencies:   mbed-rtos mbed

Files at this revision

API Documentation at this revision

Comitter:
trixrabbit
Date:
Thu Mar 20 13:16:01 2014 +0000
Commit message:
20 mars cours de projet

Changed in this revision

collector.cpp Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
main.h Show annotated file Show diff for this revision Revisions of this file
mbed-rtos.lib Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r 1e7ffdb6d1db collector.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/collector.cpp	Thu Mar 20 13:16:01 2014 +0000
@@ -0,0 +1,37 @@
+#include "main.h"
+
+DigitalIn bouton(p7); 
+int x,y,z,c; 
+bool release;
+std::vector<int> x_array;
+std::vector<int> y_array;
+std::vector<int> z_array;
+
+Serial pc(USBTX, USBRX);    // PC serial communication 
+
+void collector_thread(void const *args)
+{
+        while(1)
+        {
+            if(bouton)
+            {
+            
+            release = true;
+            x_array[c] = getAccelValue(OUT_X_MSB); 
+            y_array[c]= getAccelValue(OUT_Y_MSB); 
+            z_array[c]= getAccelValue(OUT_Z_MSB);
+            c++;
+            }
+          else{
+              if(release == true)
+                 {
+                  
+                  pc.printf("bouton release");
+                    
+                  pc.printf("d% ", x_array[0]);
+                  release = false;
+                  c = 0;
+                 }
+              }
+      }
+}
diff -r 000000000000 -r 1e7ffdb6d1db main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Thu Mar 20 13:16:01 2014 +0000
@@ -0,0 +1,102 @@
+#include "main.h"
+  
+DigitalOut cs(p14);         // Digital output used for the ship select control. 
+DigitalOut myled(LED1);     //LED 
+SPI spi(p11, p12, p13);     // SPI port (mosi, miso, sclk) 
+I2C i2c(p9, p10);            // I2C port (sda, scl) 
+//Serial pc(USBTX, USBRX);    // PC serial communication 
+
+void WriteToRegister(int address, int startingRegister, int data2Write) 
+{ 
+    char data[2]; 
+    data[0] = startingRegister; 
+    data[1] = data2Write; 
+  
+    i2c.write(address, data, 2); 
+} 
+  
+int ReadRegister(int address, int startingRegister) 
+{ 
+    char content[1]; 
+    char reg[1]; 
+    reg[0] = startingRegister; 
+      
+    i2c.write(address, reg, 1, true); 
+    i2c.read(address, content, 1); 
+      
+    return content[0]; 
+} 
+  
+char i2c_read_reg(char address) //fonction qui lit les valeurs des registres 
+{    
+    // Read from selected register adress 
+    i2c.start();                                          
+    i2c.write(MMA8452_WRITE_ADDRESS);    
+    i2c.write(address);                  
+    i2c.start();                         
+    i2c.write(MMA8452_READ_ADDRESS);     
+    char data = i2c.read(0);             
+    i2c.stop();                          
+   
+    // return the data readed 
+    return data;    
+} 
+  
+bool initAccel() //fonction qui initialise l'accelerometre avec i2c 
+{ 
+    // Start I2C communication    
+    char data = i2c_read_reg(WHO_AM_I); 
+    if(data != 0x2A) 
+    { 
+        return false; 
+    } 
+      
+
+  
+// Put accelerometer in active mode at 6.25Hz 
+    WriteToRegister(MMA8452_WRITE_ADDRESS, CTRL_REG1, 0x31); 
+      
+    // Put accelerometer in standby mode at 6.25Hz 
+    WriteToRegister(MMA8452_WRITE_ADDRESS, CTRL_REG1, 0x30); 
+       
+    // Set accelerometer in 4g range 
+    WriteToRegister(MMA8452_WRITE_ADDRESS, XYZ_DATA_CFG, 0x1); 
+       
+    // Put accelerometer in active mode at 6.25Hz 
+    WriteToRegister(MMA8452_WRITE_ADDRESS, CTRL_REG1, 0x31); 
+          
+      
+      
+    return true;      
+} 
+  
+  
+  
+unsigned short getAccelValue(char MSB_addr) //fonction qui lit les registres de données de l'accelerometre 
+{ 
+    return i2c_read_reg(MSB_addr);           // Read MSB data from MSB register 
+} 
+  
+  
+  
+int main()  
+{ 
+        std::vector<int> x_array;
+//      int i = 0;
+    Thread thread1(collector_thread);
+    
+        
+    //appelle des fonctions d'initialisations 
+    initAccel();    //accelerometre 
+    
+    
+      
+    myled = 0; 
+    
+    while(1)  
+    { 
+        wait_ms(10); 
+          
+   
+    } 
+} 
\ No newline at end of file
diff -r 000000000000 -r 1e7ffdb6d1db main.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.h	Thu Mar 20 13:16:01 2014 +0000
@@ -0,0 +1,53 @@
+#ifndef MAIN_H
+#define MAIN_H
+/******************************************************** 
+* INCLUDES 
+********************************************************/
+#include "mbed.h"          
+#include "rtos.h"
+#include <iostream>
+#include <vector>
+  
+ /******************************************************** 
+* DEFINES 
+********************************************************/ 
+
+  
+#define DELAY           0.5 
+  
+#define MMA8452_WRITE_ADDRESS 0x3A 
+#define MMA8452_READ_ADDRESS  0x3B 
+#define WHO_AM_I        0x0D 
+#define OUT_X_MSB       0x01 
+#define OUT_X_LSB       0x02 
+#define OUT_Y_MSB       0x03 
+#define OUT_Y_LSB       0x04 
+#define OUT_Z_MSB       0x05 
+#define OUT_Z_LSB       0x06 
+#define CTRL_REG1       0x2A  
+#define CTRL_REG2       0x2B 
+#define XYZ_DATA_CFG    0x0E 
+
+/******************************************************** 
+* VARIABLE GLOBALE
+********************************************************/ 
+
+
+/******************************************************** 
+* PROTOTYPE FONCTION ACCELERO
+********************************************************/ 
+void WriteToRegister(int address, int startingRegister, int data2Write);
+int ReadRegister(int address, int startingRegister);
+char i2c_read_reg(char address) ;
+bool initAccel();
+unsigned short getAccelValue(char MSB_addr);
+
+
+
+/******************************************************** 
+* THREADS
+********************************************************/ 
+void collector_thread(void const *args);
+  
+  
+#endif
\ No newline at end of file
diff -r 000000000000 -r 1e7ffdb6d1db mbed-rtos.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed-rtos.lib	Thu Mar 20 13:16:01 2014 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed-rtos/#771275db0efe
diff -r 000000000000 -r 1e7ffdb6d1db mbed.bld
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Thu Mar 20 13:16:01 2014 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/8e73be2a2ac1
\ No newline at end of file