Autor Tema: Ayuda convertir codigo de 18FXX a 16FXX  (Leído 1759 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado sokoloko

  • PIC12
  • **
  • Mensajes: 77
Ayuda convertir codigo de 18FXX a 16FXX
« en: 04 de Junio de 2011, 13:00:45 »
Hola!!!

Estoy entretenido en un proyecto para leer unos datos de los acelerometros del Wii motion Plus, (que se comunica a traves del i2c) para luego controlar un aeromodelo.

No pretendo inventar nada, el codigo para mas o menos de lo que quiero, se encuentra en esta pag LINK.

Lo que si quiero es adaptar ese codigo al PIC que conozco, pues empeze con el 16f84 y ahora estoy con el 16f88. El caso es que tengo todo funcionando (a parte de leer esos datos, quiero mover unos servos, trabajar con un LCD...) menos el tema de la lectura de datos.

El codigo que no entiendo es:
Código: [Seleccionar]
#define I2C_DATA_WRITE LATAbits.LATA2   // Register select
#define I2C_DATA_READ PORTAbits.RA2   // Register select
#define I2C_DATA_TRIS   TRISAbits.TRISA2     // TRIS

#define I2C_CLK LATAbits.LATA0   // Register select
#define I2C_CLK_TRIS   TRISAbits.TRISA0     // TRIS

Por que por mis conocimientos, una entrada no tiene sentido que se use de tres formas distintas, si yo pongo esto:

Código: [Seleccionar]
#define I2C_DATA_WRITE PIN_A1   // DATA I2C
#define I2C_DATA_READ PIN_A1   //
#define I2C_DATA_TRIS   PIN_A1     //  
#define I2C_CLK PIN_A0   // RELOJ I2C
#define I2C_CLK_TRIS   PIN_A0     //  

Logicamente no me funciona......... :(

Algun consejo??
« Última modificación: 04 de Junio de 2011, 13:11:53 por sokoloko »

Desconectado jukinch

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 608
Re: Ayuda convertir codigo de 18FXX a 16FXX
« Respuesta #1 en: 04 de Junio de 2011, 14:04:26 »

Hola sokoloko podes mirar este hilo.
Saludos
 Jukinch


http://www.todopic.com.ar/foros/index.php?topic=17785.0
"Divide las dificultades que examinas en tantas partes como sea posible para su mejor solución." -René Descartes

Desconectado arielba

  • PIC10
  • *
  • Mensajes: 6
Re: Ayuda convertir codigo de 18FXX a 16FXX
« Respuesta #2 en: 04 de Junio de 2011, 14:48:06 »
Lo que estas haciendo es en realidad traducir de C18 a CCS
En C18 se definen por separado la entrada la salida y el tris, asignanole un nombre mediante #define para hacerlo mas fácil.

por ejemplo , si quieres encender el pin pones
LATAbits.LATA2 =1;

si quieres saber que valor tiene es
valor = PORTAbits.RA2;

para ponerlo como entrada a o salida
TRISAbits.TRISA2= 1;
TRISAbits.TRISA2= 0;

Espero que te sirva.
Un saludo

Desconectado sokoloko

  • PIC12
  • **
  • Mensajes: 77
Re: Ayuda convertir codigo de 18FXX a 16FXX
« Respuesta #3 en: 04 de Junio de 2011, 16:18:10 »
Perfecto, muchas gracias por las aclaraciones, osea q si yo lo cammbio por esto:

Código: [Seleccionar]
#define I2C_DATA PIN_A1    // DATA I2C
#define I2C_CLK PIN_A0    // RELOJ I2C

Y dejo solo estas dos entrada en el resto del codigo, ademas de no definir el puerto A ni como entrada ni como salida podria funcionar, no???

Gracias


 

anything