Rodrigo Miguez / Mbed 2 deprecated i2c_acelerometro

Dependencies:   BLE_API mbed nRF51822 circular_buffer

Committer:
Alexisfdi
Date:
Mon Jan 18 16:26:04 2016 +0000
Revision:
3:80ceedd5ffac
Parent:
2:96f52163ca48
Child:
4:a743917cd04c
Ya no funciona!!

Who changed what in which revision?

UserRevisionLine numberNew contents of line
agufal 0:c123bc196680 1 #include "mbed.h"
agufal 0:c123bc196680 2
agufal 0:c123bc196680 3 I2C i2c(p30, p7);
agufal 0:c123bc196680 4 Serial pc(p9, p11);
agufal 0:c123bc196680 5 //LEDS
agufal 0:c123bc196680 6 DigitalOut led2(LED2);
agufal 0:c123bc196680 7 DigitalOut led1(LED1);
agufal 0:c123bc196680 8 DigitalOut led3(LED3);
agufal 0:c123bc196680 9 DigitalOut led4(LED4);
agufal 0:c123bc196680 10
agufal 0:c123bc196680 11 int main(){
agufal 0:c123bc196680 12
agufal 0:c123bc196680 13 char data_write[2];
agufal 0:c123bc196680 14
agufal 0:c123bc196680 15 led1 = 1;
agufal 0:c123bc196680 16 led2 = 1;
agufal 0:c123bc196680 17 led3 = 1;
agufal 0:c123bc196680 18 led4 = 1;
agufal 0:c123bc196680 19
Alexisfdi 3:80ceedd5ffac 20 i2c.frequency(400000);
Alexisfdi 3:80ceedd5ffac 21
Alexisfdi 3:80ceedd5ffac 22 while(1){
Alexisfdi 3:80ceedd5ffac 23
Alexisfdi 3:80ceedd5ffac 24 data_write[0] = 0x00;
Alexisfdi 3:80ceedd5ffac 25
Alexisfdi 3:80ceedd5ffac 26 i2c.start();
Alexisfdi 3:80ceedd5ffac 27
Alexisfdi 3:80ceedd5ffac 28 i2c.write(0xAB, data_write, 1);
Alexisfdi 3:80ceedd5ffac 29
Alexisfdi 3:80ceedd5ffac 30 char data_read[7];
Alexisfdi 3:80ceedd5ffac 31 i2c.read(0xAA, data_read, 7, true);
Alexisfdi 3:80ceedd5ffac 32
Alexisfdi 3:80ceedd5ffac 33 if(data_read[0] == 0)
Alexisfdi 3:80ceedd5ffac 34 led1 = 0;
Alexisfdi 3:80ceedd5ffac 35
Alexisfdi 3:80ceedd5ffac 36 int ch0 =(data_read[1] << 6) | data_read[2] >> 2;
Alexisfdi 3:80ceedd5ffac 37
Alexisfdi 3:80ceedd5ffac 38 if(ch0 < 0x00FF) //X
Alexisfdi 3:80ceedd5ffac 39 led2 = 0;
Alexisfdi 3:80ceedd5ffac 40 else
Alexisfdi 3:80ceedd5ffac 41 led2 = 1;
Alexisfdi 3:80ceedd5ffac 42
Alexisfdi 3:80ceedd5ffac 43 int ch1 =(data_read[3] << 6) | data_read[4] >> 2;
Alexisfdi 3:80ceedd5ffac 44
Alexisfdi 3:80ceedd5ffac 45 if(ch1 < 0x00FF) //Y
Alexisfdi 3:80ceedd5ffac 46 led3 = 0;
Alexisfdi 3:80ceedd5ffac 47 else
Alexisfdi 3:80ceedd5ffac 48 led3 = 1;
Alexisfdi 3:80ceedd5ffac 49
Alexisfdi 3:80ceedd5ffac 50 int ch2 =(data_read[5] << 6) | data_read[6] >> 2;
Alexisfdi 3:80ceedd5ffac 51
Alexisfdi 3:80ceedd5ffac 52 if(ch2 < 0x00FF) //Z
Alexisfdi 3:80ceedd5ffac 53 led4 = 0;
Alexisfdi 3:80ceedd5ffac 54 else
Alexisfdi 3:80ceedd5ffac 55 led4 = 1;
Alexisfdi 3:80ceedd5ffac 56
Alexisfdi 3:80ceedd5ffac 57 /*led1 = 1;
Alexisfdi 3:80ceedd5ffac 58 led2 = 1;
Alexisfdi 3:80ceedd5ffac 59 led3 = 1;
Alexisfdi 3:80ceedd5ffac 60 led4 = 1;*/
Alexisfdi 3:80ceedd5ffac 61
Alexisfdi 3:80ceedd5ffac 62 i2c.stop();
Alexisfdi 3:80ceedd5ffac 63
Alexisfdi 3:80ceedd5ffac 64 wait(0.2);
Alexisfdi 3:80ceedd5ffac 65 }
agufal 2:96f52163ca48 66
Alexisfdi 3:80ceedd5ffac 67 /*i2c.write(0xAA, data_write, 1);
agufal 2:96f52163ca48 68
agufal 2:96f52163ca48 69 char data_read[7];
agufal 2:96f52163ca48 70 i2c.read(0xAB, data_read, 7, true);
agufal 2:96f52163ca48 71
agufal 2:96f52163ca48 72 if(data_read[0] == 0)
agufal 2:96f52163ca48 73 led1 = 0;
agufal 0:c123bc196680 74
agufal 2:96f52163ca48 75 if(data_read[1] == 0)
agufal 2:96f52163ca48 76 led2 = 0;
agufal 2:96f52163ca48 77
agufal 2:96f52163ca48 78 if(data_read[2] == 0)
agufal 2:96f52163ca48 79 led3 = 0;
agufal 2:96f52163ca48 80
agufal 2:96f52163ca48 81 if(data_read[3] == 0)
agufal 2:96f52163ca48 82 led4 = 0;
agufal 2:96f52163ca48 83
Alexisfdi 3:80ceedd5ffac 84 i2c.stop();*/
agufal 2:96f52163ca48 85
agufal 2:96f52163ca48 86 //data_write[0] = 0x01;
agufal 2:96f52163ca48 87 //data_write[1] = 0x00;
agufal 2:96f52163ca48 88 //i2c.start();
agufal 2:96f52163ca48 89 //int status = i2c.write(addr,data_write, 2);
agufal 2:96f52163ca48 90
agufal 2:96f52163ca48 91 /*if (status != 0) { // Error
agufal 0:c123bc196680 92 while (1) {
agufal 2:96f52163ca48 93
agufal 0:c123bc196680 94 }
agufal 2:96f52163ca48 95 } */
agufal 2:96f52163ca48 96
agufal 2:96f52163ca48 97 //bool haPasado = false;
agufal 2:96f52163ca48 98
agufal 2:96f52163ca48 99 //i2c.frequency(200000);
agufal 0:c123bc196680 100
agufal 0:c123bc196680 101 /*while(1){
agufal 2:96f52163ca48 102
agufal 2:96f52163ca48 103 i2c.start();
agufal 2:96f52163ca48 104
agufal 2:96f52163ca48 105 wait(0.5);
agufal 2:96f52163ca48 106
agufal 2:96f52163ca48 107 int status = i2c.read(addr, data_read, 3);
agufal 2:96f52163ca48 108
agufal 2:96f52163ca48 109 if (status == 0)
agufal 2:96f52163ca48 110 haPasado = true;
agufal 2:96f52163ca48 111
agufal 2:96f52163ca48 112 if (!haPasado)
agufal 2:96f52163ca48 113 led4 = !led4;
agufal 2:96f52163ca48 114
agufal 2:96f52163ca48 115 i2c.stop();
agufal 2:96f52163ca48 116
agufal 2:96f52163ca48 117 }*/
agufal 0:c123bc196680 118 //i2c.start();
agufal 2:96f52163ca48 119 /*data_write[0] = 0x00;
agufal 0:c123bc196680 120 i2c.write(addr, data_write, 1,1);
agufal 0:c123bc196680 121
agufal 0:c123bc196680 122 i2c.read(addr, data_read, 2,0);
agufal 0:c123bc196680 123
agufal 0:c123bc196680 124 int ch0 =(data_read[0]<<8) | data_read[1];
agufal 0:c123bc196680 125
agufal 0:c123bc196680 126 if (ch0 < 0x001FF){
agufal 0:c123bc196680 127
agufal 0:c123bc196680 128 led1 = 0;
agufal 0:c123bc196680 129 led2 = 1;
agufal 0:c123bc196680 130 led3 = 1;
agufal 0:c123bc196680 131 }
agufal 0:c123bc196680 132 else if (ch0 > 0x001FF && ch0 < 0x0FFF) {
agufal 0:c123bc196680 133
agufal 0:c123bc196680 134 led1 = 1;
agufal 0:c123bc196680 135 led2 = 0;
agufal 0:c123bc196680 136 led3 = 1;
agufal 0:c123bc196680 137
agufal 0:c123bc196680 138 }
agufal 0:c123bc196680 139 else {
agufal 0:c123bc196680 140 led1 = 1;
agufal 0:c123bc196680 141 led2 = 1;
agufal 0:c123bc196680 142 led3 = 0;
agufal 0:c123bc196680 143 }
agufal 0:c123bc196680 144
agufal 0:c123bc196680 145 //pc.printf("channel 0: %x,%x \n", data_read[0], data_read[1]);
agufal 0:c123bc196680 146
agufal 0:c123bc196680 147 wait(0.5);
agufal 0:c123bc196680 148
agufal 0:c123bc196680 149 //i2c.stop();
agufal 0:c123bc196680 150 } */
agufal 0:c123bc196680 151 }