Rodrigo Miguez / Mbed 2 deprecated i2c_acelerometro

Dependencies:   BLE_API mbed nRF51822 circular_buffer

main.cpp

Committer:
Alexisfdi
Date:
2016-01-18
Revision:
3:80ceedd5ffac
Parent:
2:96f52163ca48
Child:
4:a743917cd04c

File content as of revision 3:80ceedd5ffac:

#include "mbed.h"

I2C i2c(p30, p7);
Serial pc(p9, p11);
//LEDS
DigitalOut led2(LED2);
DigitalOut led1(LED1);
DigitalOut led3(LED3);
DigitalOut led4(LED4);

int main(){
    
    char data_write[2];
    
    led1 = 1;
    led2 = 1;
    led3 = 1;
    led4 = 1;
    
    i2c.frequency(400000);
   
    while(1){
        
        data_write[0] = 0x00;
        
        i2c.start();
        
        i2c.write(0xAB, data_write, 1);
        
        char data_read[7];
        i2c.read(0xAA, data_read, 7, true);
        
        if(data_read[0] == 0)
            led1 = 0;
        
        int ch0 =(data_read[1] << 6) | data_read[2] >> 2;
        
        if(ch0 < 0x00FF) //X 
            led2 = 0;
        else
            led2 = 1;
            
        int ch1 =(data_read[3] << 6) | data_read[4] >> 2;
            
        if(ch1 < 0x00FF) //Y 
            led3 = 0;
        else
            led3 = 1;
        
        int ch2 =(data_read[5] << 6) | data_read[6] >> 2;
        
        if(ch2 < 0x00FF) //Z 
            led4 = 0;
        else
            led4 = 1;
            
        /*led1 = 1;
        led2 = 1;
        led3 = 1;
        led4 = 1;*/
            
        i2c.stop();
        
        wait(0.2);
    }
    
    /*i2c.write(0xAA, data_write, 1);
    
    char data_read[7];
    i2c.read(0xAB, data_read, 7, true);
    
    if(data_read[0] == 0)
        led1 = 0;
    
    if(data_read[1] == 0)
        led2 = 0;
        
    if(data_read[2] == 0)
        led3 = 0;
        
    if(data_read[3] == 0)
        led4 = 0;
    
    i2c.stop();*/
    
    //data_write[0] = 0x01;
    //data_write[1] = 0x00;
    //i2c.start();
    //int status = i2c.write(addr,data_write, 2);
    
    /*if (status != 0) { // Error
        while (1) {
            
        }
    } */
 
    //bool haPasado = false;
 
    //i2c.frequency(200000);
 
    /*while(1){
      
        i2c.start();
        
        wait(0.5);
      
        int status = i2c.read(addr, data_read, 3);
        
        if (status == 0)
            haPasado = true;
        
        if (!haPasado)
            led4 = !led4;
            
        i2c.stop();
      
    }*/
      //i2c.start();
      /*data_write[0] = 0x00;
      i2c.write(addr, data_write, 1,1);
      
      i2c.read(addr, data_read, 2,0);
      
      int ch0 =(data_read[0]<<8) | data_read[1];
      
      if (ch0 < 0x001FF){
             
             led1 = 0;
             led2 = 1;
             led3 = 1;
        }
        else if (ch0 > 0x001FF && ch0 < 0x0FFF) {
            
            led1 = 1;
            led2 = 0;
            led3 = 1;
            
        }
        else {
            led1 = 1;
            led2 = 1;
            led3 = 0;   
        }
      
      //pc.printf("channel 0: %x,%x \n", data_read[0], data_read[1]);
      
      wait(0.5);
      
      //i2c.stop();
    }    */   
}