Autor Tema: Leer temperatura y hora lectura y guardar en la eeprom  (Leído 7282 veces)

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

Desconectado Miquel_S

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1251
Leer temperatura y hora lectura y guardar en la eeprom
« en: 16 de Enero de 2010, 19:45:53 »
Hola compañeros siento molestar pero estoy perdido, simulo dicho codigo sin resultado y francamente no veo el fallo, no se si no lo simulo bien o es que no funciona. Agradeceria que alguno de ustedes lo simulara para asi salir de dudas  :?  Y de paso mirad el codigo  :mrgreen:

Saludos
Miquel_S
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Leer temperatura y hora lectura y guardar en la eeprom
« Respuesta #1 en: 16 de Enero de 2010, 19:53:04 »
Hola.

Define si vas a usar el terminal virtual o el COMPIM, ya que al usar los dos al tiempo genera unos warm que puden afectar la simulacion.

Saludos
El papel lo aguanta todo

Desconectado Miquel_S

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1251
Re: Leer temperatura y hora lectura y guardar en la eeprom
« Respuesta #2 en: 16 de Enero de 2010, 20:05:19 »
Hola MLO lo siento pero me pillas en bragas   :oops: por favor mira el esquema
Gracias
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.

Desconectado alexysar

  • PIC16
  • ***
  • Mensajes: 206
    • e-Kit
Re: Leer temperatura y hora lectura y guardar en la eeprom
« Respuesta #3 en: 16 de Enero de 2010, 20:46:20 »
No se si sea tu caso, pero cuando lo trate de simular en proteus no pude porque no tengo los modelos vsm. Me fije y la mayoria de los componentes tienen el modelo esquematico, pero no el de simulación.
 

Desconectado Miquel_S

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1251
Re: Leer temperatura y hora lectura y guardar en la eeprom
« Respuesta #4 en: 16 de Enero de 2010, 20:50:11 »
Lo siento pero no entiendo lo que quieres decir
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.

Desconectado alexysar

  • PIC16
  • ***
  • Mensajes: 206
    • e-Kit
Re: Leer temperatura y hora lectura y guardar en la eeprom
« Respuesta #5 en: 16 de Enero de 2010, 20:54:18 »
Disculpa me explique mal, quise decir que hay componentes que proteus no puede simularlos porque no estan en su libreria.

Desconectado jhozate

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1698
Re: Leer temperatura y hora lectura y guardar en la eeprom
« Respuesta #6 en: 16 de Enero de 2010, 20:58:36 »
a mi me simula bien,  lo q hay q hacer el quitar los COMPIM y dejar solo el hyperterminal. creo q la fallita esta en el soft
Ser Colombiano es un Premio, Saludos desde CALI-COLOMBIA

Desconectado ASTROCAR

  • PIC24F
  • *****
  • Mensajes: 666
Re: Leer temperatura y hora lectura y guardar en la eeprom
« Respuesta #7 en: 16 de Enero de 2010, 21:32:05 »
Hola buenas tardes, yo estoy haciendo algo parecido con un ds1307 y un sensor de temperatura lm35 para sensar temperatura ambiente el caso es que tuve revisando tu codigo y no tengo muchas de las librerias que usas en tu proyecto. Lo otro es que adiferencia de tu proyecto elo mio es para mostrar tanto hora,fecha y temperatura en un cartel de led pero lo lo demas es el mismo principio.

Saludos y no pude ver tu simulacion porque primero quise revisar el codigo y no me compilo ya que no dispongo de las libreria que tu usar son diferente a las que tengo.

Observacion: Pienso tomar tu idea de usar sensor de temperatura con comunicacion i2c ya que estoy usando ese bus ya con el ds1307.

Atten.
Alexander Santana.
barcelona-Venezuela
EL APRENDER ES NADA; MEJOR ES COMPARTIR EL APRENDIZAJE

Desconectado Miquel_S

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1251
Re: Leer temperatura y hora lectura y guardar en la eeprom
« Respuesta #8 en: 16 de Enero de 2010, 21:42:33 »
Perdona por el fallo ASTROCAR te las paso:
EEPROM
Código: CSS
  1. void write_ext_eeprom(long int address, BYTE data)
  2. {
  3.    short int status;
  4.    i2c_start();
  5.    i2c_write(0xa0);
  6.    i2c_write(address>>8);
  7.    i2c_write(address);
  8.    i2c_write(data);
  9.    i2c_stop();
  10.    i2c_start();
  11.    status=i2c_write(0xa0);
  12.    while(status==1)
  13.    {
  14.       i2c_start();
  15.       status=i2c_write(0xa0);
  16.    }
  17. }
  18. BYTE read_ext_eeprom(long int address)
  19. {
  20.    BYTE data;
  21.    i2c_start();
  22.    i2c_write(0xa0);
  23.    i2c_write(address>>8);
  24.    i2c_write(address);
  25.    i2c_start();
  26.    i2c_write(0xa1);
  27.    data=i2c_read(0);
  28.    i2c_stop();
  29.    return(data);
  30. }

FLOATEE
Código: CSS
  1. ///////////////////////////////////////////////////////////////////////////
  2. ////        (C) Copyright 1996,2003 Custom Computer Services           ////
  3. //// This source code may only be used by licensed users of the CCS C  ////
  4. //// compiler.  This source code may only be distributed to other      ////
  5. //// licensed users of the CCS C compiler.  No other use, reproduction ////
  6. //// or distribution is permitted without written permission.          ////
  7. //// Derivative programs created using this software in object code    ////
  8. //// form are not restricted in any way.                               ////
  9. ///////////////////////////////////////////////////////////////////////////
  10.  
  11. // n is an offset into the eeprom.  For floats
  12. // you must increment it by 4.  For example if
  13. // the first float is at 0 the second one should
  14. // be at 4 and the third at 8.
  15.  
  16. WRITE_FLOAT_EXT_EEPROM(long int n, float data) {
  17.    int i;
  18.  
  19.    for (i = 0; i < 4; i++)
  20.      write_ext_eeprom(i + n, *(&data + i) ) ;
  21. }
  22.  
  23. float READ_FLOAT_EXT_EEPROM(long int n) {
  24.    int i;
  25.    float data;
  26.  
  27.    for (i = 0; i < 4; i++)
  28.      *(&data + i) = read_ext_eeprom(i + n);
  29.  
  30.    return(data);
  31. }

RTC
Código: CSS
  1. int BCDaBIN(int bcd){            //Conversion de BCD a Binario.
  2.    int varia;
  3.    varia = bcd;
  4.    varia >>= 1;
  5.    varia &=0x78;
  6.    return(varia + (varia >> 2) + (bcd & 0x0f));
  7. }
  8. void tiempo(byte &hour, byte &min, byte &sec){
  9.    i2c_start();         //Escritura
  10.    i2c_write(0xD0);     //Codigo de escritura
  11.    i2c_write(0x00);     //Puntero a la primera direccion
  12.    i2c_start();         //Lectura
  13.    i2c_write(0xD1);     //Codigo de lectura
  14.    sec = BCDaBIN(i2c_read()&0x7f);        //Lectura de los 7 bits de los segundos
  15.    min = BCDaBIN(i2c_read()&0x7f);        //Lectura de los 7 bits de los minutos
  16.    hour = BCDaBIN(i2c_read(0)&0x3f);      //Lectura de los 6 bits de las horas
  17.    i2c_stop();
  18. }

TEMP
Código: CSS
  1. void init_temp(int address){
  2.    i2c_start();
  3.    i2c_write(0x90 | (address<<1));      //Genera primer byte (1001A2A1A0W)
  4.    i2c_write(0xee);     //Inicia conversion
  5.    i2c_stop();
  6. }
  7. float read_full_temp(int address){
  8.    signed int datah;
  9.    int datal;
  10.    float dato;
  11.    i2c_start();
  12.    i2c_write(0x90 | (address<<1));     //Genera primer byte (1001A2A1A0-W)
  13.    i2c_write(0xaa);        //Leer temperatura
  14.    i2c_start();
  15.    i2c_write(0x91 | (address<<1));     //Genera primer byte (1001A2A1A0-R)
  16.    datah=i2c_read();       //Lectura parte alta
  17.    datal=i2c_read(0);      //Lectura parte baja y NACK
  18.    i2c_stop();
  19.       dato=datah;       //Conversion a flotante
  20.       if (datal==128) dato=dato+0.5;
  21.       return(dato);
  22. }

Saludos y que sirvan para algo
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Leer temperatura y hora lectura y guardar en la eeprom
« Respuesta #9 en: 17 de Enero de 2010, 02:30:38 »
Hola MLO lo siento pero me pillas en bragas   :oops: por favor mira el esquema
Gracias

Lo revise  ;-)  y por eso te digo que no mezcles el terminal virtual y el compim, usa solo uno, si usas los dos se genera un warm de logic contention y eso hace que no funcione...

saludos
El papel lo aguanta todo

Desconectado Miquel_S

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1251
Re: Leer temperatura y hora lectura y guardar en la eeprom
« Respuesta #10 en: 17 de Enero de 2010, 05:45:51 »
Gracias MLO lo probare y digo cosas...

Saludos
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.

Desconectado Miquel_S

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1251
Re: Leer temperatura y hora lectura y guardar en la eeprom
« Respuesta #11 en: 17 de Enero de 2010, 13:10:26 »
Bueno, vamos por partes, he simulado el codigo con el virtual terminal sin el compim, como aconseja MLO de no usar las dos cosas a la vez y el resultado es que puedo leer los dos mensajes que serian del menu pero nada mas:

Pulsar 1 para leer datos
Pulsar 2 para visualizar datos

El  Lcd no visualiza nada, y se pulso 1 o 2 se me escriben en el terminal virtual pero sin resultado alguno.

La otra cosa que he probado es lo siguiente, leo textualmente:

El ISIS de PROTEUS proporciona un potente componente (COMPIM) que permite la simulacion a traves del puerto serie. Utilizando este componente no es necesario añadir al esquema del PIC un MAX232, ya que el propio componente gestiona la comunicacion con el puerto del PC. Utilizando este componente podemos comunicarnos con el propio PC (si tiene dos puertos serie o 1 puerto serie y un puerto USB -utilizando el convertidor-.

Para probar el ejemplo se pueden utilizar dos PC o un PC con dos puertos serie. Para observar los datos que envia el PIC se utiliza un COMPIM y tambien se puede utilizar un COMPIM para leer los datos que entran por el PC.
Por en el Virtual Terminal se pueden comprobar los datos de salida y entrada. En este caso se han conectado los dos puertos serie del PC(COM1 y COM2 con un cable).

Pero despues de esto sigo con el LCD en blanco y sin lectura de la eeprom ni lectura del sensor de temperatura.
PD: No sera que en la simulacion yo quiero ver lo que no se puede ver al ser una simulacion.

Miquel_S
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.

Desconectado Miquel_S

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1251
Re: Leer temperatura y hora lectura y guardar en la eeprom
« Respuesta #12 en: 17 de Enero de 2010, 13:36:20 »
 :-/ :-/ :-/ :-/ :-/
Ahora funciona no se el porque pero la simulacion funciona.
 :-/ :-/ :-/ :-/ :-/
Gracias compañeros
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.

Desconectado ramirez

  • PIC16
  • ***
  • Mensajes: 195
Re: Leer temperatura y hora lectura y guardar en la eeprom
« Respuesta #13 en: 17 de Enero de 2010, 16:07:05 »
Hola Miguel_S, ¿Has modificado algo?, ya que yo no consigo ver nada por el LCD.¿Que versión de ISIS tienes?

Saludos y gracias

Desconectado Miquel_S

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1251
Re: Leer temperatura y hora lectura y guardar en la eeprom
« Respuesta #14 en: 17 de Enero de 2010, 16:30:31 »
Hola ramirez la unica modificacion que he hecho a sido el terminal virtual te paso el archivo para que lo veas, la version del proteus es la 7.2 Profesional
Saludos
Miquel_S
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.


 

anything