this is sample source of MMA8452

Dependencies:   mbed

Fork of MMA8452 by Hiroaki Matsuda

main.cpp

Committer:
matsu
Date:
2012-11-28
Revision:
1:0c1dd02be97a
Parent:
0:904e837fccc5

File content as of revision 1:0c1dd02be97a:

#include "mbed.h"

I2C i2c(p9,p10);
Serial pc(USBTX, USBRX);
DigitalOut led1(LED1);
DigitalOut led2(LED2);
DigitalOut led3(LED3);

int main() {
    led1 = 0;
    led2 = 0;
    led3 = 0;
    char cmd[6];
    char add[1];
    char init[2];
    add[0] = 0x01;
    init[0] = 0x2A;
    init[1] = 0x01;
    int number=0;
    i2c.frequency(40000);

    wait(0.5);
    //init
    //set active mode    
    while(i2c.write(0x3A,init,2));
    led1 = 1;
    led2 = 1;
    led3 = 1;
    
    //get analog data
    while(1) {
        //send procedure
        wait(0.07);
        switch(number){
        case 0:
            if(i2c.write(0x3A,add,1) == 0){
                number++;
                led1 = 1;
            }else{
                number=0;
                led1 = 0;
                led2 = 0;
                led3 = 1;
            }
            break;
        case 1:
            if(i2c.read(0x3A,cmd,6) == 0){
                number++;
                led2 = 1;
            }else{
                number=0;
                led1 = 0;
                led2 = 0;
                led3 = 0;
            }
            break;    
        case 2:
            //get analog data
            pc.printf("\r X = %d,Y = %d,Z = %d                ",cmd[1],cmd[3],cmd[5]);
            led3 = 1;
            wait(0.5);
            led1 = 0;
            led2 = 0;
            led3 = 0;
            number=0;
            break;
        }
    }
}