Buenas tardes a todos. Soy Pablo, tecnico en mantenimiento y me gusta la programacion en C como hobby.
Estoy tratando de realizar la comunicacion I2C con varios sensores, ya lo consegui con el TC74A5 y ahora estaba tratando de comunicar con un SHT21, y por mucho que lo intente....mis conocimientos parece ser escasos cuando la cosa se complica un poco.
La idea de controlar estos sensores es para el control de riego de un huerto, ya que en los riegos inteligentes comerciales hay cosas que no me gustan y no puedo tocar...me gustaria hacer algo que pueda cambiar cuando requiera alguna modificacion o mejora.
El problema que tengo es que la comunicacion con el sensor aparentemente la hace pero de SSPBUF no entiendo por que siempre me coge 0. Además, estoy teniendo bastantes problemas a la hora de entender la resolucion de 12 bits para controlarlo con un PIC de 8 bits, lo estoy intentando hacer con el desplazamiento de bits,,,,pero seguro que algo estoy haciendo mal.
Y por ultimo, creo que la conversion de los 2 char del resultado de la lectura a la variable float me temo que no es asi.... Se puede pasar de un Int a un Float sin problema? o habria que tener cosas en cuenta.
Le agradeceria a quien me pudiera echar una mano....porque llevo dando golpes de ciego ya muchos dias, y no me hago con ello....
Adjunto los ficheros por si alguien más sabio que yo (que sera casi cualquiera) me podria decir donde falla mi codigo respecto a ese sensor.
El circuito es simplemente una bienvenida y da a elegir 2 modos (Temperatura y humedad), un pulsador de modo , y un pulsador de Entrar.
Y otra cosa, si con el registro de usuario cambias la resolucion a 8 bits igualmente pasaria la informacion en 2 Bytes. de los cuales los 2 menos significativos para el estado, los 8 siguientes el dato y los mas significativos restantes serian 0? Y la formula de obtencion del resultado de la humedad se seguiria usando en el denominador el 2^16?
Muchisimas gracias a todos.
Perdonad, me olvidaba. Estoy usando el MPLAB X IDE v3.65 con el XC8 v1.45.
Estoy tratando de realizar la comunicacion I2C con varios sensores, ya lo consegui con el TC74A5 y ahora estaba tratando de comunicar con un SHT21, y por mucho que lo intente....mis conocimientos parece ser escasos cuando la cosa se complica un poco.
La idea de controlar estos sensores es para el control de riego de un huerto, ya que en los riegos inteligentes comerciales hay cosas que no me gustan y no puedo tocar...me gustaria hacer algo que pueda cambiar cuando requiera alguna modificacion o mejora.
El problema que tengo es que la comunicacion con el sensor aparentemente la hace pero de SSPBUF no entiendo por que siempre me coge 0. Además, estoy teniendo bastantes problemas a la hora de entender la resolucion de 12 bits para controlarlo con un PIC de 8 bits, lo estoy intentando hacer con el desplazamiento de bits,,,,pero seguro que algo estoy haciendo mal.
Y por ultimo, creo que la conversion de los 2 char del resultado de la lectura a la variable float me temo que no es asi.... Se puede pasar de un Int a un Float sin problema? o habria que tener cosas en cuenta.
Le agradeceria a quien me pudiera echar una mano....porque llevo dando golpes de ciego ya muchos dias, y no me hago con ello....
Adjunto los ficheros por si alguien más sabio que yo (que sera casi cualquiera) me podria decir donde falla mi codigo respecto a ese sensor.
El circuito es simplemente una bienvenida y da a elegir 2 modos (Temperatura y humedad), un pulsador de modo , y un pulsador de Entrar.
Y otra cosa, si con el registro de usuario cambias la resolucion a 8 bits igualmente pasaria la informacion en 2 Bytes. de los cuales los 2 menos significativos para el estado, los 8 siguientes el dato y los mas significativos restantes serian 0? Y la formula de obtencion del resultado de la humedad se seguiria usando en el denominador el 2^16?
Muchisimas gracias a todos.
Perdonad, me olvidaba. Estoy usando el MPLAB X IDE v3.65 con el XC8 v1.45.