Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Revision 0:1e7ffdb6d1db, committed 2014-03-20
- Comitter:
- trixrabbit
- Date:
- Thu Mar 20 13:16:01 2014 +0000
- Commit message:
- 20 mars cours de projet
Changed in this revision
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