Autor Tema: Modificar libreria  (Leído 1775 veces)

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

Desconectado QIQE

  • PIC18
  • ****
  • Mensajes: 335
Modificar libreria
« en: 19 de Octubre de 2006, 18:54:47 »
Hola compañeros estoy haciendo un proyecto en el que necesito usar dos sht_15, para usarlos utilizo una libreria, pero esta preparada solo para un sensor, ya que este sensor funciona con un bus "I2C" a su modo de manera que hay que adaptar la comunicación, mi pregunta viene aqui:

en la libreria tenia:

      #define DATOS  PIN_A4
      #define CLOCK  PIN_A5

y mi modificacion ha sido:
Código: [Seleccionar]
void sht11_1(void)
{
 
      #define DATOS  PIN_A2
      #define CLOCK  PIN_A3
     
}

void sht11_2(void)
{
     
     
      #define DATOS  PIN_A4
      #define CLOCK  PIN_A5 
}   

pero no me funciona, ya que siempre se queda datos definido como A4 y clock como A5, aunque llame a sht_1 desde el programa principal alguna idea?? que puedo hacer??
muchas gracias.
Muchas gracias por vuestro tiempo.

Saludos desde valencia!!!

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: Modificar libreria
« Respuesta #1 en: 19 de Octubre de 2006, 19:08:41 »
Las intrucciones #define son pseudocodigo, que interpreta el preprocesador antes de compilar lo que hace es sustituir el literal por el valor que queramos. En el caso #define DATOS PIN_A4, sustituye DATOS por PIN_A4. Si tenemos varias sustituciones la última será la que valga.

La idea con el bus I2C es utilizar un único bus para todos los dispostivos, con lo cual eso te sobra. Normalmente las librerias I2C permite manejar varios dispositivos, solo hay que cambiar la dirección del dispositivo I2C a controlar en cada caso.

Un saludo
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado QIQE

  • PIC18
  • ****
  • Mensajes: 335
Re: Modificar libreria
« Respuesta #2 en: 19 de Octubre de 2006, 19:18:24 »
Me expliqué mal la filosofia del su comunicacion es parecida al I2C pero solo se puede conectar un dispositivo, por pin entonces yo quiero que esa libreria me siba para dos dispositovos variandole la definicion de pines en ejecución eso puede hacerse?? estoy mirando los #if pero de momento no soluciono nada
Muchas gracias por vuestro tiempo.

Saludos desde valencia!!!

Desconectado vszener

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2395
Re: Modificar libreria
« Respuesta #3 en: 20 de Octubre de 2006, 12:05:36 »
La librería del dipositivo sht_15 que usas sólamente tienen las funciones:
Código: C
  1. void sht11_1(void)
  2. {
  3.  
  4.       #define DATOS  PIN_A2
  5.       #define CLOCK  PIN_A3
  6.      
  7. }
  8.  
  9. void sht11_2(void)
  10. {
  11.      
  12.      
  13.       #define DATOS  PIN_A4
  14.       #define CLOCK  PIN_A5  
  15. }
o ¿hay algunas funciones más a parte de éstas? Si hay algunas funciones más, tendras que diferenciarlas también.


Suerte!!! ;)
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte

Desconectado QIQE

  • PIC18
  • ****
  • Mensajes: 335
Re: Modificar libreria
« Respuesta #4 en: 20 de Octubre de 2006, 17:15:26 »
Si tengo mas funcione pero las demas emplean la constante datos y clok, y haciendolo de esta manera siempre se queda definida la ultimaen este caso dato PIN_A4 CLOK PIN_A5 y no logro que cambie:S:S
Muchas gracias por vuestro tiempo.

Saludos desde valencia!!!

Desconectado vszener

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2395
Re: Modificar libreria
« Respuesta #5 en: 21 de Octubre de 2006, 06:11:51 »
Diferencia también las funciones.


Suerte!!! :wink:
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte