david ta / Mbed 2 deprecated MMA845X

Dependencies:   mbed

Fork of MMA8452 by Hiroaki Matsuda

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 
00003 I2C i2c(p9,p10);
00004 Serial pc(USBTX, USBRX);
00005 DigitalOut led1(LED1);
00006 DigitalOut led2(LED2);
00007 DigitalOut led3(LED3);
00008 DigitalOut led4(LED4);
00009 
00010 int main() {
00011     led4 = 1;
00012     led1 = 0;
00013     led2 = 0;
00014     led3 = 0;
00015     char cmd[6];
00016     char add[1];
00017     char init[2];
00018     add[0] = 0x01;
00019     init[0] = 0x2A;
00020     init[1] = 0x01;
00021     int number=0;
00022     i2c.frequency(40000);
00023 
00024     wait(0.5);
00025     //init
00026     //set active mode    
00027     while(i2c.write(0x38,init,2));
00028     led1 = 1;
00029     led2 = 1;
00030     led3 = 1;
00031     
00032     //get analog data
00033     while(1) {
00034         //send procedure
00035         wait(0.07);
00036         switch(number){
00037         case 0:
00038             if(i2c.write(0x38,add,1) == 0){
00039                 number++;
00040                 //led1 = 1;
00041             }else{
00042                 number=0;
00043                 //led1 = 0;
00044                 //led2 = 0;
00045                 //led3 = 1;
00046             }
00047             break;
00048         case 1:
00049             if(i2c.read(0x38,cmd,6) == 0){
00050                 number++;
00051                 //led2 = 1;
00052             }else{
00053                 number=0;
00054                 //led1 = 0;
00055                 //led2 = 0;
00056                 //led3 = 0;
00057             }
00058             break;    
00059         case 2:
00060             //get analog data
00061             //pc.printf("\r X = %d,Y = %d,Z = %d                ",cmd[1],cmd[3],cmd[5]);
00062             //led3 = 1;
00063             led1 = 0;
00064             led2 = 0;
00065             led3 = 0;
00066             if (cmd[1] > cmd[3]){
00067                 led1 = 1;
00068             }else if(cmd[3] > cmd[5]){
00069                 led2 = 1;
00070             }else{
00071                 led3 = 1;    
00072             }
00073             wait(0.5);
00074             led1 = 0;
00075             led2 = 0;
00076             led3 = 0;
00077             number=0;
00078             break;
00079         }
00080     }
00081 }