muchas gracias de todas formas Manolo,...
bueno les cuento!!! Luego de inicializar el Bus I2C a 100 Khz y activar el escaneo de electrodos
//Inicia Configuracion básica del Touch Rotary MPR083
I2C_Init(100000); // configura el reloj del micro
I2C_Start(); // inicia condicion de start
I2C_Wr(0b10111000); //manda direccion del esclavo 0x5C
I2C_Wr(0x13); // envía direccion del comando de configuracion
I2C_Wr(0b00010101); //resetea, modo2 (escaneo contínuo), habilita escaneo electrodos
I2C_Stop(); // termina, genera condicion de stop
FUNCIONAAAAA!!!
SORPRENDENTE SENSIBILIDAD!!!
la salida sounder emite un sonido similar al del iPOD...
ahora con la seguridad que está inicializado y con las configuraciones básicas de fábrica (ya que lee los electrodos y emite el sonido de boton pulsado) ,... quiero leer el dispoditivo,... pero tengo un problema en la lectura... que error ven acá??....
con ésta secuencia leo el byte que escribí en la direccion 0x13 en la secuencia de inicializacion anterior...
I2C_Start(); // inicia condicion de start
I2C_Wr(0b10111001); //manda direccion del esclavo en modo lectura (Bit0=1) direccion slave 0b1011100 (0x5c)
I2C_Wr(0x13); // escribe direccion del comando a leer
Dato=I2C_Rd(0); // espera que el esclavo mande el byte de dato leido
I2C_Stop(); // termina, genera condicion de stop
pero la rutina anterior se queda muerta en la linea I2C_Wr(0x13);...
omitiendo ésta linea... y ejecutando la secuencia siguiente...
I2C_Start(); // inicia condicion de start
I2C_Wr(0b10111001); // manda direccion del esclavo en modo lectura (Bit0=1) direccion slave 0b1011100 (0x5c)
Dato=I2C_Rd(0); // espera que el esclavo mande el byte de dato leido
I2C_Stop(); // termina, genera condicion de stop
recibo en el registro Dato el valor 0x40 que indica que se está leyendo la direccion 0x00 del MPR084 y equivale al comando de RESET...
alguien me puede comentar cual es mi error??
acá les dejo un video (muy feo, grabaro rápido con el celular... pondré mejores)
Saludos!
y muchas gracias de ante mano...