![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Implementation example for i2c libraries (based on nRF51 dk)
Revision 0:314e9b39d797, committed 2016-08-23
- Comitter:
- cesarcazal
- Date:
- Tue Aug 23 16:26:49 2016 +0000
- Commit message:
- Ejemplo de implementaci?n del driver i2c para nRF51
Changed in this revision
diff -r 000000000000 -r 314e9b39d797 I2C_Driver.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/I2C_Driver.lib Tue Aug 23 16:26:49 2016 +0000 @@ -0,0 +1,1 @@ +https://developer.mbed.org/users/cesarcazal/code/I2C_Driver/#2514f1c72462
diff -r 000000000000 -r 314e9b39d797 main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Tue Aug 23 16:26:49 2016 +0000 @@ -0,0 +1,65 @@ +/* + +Programa de ejemplo para las librerías I2C +*/ + +#include "mbed.h" +#include "I2C_Driver.h" +#include "wire.h" + +//#define nRF51DK +#define nRF52DK + + +#ifdef nRF52DK +#define SCL 28 +#define SDA 29 +#endif + +#ifdef nRF51DK +#define SCL 7 +#define SDA 6 +#endif + +#define DEV_ADDR 0xB0 + + +DigitalOut led (p17); +DigitalIn button(p13,PullUp); + +int estado; +uint8_t address, data[3]; + +int main(void) +{ + led=1; + data[0]=107; + data[1]=0; + data[2]=0; + ini_i2c(SCL, SDA); //inicializacion del I2C + wait(0.1); + while(1) + { + if (button==0) { + data[0]=0; + //Parámetros write_i2c: addr: dirección de memoria; *pbuf: puntero de byte 0 del buffer; length: cantidad de bytes a enviar; dev_addr: Direección física del dispositivo esclavo i2c + write_i2c(0, data, 3, DEV_ADDR);//debe escribirse en la dirección 0 de memoria el valor "0" para poder escribir en algún registro. + data[0]=107; + write_i2c(1, data, 3, DEV_ADDR);//durante la escritura, el byte menos significativo será el byte "0". Una escritura adecuada devuelve un "0". + data[0]=1; + write_i2c(0, data, 3, DEV_ADDR);//debe escribirse en la dirección 0 de memoria el valor "1" para poder leer algún registro. + //wait (3); + //Parámetros read_i2c: addr: dirección de memoria; *pbuf: puntero de byte 0 del buffer; length: cantidad de bytes a enviar; dev_addr: Direección física del dispositivo esclavo i2c + if(read_i2c(1, data, 3, DEV_ADDR)==0)// durante la lectura, el byte menos significativo será el byte "0". Una lectura adecuada devuelve un "0". + led=0; + wait(0.5); + led=1; + wait(0.5); + if(data[0]==107) + led=0; + else + led=1; + wait(0.5f); + } + } +} \ No newline at end of file
diff -r 000000000000 -r 314e9b39d797 mbed.bld --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Tue Aug 23 16:26:49 2016 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/2241e3a39974 \ No newline at end of file