Autor Tema: Creacion de estructuras en CCS?  (Leído 7922 veces)

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

Desconectado RALF2

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2060
Creacion de estructuras en CCS?
« en: 19 de Enero de 2009, 19:00:03 »
Que tal amigos!
Estoy iniciandome en el CCS  :-/  y aunque me he leido muchos de los post que han colocado y los ejemplos me quedan aun ciertas dudas que espero que me las puedn aclarar  :shock:

Asi comienso preguntando:
Como se crean las estructuras(structures)?.
Lei la ayuda pero nada no entendi ni pio   :D
En la lbreria lcd.c definen una estructura asi

struct lcd_pin_map {                 // This structure is overlayed
           BOOLEAN enable;           // on to an I/O port to gain
           BOOLEAN rs;               // access to the LCD pins.
           BOOLEAN rw;               // The bits are allocated from
           BOOLEAN unused;           // low order up.  ENABLE will
           int     data : 4;         // be pin B0.
        } lcd;

Bueno aqui me surgen un monton de dudas:
utilizan una variable tipo boolean que segun entiendo debe ser igual que short o int1?
luego tiene una int data : 4, que ni idea de lo que sera  :(
y por ultimo tenemos lcd;  que no se que hace alli  :8}

Me podrian dar una ayudita explicando me que es cada cosa, por favor   :mrgreen:

Ah y se me olvidaba esto que es lo que hace:
struct lcd_pin_map const LCD_WRITE = {0,0,0,0,0}; // For write mode all pins are out
struct lcd_pin_map const LCD_READ = {0,0,0,0,15}; // For read mode data pins are in

Ni idea  :(

Saludos



Desconectado reiniertl

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1187
Re: Creacion de estructuras en CCS?
« Respuesta #1 en: 19 de Enero de 2009, 19:33:32 »
sobre los boolean tienes razón
sobre int data:4, te hace un entero de 4 bits, que en este caso irán a parar a la parte alta del mismo registro donde se pone todo el struct, esto solo se puede hacer con compiladores como CCS, ya que no creo que esté en el estándar de C.

lcd; crea una variable del tipo lcd_pin_map. El concepto aquí es simple, lo que viene después de la palabra reservada struct es una definición de tipo que luego se puede utilizar para crear variables de ese tipo. Además de eso C te deja crear una variable del tipo que se acaba de definir inmediatamente después de su definición, en este caso, después de la llave.


Me podrian dar una ayudita explicando me que es cada cosa, por favor   Mr. Green

Ah y se me olvidaba esto que es lo que hace:
struct lcd_pin_map const LCD_WRITE = {0,0,0,0,0}; // For write mode all pins are out
struct lcd_pin_map const LCD_READ = {0,0,0,0,15}; // For read mode data pins are in

Estas dos líneas crean dos constantes del tipo lcd_pin_map, LCD_WRITE y LCD_READ, y le asigna valores, así de simple. Estas constantes luego las puedes utilizar para trabajar con la LCD.

Saludos
Reinier

Desconectado gera

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2188
Re: Creacion de estructuras en CCS?
« Respuesta #2 en: 19 de Enero de 2009, 19:35:02 »
Es facil, una estructura es un conjunto de variables de distintos tipos. Suponete q tenes un elemento con muchos atributos, por ejemplo un auto, y los atributos son la marca, el color, y el kilometraje. Entonces definimos una estructura "auto" con sus atributos:
Código: [Seleccionar]
struct auto{char* marca, char* color, int km};Para hacerlo mas comodo visualmente le podemos dar la forma
Código: [Seleccionar]
struct auto{
   char* marca,
   char* color,
   int km
};
Entonces ahora podemos acceder a las variables de nuestra estructura de la siguiente manera:
Código: [Seleccionar]
auto.marca="ferrari";
Si te pones a estudiar en profundidad se puede volver un poquito complejo, porq podes definir tipos de estructuras y cosas asi q son muy utiles. Te recomiendo q leas algun libro de C, o busques un poco por internet.
saludos!

"conozco dos cosas infinitas: el universo y la estupidez humana. Y no estoy muy seguro del primero." A.Einstein

Desconectado RALF2

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2060
Re: Creacion de estructuras en CCS?
« Respuesta #3 en: 19 de Enero de 2009, 20:08:57 »
Gracias amigos por sus respuestan tan veloces  :mrgreen:

No obstante me quedaron algunas dudillas  :?
reiniertl:
struct lcd_pin_map const LCD_WRITE = {0,0,0,0,0}; // For write mode all pins are out
struct lcd_pin_map const LCD_READ = {0,0,0,0,15}; // For read mode data pins are in
Estas dos líneas crean dos constantes del tipo lcd_pin_map, LCD_WRITE y LCD_READ, y le asigna valores, así de simple. Estas constantes luego las puedes utilizar para trabajar con la LCD.

ESto me dejo frio   :2]
Eso asigna un bloque de constantes a una estructura eso si que esta intersante.
Eso no lo se donde lo explicaran porque no lo he visto por ningun lado  :shock:

La forma como asignan valores a la estructura esta muy interesante  :mrgreen:
debo probarla


Desconectado reiniertl

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1187
Re: Creacion de estructuras en CCS?
« Respuesta #4 en: 19 de Enero de 2009, 21:00:09 »
Estas dos líneas le dicen al compilador que debe poner en memoria de programas dos constantes, una llamada LCD_WRITE y otra LCD_READ, esto lo sabe el compilador por la directiva "const", ahora una constante debe estar "tipeada" para ello es que utilizas en la declaración en lugar de un tipo estándar un tipo definido por tí, en este caso el tipo es "lcd_pin_map" pero como este compilador es de C y no de C++, y el tipo no es de los que vienen por defecto con el compilador debes anteponer el struct, puesto que tu definición de "lcd_pin_map" es del tipo struct, y valga la redundancia.

Ahora una vez en ejecución, tu programa dispone de dos constantes del tipo "lcd_pin_map" que además están inicializadas con los valores que has puesto entre las llaves que crean a las constantes. Los valores en la llave no son del tipo entero, los 4 primeros son int1 o short que son valores de 1 bit para este compilador y el último es un entero de 4 bits. A diferencia de C estándar en que el dato menor es de 8 bits, el compilador de CCS puede manejar datos de un bit, 2 bits, 3 bits y ese tipo de cosas que se salen del estándar.

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: Creacion de estructuras en CCS?
« Respuesta #5 en: 20 de Enero de 2009, 00:08:45 »
hola, pues lo del LCD ni yo lo entendí nunca me metí con ese, jeje, para usar estructuras yo hago lo que hace el amigo de acá: http://www.todopic.com.ar/foros/index.php?topic=5730.msg31714#msg31714 existen dos formas de crear las estructuras, yo uso la primera, me parece más elegante

espero sirva de ayuda amigo, un saludo!
.

Desconectado gera

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2188
Re: Creacion de estructuras en CCS?
« Respuesta #6 en: 20 de Enero de 2009, 01:36:30 »
Citar
struct total
      {
         int1 x;
         int1 y;
         int1 z;
         int1 w;
      };

struct total var1;   //variable de tipo total
Mira vos, no conocia esta forma de crear estructuras. Es del C estandar? Yo siempre uso typedef, me es mas familiar y es mas facil de entender q estas creando un tipo.
saludos!

"conozco dos cosas infinitas: el universo y la estupidez humana. Y no estoy muy seguro del primero." A.Einstein

Desconectado reiniertl

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1187
Re: Creacion de estructuras en CCS?
« Respuesta #7 en: 20 de Enero de 2009, 19:41:07 »
Si gera, esa forma es del C estándar

Desconectado gera

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2188
Re: Creacion de estructuras en CCS?
« Respuesta #8 en: 20 de Enero de 2009, 19:58:39 »
Muchas gracias reiniertl! La verdad q tantos años estudiando C y uno nunca termina de aprender jaja.
Saludos!

"conozco dos cosas infinitas: el universo y la estupidez humana. Y no estoy muy seguro del primero." A.Einstein

Desconectado RALF2

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2060
Re: Creacion de estructuras en CCS?
« Respuesta #9 en: 20 de Enero de 2009, 21:52:12 »
Muchas gracias amigos!
Muy interesantes todas sus respuestas y me han servido de mucho para ir entendiendo el tema respecto a las estructuras.   :mrgreen:
Yo de C solo C que no C nada  :D

Estoy empesando a estudiarlo y ya he aprendido mucho gracias a los ejemlos que han posteado en el foro :mrgreen:

Bueno seguire estudiando el ccs y practicando con el, cualquier duda estare de nuevo por aqui  :mrgreen:

Saludos

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: Creacion de estructuras en CCS?
« Respuesta #10 en: 21 de Enero de 2009, 00:01:28 »
La verdadera potencia de las estructuras la tenemos en las "uniones". Podéis ver un ejemplo de uso en:

http://www.todopic.com.ar/foros/index.php?topic=4867.msg36512#msg36512

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 MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Creacion de estructuras en CCS?
« Respuesta #11 en: 29 de Abril de 2009, 01:24:39 »
Hola.

Se podria hacer algo como un int64 a partir de la union de dos int32? o estoy hablando pabadas ....
El papel lo aguanta todo