Receiver code

Dependencies:   mbed

Sensors.cpp

Committer:
vinbel93
Date:
2016-02-18
Revision:
0:f8873e0badb2

File content as of revision 0:f8873e0badb2:

#include "mbed.h"
#include "Sensors.h"

// Capteurs
DigitalIn  button(p9);
I2C accelero(p28, p27);

// Fontion de lecture du bouton
void readButton(char* buffer)
{
    buffer[1] = button;
}

// Fonction de lecture de l'accéléromètre
void readAccelero(char* buffer)
{
    // Activation de l'accéléromètre
    char data[2] = {CTRL_REG, 0x01};
    accelero.write(ACC_ADDRESS, (char*) data, 2);
    
    // Lecture du registre de l'accélération en X
    char result[2];
    char reg[1] = {ACC_X_REG};
    accelero.write(ACC_ADDRESS, (char*) reg, 1, true);
    accelero.read(ACC_ADDRESS, (char*) result, 2);
    short accX = convertToAcceleration(result[0], result[1]);

    // Conversion des données sur 16 bits
    buffer[1] = accX & 0x00FF;
    buffer[2] = (accX & 0xFF00) >> 8;
}

// Fonction qui convertit la donnée retournée par l'accéléromètre en une valeur 16 bits
short convertToAcceleration(char hi, char lo)
{
    short value = (lo >> 2) | (hi << 6);
    if (value > UINT14_MAX/2)
    {
        value -= UINT14_MAX;
    }
 
    return value;
}