Nicholas Herriot
/
MMA8452_test
A test utility for mma8452
main.cpp
- Committer:
- nherriot
- Date:
- 2013-10-04
- Revision:
- 2:0587772b03b0
- Parent:
- 1:0c1dd02be97a
- Child:
- 3:6d888ac31d2c
File content as of revision 2:0587772b03b0:
#include "mbed.h" //#include <bitset> #include "MMA8452.h" // I2C i2c(p28,p27); Accelerometer_MMA8452 acclerometer(p28, p29, 40000); 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; // x-axis register init[0] = 0x2A; // control register 1 init[1] = 0x01; // set to active int number=0; //i2c.frequency(40000); // just playing with address values char mcu_address = 0x00; pc.printf("\nmcu_address is: 0x%x ", mcu_address); mcu_address = MMA8452_ADDRESS; pc.printf("\nmcu_address is: 0x%x ", mcu_address); mcu_address = (mcu_address << 1); // shifting address by 1 bit as i2c is a 7 bit encoding, and this is 8bit encoded pc.printf("\nmcu_address is now : 0x%x ", mcu_address); wait(0.5); //init //set active mode pc.printf("\nWriting to master register register\n"); // while(i2c.write(mcu_address,init,2)); led1 = 1; led2 = 1; led3 = 1; //get analog data pc.printf("Getting analog data"); /* while(1) { //send procedure wait(0.07); switch(number){ case 0: if(i2c.write(mcu_address,add,1) == 0){ number++; pc.printf("In case 0 loop. The number is: %d \n", number); led1 = 1; }else{ number=0; pc.printf("In case 0 loop. The number is reset to: %d \n", number); led1 = 0; led2 = 0; led3 = 1; } break; case 1: if(i2c.read(mcu_address,cmd,6) == 0){ number++; pc.printf("In case 1 loop. The number is: %d \n", number); led2 = 1; }else{ number=0; pc.printf("In case 1 loop. The number is reset to: %d \n", number); led1 = 0; led2 = 0; led3 = 0; } break; case 2: //get analog data pc.printf("\r X = %d,Y = %d,Z = %d \n",cmd[1],cmd[3],cmd[5]); led3 = 1; wait(0.5); led1 = 0; led2 = 0; led3 = 0; number=0; break; } }*/ }