Autor Tema: Capacidad de un PIC  (Leído 6320 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado sander

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 624
Re: Capacidad de un PIC
« Respuesta #15 en: 30 de Abril de 2007, 10:46:47 »
Pablo , en cual PICC estas programando ??, en el de ccs , hit-tech , otro??

saludos
La electrónica es el arte de manipular señales eléctricas que transportan información
Jan Davidse

Visita mi blog
Visita mi canal de youtube

Desconectado microman

  • PIC10
  • *
  • Mensajes: 17
Re: Capacidad de un PIC
« Respuesta #16 en: 30 de Abril de 2007, 11:54:43 »
En ccs para colocar una tabla en la ROM se hace de la sge. forma:

byte const char MenuD[5][20] = {"Conf. Temperatura ","Calibrar PH","Timers","Conf. General","Volver"};
Pero hacerlo de esta forma es ineficiente puesto q malgastas espacio en ROM ya que no todas las lineas de tu menu no tienen la misma longitud y habrá espacio de ROM sin utilizar
Te conviene usar un array por cada linea y agruparlos en una estructura:

struct menus {
    byte const char Menu1[16]={"Conf. Temperatura"};
    byte const char Menu2[11]={"Calibrar PH"};
    byte const char Menu3[6]={"Timers"};
    byte const char Menu4[13]={"Conf. General"};
    byte const char Menu5[6]={"Volver"};
} Menu;


De esta forma ahorras espacio. Y como te lo indico maunix escribe linea por linea sin necesidad de agregar espacios en blanco que tb son caracteres y estos ocupan espacio.

Saludos

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Capacidad de un PIC
« Respuesta #17 en: 30 de Abril de 2007, 12:53:27 »
tenes raxon maunix, garrafal error el mio, eso me pasa porque justo ese dia estaba viendo la pagina de cika y en est figura asi:
 018018F452-2      PIC18F452-I/L      MICRO CTRL 16KF 1K5R 256E 34I/O ADC10      MICROCHIP      U$ 10.6      10.5      > 27 unid.
   018018F4520    PIC18F4520-I/PT    32 KB Enh Flash, 3804 RAM,36 I/O,Pb Free    MICROCHIP    U$ 12    10.5    > 160 unid.

Gracias por la correcion  :)

No hay de que... sabía la respuesta porque he usado el 18F452 y ahora uso el 18F4520 con mucha frecuencia.

Moraleja: así como no hay que confiar en todo lo que wikipedia y sitios personales nos dicen, hay que hacer lo mismo con las páginas de los vendedores... hay que ir a la fuente.  Esto lo traigo a colación porque a veces los artículos en wikipedia (aclaro que no hablo de la wikipic) traen errores garrafales.  y las páginas personales... bueno... ejem...  :?  :shock:  :(
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado pablo

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 253
Re: Capacidad de un PIC
« Respuesta #18 en: 30 de Abril de 2007, 17:01:32 »
Muchas gracias. La verdad no se me habia ocurrido. Lo de la estructura lo pruebo ya, con respecto a trabajar con un un puntero a la rom me me doy cuenta como es si podes orientarme mas te lo agradeceria, sino investigo un poco.
Por lo pronto voy a probar lo de la estructura.

Muchisimas gracias por la ayuda.
Saludos

Desconectado pablo

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 253
Re: Capacidad de un PIC
« Respuesta #19 en: 30 de Abril de 2007, 19:09:24 »
Bueno acabo de probarlo.
Lo de rom no se como usarlo despues.

Probe esto y no cambio nada
byte const char MenuD[5][20] = {"Conf. Temperatura ","Calibrar PH","Timers","Conf. General","Volver"};

Despues probe esto y me marco un error: expecting an identifier
struct menus {
    byte const char Menu1[17]={"Conf. Temperatura"};
    byte const char Menu2[11]={"Calibrar PH"};
    byte const char Menu3[6]={"Timers"};
    byte const char Menu4[13]={"Conf. General"};
    byte const char Menu5[6]={"Volver"};
} Menu;

Voy a seguir probando pero si se dan cuenta del error por favor avisenme.

Gracias
Pablo

Desconectado Renatox_

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 541
    • máquinas cnc
Re: Capacidad de un PIC
« Respuesta #20 en: 30 de Abril de 2007, 23:28:36 »
 Hola, algo que te falta poner es el caracter nulo "\0" en las cadenas, lo puedes hacer quitándole los números y dejando solo los corchetes [], el compilador creará al final de la cadena el caracter nulo.

 Los tamaños de las cadenas serían 18+1,11+1,6+1,13+1,6+1.
control de movimiento

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: Capacidad de un PIC
« Respuesta #21 en: 01 de Mayo de 2007, 09:54:35 »
Existe otra posibilidad para no ocupar tanta memoria de programa con las cadenas de caracteres y es utilizar una memoria externa, la cual podemos leer via I2C o SPI o cualquier otro procedimiento. Cuando necesitamos una cadena, la leemos de la memoria la ponemos en la memoria RAM del micro y la visualiamos. De esta forma no tendremos limitaciones y como los tiempos no son criticos aunque la lectura sea un poco lenta, no tendras mas problemas.

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 microman

  • PIC10
  • *
  • Mensajes: 17
Re: Capacidad de un PIC
« Respuesta #22 en: 02 de Mayo de 2007, 19:21:15 »
Citar
Bueno acabo de probarlo.
Lo de rom no se como usarlo despues.

Probe esto y no cambio nada
byte const char MenuD[5][20] = {"Conf. Temperatura ","Calibrar PH","Timers","Conf. General","Volver"};

Despues probe esto y me marco un error: expecting an identifier
struct menus {
    byte const char Menu1[17]={"Conf. Temperatura"};
    byte const char Menu2[11]={"Calibrar PH"};
    byte const char Menu3[6]={"Timers"};
    byte const char Menu4[13]={"Conf. General"};
    byte const char Menu5[6]={"Volver"};
} Menu;

Voy a seguir probando pero si se dan cuenta del error por favor avisenme.

Gracias
Pablo

Disculpame pablo por haberte dado una respuesta sin antes realizar una adecuada verificacion del codigo.
Prueba esto....(ya lo he compilado... 8) y me resultó)

struct menus
{
    char submenu1[18];
    char submenu2[12];
    char submenu3[7];
    char submenu4[14];
    char submenu5[7];
};

typedef struct menus _menu;

   _menu const Menu ={"Conf. Temperatura","Calibrar PH","Timers","Conf. General","Volver"};


Otra opcion es escribir en la EEPROM interna del micro y luego enviarlos al LCD...

Espero haberte ayudado mejor

Saludos

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Capacidad de un PIC
« Respuesta #23 en: 03 de Mayo de 2007, 08:27:34 »
Creo que hacer structs con strings de tamaño fijo, para rutinas que serán de menús que no siempre tengan el mismo tamaño en cada una de las palabras, nos ata mucho a tener que modificar mucho código si algo del menú cambia o si por otra parte queremos agregar otra linea.

A mi modo de verlo, lo haría más simple, más como al principio, donde se definan solamente strings en ROM , de largo variable terminadas con un nulo y listo.  Es simple, actualizable y no rígido.

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado pablo

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 253
Re: Capacidad de un PIC
« Respuesta #24 en: 03 de Mayo de 2007, 08:29:07 »
Muchas gracias. Ya optimice un poco el codigo y baje un 10%.

Les agradezco, voy tratar de ir probando tambien lo de la eeprom.

Muchas gracias por la ayuda.
Saludos
Pablo