Autor Tema: Funcion que acepta una constante como parametro  (Leído 2881 veces)

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

Desconectado Marito_26

  • PIC10
  • *
  • Mensajes: 37
Funcion que acepta una constante como parametro
« en: 12 de Marzo de 2011, 20:36:14 »
Buen dia a todos

       Estoy haciendo una funcion que me ayude de la siguiente manera, para no volver a escribir el parametro u ocupar mas memoria, pretendo hacer una funcion donde use variables declaradas y las llame por medio de dicha funcion y las concatene,
solo me falta saber como poder crear una funcion que acepte un parametro de una variable para poder
saber cual es su tamaño (sizeof) y visualizarlo en mi lcd, esto con el fin de poder saber que tamaño
tiene mi array, como seria posible?  Tengo algo que he intentado hacer pero no me da el tamaño de vector
que en este caso seria de 8

Código: C++
  1. char DIRECCCION[]={0x00,0x13,0xA2,0x00,0x40,0x60,0x6D,0x23};
  2.  
  3. void demo(char *ptr)
  4. {
  5.  int8 size=0;
  6.  size=sizeof(ptr);
  7.  printf(lcd_putc,"%u",size);
  8.  
  9. }
  10.  
  11. void main(void)
  12. {
  13.  lcd_init();
  14.  
  15.  while (TRUEn
  16. {
  17.  demo(DIRECCION);   // Es la funcion que necesito introducirle variables que contienen diferentes tamanos de array, pues la direccion puede variar de tamano
  18. }
  19.  
  20. }

Saludos cordiales

Lo que intento hacer es una funcion que me concatene arrays con valores hexadecimales, declarando en la RAM sus direcciones y llamando las variables que necesite para concatenar en el orden que deseo y no escribir toda la cadena



Desconectado Marito_26

  • PIC10
  • *
  • Mensajes: 37
Re: Funcion que acepta una constante como parametro
« Respuesta #1 en: 15 de Marzo de 2011, 16:41:03 »


Alguien que me pueda ayudar   :oops:


Saludos a todos

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7918
Re: Funcion que acepta una constante como parametro
« Respuesta #2 en: 15 de Marzo de 2011, 20:52:17 »
Cual es la razón de averiguar la cantidad de caracteres?? :shock: :shock:
Si entra en el display no hay problemas, y si no entra no podrás dividirla... :mrgreen: :mrgreen:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado Marito_26

  • PIC10
  • *
  • Mensajes: 37
Re: Funcion que acepta una constante como parametro
« Respuesta #3 en: 16 de Marzo de 2011, 00:30:26 »


               En realidad no es necesario desplegarlo en el display, pero lo que si quiero es que la funcion me permita concatenar valores hexadecimales, los cuales no son caracteres, pues ya que hay tambien entre esos valores un 0x00 y eso hace que finalice la cadena.

Lo que pretendo es realizar una funcion que me permita concatenar estos valores uno a uno, donde solo lo haga asi

Código: C++
  1. char START[]={0x7E};
  2. char DIRECCCION[]={0x00,0x13};
  3. char DATO[]={0x41, 0x42};
  4. char BROADCAST[]={0x20,0x23};
  5. char CHECKSUM[]={0xF0};
  6. char ARRAY_2_SEND[];
  7.  
  8. void concatenar()   // En esta funcion que me logre concatenar cada uno de ellos y este integro en una array, pero resulta que la longitud de cada parametro varía
  9. {
  10.                            // Al final que ARRAY_2_SEND contenga la concatenacion del START, DIRECCION, DATO, BROADCASTy CHECKSUM
  11. }                          //CHECKSUM[]={0x7E,0x00,0x13,0x41,0x42,0x20,0x23,0xF0};  <--ARRAY que luego enviare por seria


Por eso desde un prinicipio lo que queria lograr es obtener la longitud de la cadena para luego al obtener el numero de caracteres, pueda hacer el recorrido con un for y concatenar uno por uno pero estoy muy atorado con esto dede hace mas de dos semanas.


Espero haya sido explicito con lo que quiero lograr :oops:

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7918
Re: Funcion que acepta una constante como parametro
« Respuesta #4 en: 16 de Marzo de 2011, 08:08:43 »
Mira bien las rutinas de modbus que trae CCS, alli concatena arrays de diferentes longitudes y hace el cheksum del mismo.
Empaqueta todo para enviar y desempaqueta el array recibido.
Esta para Modbus RTU y también para ASCII, asi que uno u otro te va a servir, seguramente.
Seguramente dirás: Uhh!! que facil era hacerlo !! :D :D :D
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado Marito_26

  • PIC10
  • *
  • Mensajes: 37
Re: Funcion que acepta una constante como parametro
« Respuesta #5 en: 16 de Marzo de 2011, 19:29:42 »


         Veo que es mas complejo de manejar ademas que el ejemplo modbus del master maneja un PIC24

Lo que necesitaba armar un string completo que se le enviara a un XBEE, por medio de la concatenacion de arrays declarados en el programa ya sea en la RAM o ROM
para no ocupar mas RAM si armo un string completo para cada secuencia si tengo una funcion que me las pueda armar, el XBEE tiene su propio CRC al enviar y recibir

 :oops:

Desconectado Marito_26

  • PIC10
  • *
  • Mensajes: 37
Re: Funcion que acepta una constante como parametro
« Respuesta #6 en: 18 de Marzo de 2011, 02:21:42 »
?????


 

anything