Dependencies:   HEPTA_EPS mbed

main.cpp

Committer:
csmk18112
Date:
2022-11-08
Revision:
3:a1a4491e2ab8
Parent:
2:4fcc41c10f22
Child:
4:c041a3581bc7

File content as of revision 3:a1a4491e2ab8:

#include "mbed.h"
#include "HEPTA_EPS.h"
#define ACC 0x19<<1 //addr_accel

RawSerial pc(USBTX,USBRX,9600);
HEPTA_EPS eps(p16,p26);
I2C i2c(p28,p27);

float accel[3];
char cmd[2]={0};
uint8_t data[6]={0};
char send[1];

int main() {
    i2c.frequency(100000);
    pc.printf("accel setting\r\n");
    cmd[0]=0x14; //softwareset 
    cmd[1]=0xB6; //triggers a reset
    i2c.write(ACC,cmd,2); 
    cmd[0]=0x0F; //acceleration measurement range
    cmd[1]=0x05; //+-4g
    i2c.write(ACC,cmd,2); 
    cmd[0]=0x11; //
    cmd[1]=0x00;
    i2c.write(ACC,cmd,2); 
    while(1) {
        send[0]=(char)(2);
        i2c.write(ACC,send,1,true);
        i2c.read(ACC,(char*)data,6);
        for(int i=0;i<3;i++){
            accel[i]=(int16_t)(((int16_t)data[i*2+1]<<8) | data[i*2]) >> 4;
            if(accel[i]>2047)accel[i]-=4096;
            accel[i]=accel[i]/519*9.8;
        }
        pc.printf("ax = %2.4f, ay = %2.4f, az = %2.4f\r\n",accel[0],accel[1],accel[2]);
        wait(1);
    }
}