Exemplo n.º 1
0
int main() {    
    char buf[17] = "                ";
    
    Accel accel;
    beginMyOled();
    initI2CAccel(&accel, I2C2);
    // show ID
    sprintf(buf, "ID: %x", accelReadReg((const)&(accel), 0x0));
    displayOnOLED(buf,0);

    int data[3];
    unsigned int i, dec;
    while (TRUE){
        if (! ( accelReadReg((const)&(accel), 0x30) & BIT_7) )
                continue;                           // only update when data is ready.
        
        readAccel(&accel);
        for (i=0; i<3; i++)                         // convert to g * 100
            data[i] = map(0,0xff,0,100,accel.axis[i]);

        for (i=0; i<3; i++){
            if (data[i] < 0){
                data[i] *= -1;                      // show as decimal
                sprintf(buf, "%c: -%d.%02d g", i+0x58, data[i]/100, (data[i] - data[i]/100));
            }else                      // (ascii) 0x58 = X
                sprintf(buf, "%c: %02d.%02d g", i+0x58, data[i]/100, (data[i] - data[i]/100));
            displayOnOLED(buf,i+1);
        }

    }

    return (EXIT_SUCCESS);
}
Exemplo n.º 2
0
enum error_t accelReadValue(enum accel_axis_t axis, int8_t* data)
{
    static const uint8_t axis_reg[] = {
        ACCEL_OUT_X_MSB,
        ACCEL_OUT_Y_MSB,
        ACCEL_OUT_Z_MSB };
    *data = accelReadReg(axis_reg[axis]);

    return ERR_NONE;
}
Exemplo n.º 3
0
/*
 Reads important values from ADXL345 and writes them to Accel object
 */
void readAccel(Accel *a){

    a->axis[0] = accelReadReg((const) a, 0x33) - accelReadReg((const) a, 0x32);
    a->axis[1] = accelReadReg((const) a, 0x35) - accelReadReg((const) a, 0x34);
    a->axis[2] = accelReadReg((const) a, 0x37) - accelReadReg((const) a, 0x36);
     
}