Autor Tema: Simular BITS  (Leído 4496 veces)

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

Desconectado Marttyn

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1835
    • IDEAA
Simular BITS
« en: 22 de Enero de 2009, 04:17:25 »
Hola! Esta es una de las pocas veces que simulo un circuito antes de montarlo, ya que habitualmente mis circuitos suelen ser bastante simples.
Pero ahora queria simular un circuito, en el cual mi PIC usa variables "short" o "int1" (programo en C).
Lo curioso es que al simular el circuito proteus me clasifica esas variables como "string", y me pone que tienen un formato no valido... LOGICO, si son BITS!  :x



Como se puede ver todo lo del recuadro rojo son bits... Hay algun problema con proteus y los bits?
Salu2
La gente ve las cosas que existen y se pregunta por qué.
Yo prefiero imaginar lo que no existe y preguntarme por qué no.

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: Simular BITS
« Respuesta #1 en: 22 de Enero de 2009, 17:26:03 »
a mi me pasa lo mismo, pero creo que se solucionaba usando una variable con estructuras de 1 bit.

saludos  :-/
a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com

Desconectado Marttyn

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1835
    • IDEAA
Re: Simular BITS
« Respuesta #2 en: 22 de Enero de 2009, 17:33:36 »
Me alegro no ser el unico... es decir, no me alegro que a ti te pase lo mismo, sino que me alegro de saber que le fallo no es mio  :D

A que te refieres con variables con estructuras de 1 bit?
Salu2
La gente ve las cosas que existen y se pregunta por qué.
Yo prefiero imaginar lo que no existe y preguntarme por qué no.

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: Simular BITS
« Respuesta #3 en: 22 de Enero de 2009, 18:00:48 »
Me alegro no ser el unico... es decir, no me alegro que a ti te pase lo mismo, sino que me alegro de saber que le fallo no es mio  :D

jajajaj justo toy pasando un mal rato y tu comentario me arranco una risa, gracias  :mrgreen:

bueno es algo asi:

struct _tiempo{
   struct{
      unsigned segundos:1;//valor 1 bit
      unsigned minutosch:1;//valor 1 bit
      unsigned horas:1;//valor 1 bit
      unsigned dias:1;//valor 1 bit
   };
}tiempobits;   

entonces cuando los usas...

         tiempobits.segundos=1;

o sino

         tiempobits.dias=0;

a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com

Desconectado Marttyn

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1835
    • IDEAA
Re: Simular BITS
« Respuesta #4 en: 22 de Enero de 2009, 20:59:05 »
Mmmm que fastidio tener que hacerlo asi... :?
Me quedare sin simularlo...

Venga amigo! Arriba el animo! Sabes cual fue mi mayor felicidad con un PIC? La primera vez que pude encender un led!  :mrgreen: Prueba a ver si te hace sentir mejor  :-/
Salu2
La gente ve las cosas que existen y se pregunta por qué.
Yo prefiero imaginar lo que no existe y preguntarme por qué no.

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: Simular BITS
« Respuesta #5 en: 22 de Enero de 2009, 21:19:21 »
es que llevo un karma.... antes de que pudiera prender un led con un pic.... me lleve a la otra vida a muchos pics....  :2] por ello mi nick es un homenaje a todos ellos.... :5}
a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com

Desconectado Marttyn

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1835
    • IDEAA
Re: Simular BITS
« Respuesta #6 en: 22 de Enero de 2009, 21:51:40 »
Jaja, que en paz descansen  :|
bueno... al menos los quemaste antes... yo los sigo quemando aun ahora!  :mrgreen:
La gente ve las cosas que existen y se pregunta por qué.
Yo prefiero imaginar lo que no existe y preguntarme por qué no.

Desconectado fjalex

  • PIC18
  • ****
  • Mensajes: 405
    • Proteus - Hubor
Re: Simular BITS
« Respuesta #7 en: 26 de Enero de 2009, 11:05:43 »
Estimado Marttyn:

Te adjunto un hard copy de pantalla. En el programa he definido dos variables i, j ambas como short (no sé que es int1) y como puedes ver se visualizan perfectamente, tanto como un entero como como una cadena de bits.

¿Estás utilizando para la simulación el fichero *.cof o el *.hex? A lo mejor por ahí va el tema.

Un saludo.

Desconectado Marttyn

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1835
    • IDEAA
Re: Simular BITS
« Respuesta #8 en: 26 de Enero de 2009, 15:43:22 »
Hola Alex!
Si a ti te funciona debe ser un problema mio supongo... Pero por que el valor de i en tu imagen ocupa 2 bytes? Al ser un short solo deberia ocupar 1 bit. Ademas, ya se ve por el valor que toma que es mas que 1 bit.
j te muestra el valor bien, pero no te da bien la direccionm porque si es short deberia ponerte 0x006C.1 para saber que es el primer bit del byte 0x006C

Declarar como "short" y declarar como "int1" es lo mismo, solo que short es el standard.
Yo suelo usar int1 (short), int8 (int), int16 (long).... me parecen mas representativos  :mrgreen: pero sobre gustos....

PS: para simular uso el .cof, asi puedo ver las lineas de codigo que se ejecutan.
La gente ve las cosas que existen y se pregunta por qué.
Yo prefiero imaginar lo que no existe y preguntarme por qué no.

Desconectado fjalex

  • PIC18
  • ****
  • Mensajes: 405
    • Proteus - Hubor
Re: Simular BITS
« Respuesta #9 en: 27 de Enero de 2009, 10:16:07 »
Estimado Marttyn:

Siempre se aprende algo nuevo. Nunca había visto referirse a un short como int1. Tomo nota y aprendo.

You uso el compilador c18 y un short está definido como 16 bits y por eso se visualizaba una variable de 16 bits. Si quieres visualizar un número de 8 bits debes definirlo como char.

Creí que tu pregunta venía motivada porque como decías que aparecía como string no podias ver los datos correctamente y por eso te mostré la ventana que te envíe.

Creo que ahora la solución es usar una combinación de las ventanas cpu variables y watch window. La primera te facilita buscar la variable por nombres y te facilita la dirección.

En la segunda puedes consultar los dos bytes de forma independiente.

Te ajdunto hardcopy con ejemplo.

Mi variable i definida como short me ha devuelto la dirección 0x006A (tamaño de 16 bits lógicamente) y me ha apuntado el word entero en la primera ventana.

En la segunda he definido dos variables de tamaño byte con las direcciones 0x006A (byte bajo) y 0x006B (byte alto) y puedes ver que los datos en una y otra coinciden.

Espero que te sirva.

Un saludo.
« Última modificación: 27 de Enero de 2009, 13:58:29 por fjalex »

Desconectado fjalex

  • PIC18
  • ****
  • Mensajes: 405
    • Proteus - Hubor
Re: Simular BITS
« Respuesta #10 en: 27 de Enero de 2009, 14:00:22 »
Adjunto imagen donde se visualiza la variable definida como char, y por lo tanto de 8bits de longitud.

Desconectado Marttyn

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1835
    • IDEAA
Re: Simular BITS
« Respuesta #11 en: 29 de Enero de 2009, 12:17:29 »
Gracias alex por la respuesta!

You uso el compilador c18 y un short está definido como 16 bits y por eso se visualizaba una variable de 16 bits. Si quieres visualizar un número de 8 bits debes definirlo como char.

Como que un short ocupa 16 bits? no tiene sentido... a menos que pueda declarar 16 shorts dentro del mismo. porque si cada short va a ocupar 16 bits, no ahorramos nada :mrgreen:

Citar
Creo que ahora la solución es usar una combinación de las ventanas cpu variables y watch window. La primera te facilita buscar la variable por nombres y te facilita la dirección.

En la segunda puedes consultar los dos bytes de forma independiente.

Ninguna combinacion me permite ver un unico bit, la verdad es raro, ya que asi no se puede hacer un "watch" a un pin en concreto o a un flag determidado. Es bastante engorroso tener que andar mirando el bit 5 dentro de la direccion 0x06 para ver el estado del pin RB.5  :?

pero si es lo que hay... poco se puede hacer.
gracias y salu2! :-/
La gente ve las cosas que existen y se pregunta por qué.
Yo prefiero imaginar lo que no existe y preguntarme por qué no.

Desconectado fjalex

  • PIC18
  • ****
  • Mensajes: 405
    • Proteus - Hubor
Re: Simular BITS
« Respuesta #12 en: 30 de Enero de 2009, 10:21:24 »
Estimado Marttyn:

Te adjunto la hoja del manual del compilador donde verás que define los tipos posibles como:

char ( 8 ), int ( 16 ), short long( 24 ), long( 32 ) :o

El resto de los nombres son repeticiones. Por otro lado esto es lo habitual en c estandar, donde nunca se hace referencias a tipos de bit. En C el acceso a un bit de un byte (o mayor) se hace utilizando máscaras. El acceso a bit normalmente solo se implementa a nivel de máquina en los registros del micro. Si consultas los registros en Proteus, verás que sí hace distinción a nivel de bit. :P

Tampoco me parece que la visión del valor de un bit dentro de la presentación de los 8bits sea muy complicada, aunque sería mucho más cómodo tenerlo independiente. :?

Por cierto para ver el estado de un pin, lo mejor es mirar al gráfico del micro que se pone rojo o azul cuando está alto o bajo. Me parece mucho mejor que tener una ventana watch abierta.

Lo peor de todo este hilo es el final: No se puede ver el estado de un único bit de una mirada.  :shock:

Un saludo.
« Última modificación: 30 de Enero de 2009, 10:24:31 por fjalex »

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2568
Re: Simular BITS
« Respuesta #13 en: 01 de Febrero de 2009, 04:35:33 »
Si quieres visualizar bits individuales con los correspondientes nombres que les pusiste en el programa lo puedes hacer desde MPLAB, desde PROTEUS no se puede.

Un saludo

Desconectado Marttyn

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1835
    • IDEAA
Re: Simular BITS
« Respuesta #14 en: 01 de Febrero de 2009, 13:33:40 »
simple, conciso y directo  :mrgreen:
aunque no se puedan visualizar, los simula bien?
salu2
La gente ve las cosas que existen y se pregunta por qué.
Yo prefiero imaginar lo que no existe y preguntarme por qué no.


 

anything