Autor Tema: ccs pcwhd 4.130 - tablas de 12x12 - ayuda con envio de datos pic a pc  (Leído 3544 veces)

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

Desconectado gonzalocimma

  • PIC10
  • *
  • Mensajes: 10
Necesito una ayudita para simplificar codigo y no escribir mucho, como hago para cargar los valores de la memoria en el array G
  • , desde ya muchas gracias

index empieza en 0 y otra cosa mas, addr aumenta de a 1, pero en la posicion de la memoria aumenta de a 1 tambien.

Const byte G[144]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52
,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106
,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143} ;

void CARGAR(int index) {
   byte addr=0x00 ;

   for (index=0;index<144;index++,addr++) {
      G[index]=read_eeprom(addr) ;
printf("A:%u \r", g[index]) ;
   }
}

« Última modificación: 24 de Febrero de 2013, 23:29:45 por gonzalocimma »

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: ccs pcwhd 4.130 - ayuda para simplificar codigo
« Respuesta #1 en: 14 de Febrero de 2013, 17:52:35 »
Que quieres mejorar??
Ese código funciona??
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado gonzalocimma

  • PIC10
  • *
  • Mensajes: 10
Re: ccs pcwhd 4.130 - ayuda para simplificar codigo
« Respuesta #2 en: 14 de Febrero de 2013, 18:23:25 »
Que quieres mejorar??
Ese código funciona??

no hace lo que quiero, necesito cargar 143 variables que van desde G[0] a G[143] esos datos estan la la eeprom empiezan en 0x00 y hasta cubrir los 144 para no escribir

G[0]=read_eeprom
g[1]=read
....


Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: ccs pcwhd 4.130 - ayuda para simplificar codigo
« Respuesta #3 en: 14 de Febrero de 2013, 19:07:22 »
Pruebalo asi:

Código: C
  1. void CARGAR(int index)
  2. {
  3.    byte addr=0x00 ;
  4.  
  5.    for (index=0;index<144;index++)
  6.     {
  7.       G[index]=read_eeprom(addr) ;
  8.        addr++;
  9.        printf("A:%u \r", g[index]) ;
  10.      }
  11. }
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado gonzalocimma

  • PIC10
  • *
  • Mensajes: 10
Re: ccs pcwhd 4.130 - ayuda para simplificar codigo
« Respuesta #4 en: 14 de Febrero de 2013, 19:15:41 »
gracias desde ya, pero lo que me pone es g[index] y yo necesito ver que valor tiene ese g[index] que es un valor guardado en la memoria eeprom

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: ccs pcwhd 4.130 - ayuda para simplificar codigo
« Respuesta #5 en: 14 de Febrero de 2013, 22:25:17 »
Es que G, esta declarado como constante, por lo tanto unca cambiara de valor.

Debes declararlo asi:

 byte G[144];
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado gonzalocimma

  • PIC10
  • *
  • Mensajes: 10
Re: ccs pcwhd 4.130 - ayuda para simplificar codigo
« Respuesta #6 en: 14 de Febrero de 2013, 23:21:31 »
bueno ahora parece que si quedo, muchas gracias, sigo programando y si necesito algo mas pido ayuda devuelta, gracias.

Desconectado gonzalocimma

  • PIC10
  • *
  • Mensajes: 10
Re: ccs pcwhd 4.130 - ayuda para simplificar codigo
« Respuesta #7 en: 16 de Febrero de 2013, 12:12:48 »
bueno ahora vengo con otra consulta, en visual basic se pueden hacer vectores de este tipo

Dim vector(11, 11) As Integer

o sea que hago una tabla de 12 x 12, en ccs puedo hacer lo mismo, en vez de declarar

byte G[144]={0.......}
hay alguna opcion de G[11,11]

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: ccs pcwhd 4.130 - ayuda con tablas de 12x12
« Respuesta #8 en: 16 de Febrero de 2013, 19:11:33 »
Si que hay, se declara asi:

G[11][11];
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado gonzalocimma

  • PIC10
  • *
  • Mensajes: 10
Re: ccs pcwhd 4.130 - ayuda con tablas de 12x12
« Respuesta #9 en: 17 de Febrero de 2013, 01:53:40 »
Si que hay, se declara asi:

G[11][11];

ok, y como se utiliza
var=G[a] ;
donde a y b van desde 0 a 11

el tema es asi, tengo que cargas 144 constantes y la mejor forma es tipo tabla, ya que despues la voy a buscar por valores en a y b, mi duda y debido a mi poca experiencia con los valores de las eeprom, es que si empiezo un bucle con addr = memoria 0x00 por ej.  y siempre hago la misma carga o sea que las primeras 144 posiciones de la memoria van a cargas siempre igual haciendo addr++ o yo posicionandome en un lugar expecifico de la memoria por ej. 0x90 y de ahi arrancar con el proceso de carga de variables, la cuestrion es si el addr++ respeta el orden de la memoria, si aumenta de a una posicion.

tengo una semana complicada, se me rompio la pc donde tenia toda la informacion de programas y demas, y hoy grabando un 18f4431, no me borra uno y el otro si, y tuve que meterle mano al programador viejo que tengo, un te20 que andaba perfecto, vamos a ver como sigue, y en un protoboard hacia andar el 18f4431 bien, pero hoy ni idea, nada. bueno manana sera otro dia.

Desconectado ppyote

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 929
Re: ccs pcwhd 4.130 - ayuda con tablas de 12x12
« Respuesta #10 en: 17 de Febrero de 2013, 06:56:35 »
se hace asi...

int8 dato_temporal[3];

int8 valores[12][12]=
{0,1,2,3,4,5,6,7,8,9,10,11,
12,13,14,15,16,17,18,19,20,21,22,23,
24,25,26,27,28,29,30,31,32,33,34,35,
36,37,38,39,40,41,42,43,44,45,46,47,
48,49,50,51,52,53,54,55,56,57,58,59,
60,61,62,63,64,65,66,67,68,69,70,71,
72,73,74,75,76,77,78,79,80,81,82,83,
84,85,86,87,88,89,90,91,92,93,94,95,
96,97,98,99,100,101,102,103,104,105,106,107,
108,109,110,111,112,113,114,115,116,117,118,119,
120,121,122,123,124,125,126,127,128,129,130,131,
132,133,134,135,136,137,138,139,140,141,142,143} ;

dato_temporal[0]=valores[2][2];    // tendria un valor de 14
dato_temporal[1]=valores[6][11];    // tendria un valor de 83
dato_temporal[2]=valores[11][5];    // tendria un valor de 137

cada 12 variables cambia de array....


« Última modificación: 17 de Febrero de 2013, 07:07:24 por ppyote »
PPyote... siempre estareis en mi corazon.... Te quiero Hermano...

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: ccs pcwhd 4.130 - ayuda con tablas de 12x12
« Respuesta #11 en: 17 de Febrero de 2013, 11:49:33 »
Excelente explicacion !!
Falto un detalle, si bien declaras 12 elementos, el primer dato apuntado arranca en 0 y el ultimo de cada tabla en 11...
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado ppyote

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 929
Re: ccs pcwhd 4.130 - ayuda con tablas de 12x12
« Respuesta #12 en: 17 de Febrero de 2013, 12:29:56 »
Excelente explicacion !!
Falto un detalle, si bien declaras 12 elementos, el primer dato apuntado arranca en 0 y el ultimo de cada tabla en 11...

Buena puntualización... Es cierto que sí uno no está al tanto puede tener problemas con los array... Lo se por propia experiencia
gracias por la aclaración MGLSOFT
PPyote... siempre estareis en mi corazon.... Te quiero Hermano...

Desconectado gonzalocimma

  • PIC10
  • *
  • Mensajes: 10
Re: ccs pcwhd 4.130 - ayuda con tablas de 12x12
« Respuesta #13 en: 21 de Febrero de 2013, 00:40:25 »
gracias por el ej. igual creo que si lo declaras del 1 al 144 no tomo el 0 o seria del 1 al 12, ahora cuando yo leo la eeprom la guardo en la variable xxxx[1][1] por ej. y cuando quiero saber ese dato
solo leo la variable o la igualo a esa variable, el tema es que tengo que cargar una tabla de 12x12 y aparte a esa tabla se le agregan 12 valores para x y 12 para y , de acuerdo a esos valores de x e y  me posiciono en la tabla y tomo el valor indicado, yo creo que estamos bien con el tema como vamos, asi es la forma de acceder rapidamente a los datos, pero para mejor, tengo 2 tablas de estas, y voy a tener que utilizar un dspic por la memoria o colocar una memoria externa, que de ultima no seria tan malo, ya que a estos datos accedo una vez a la entrada y listo, lo otro es que tengo que manejar una salida de pwm para activar unos injectores y con el pic18f4431 que tiene la opcion de motor pwm me serviria a la perfeccion, el tema es que tengo que tener un tiempo maximo de apertura de 40ms y un minimo de 10ms eso lo manejaria con el duty cycle, el tema es que no se si con este pic puedo llegar a esos valores de tiempo, sigo buscando informacion, por ahora estoy haciendo un programa en visual basic para la comunicacion con el pic, bueno gracias y sigo pendiente al tema.

Desconectado gonzalocimma

  • PIC10
  • *
  • Mensajes: 10
Re: ccs pcwhd 4.130 - ayuda con envio de datos del pic a pc
« Respuesta #14 en: 24 de Febrero de 2013, 23:29:07 »
Devuelta con otra consulta

necesito enviar datos del pic al pc
largo del mensaje = 50 a 80 caracteres
tiempo maximo de envio 5 ms
se puede lograr ya que lo intento por el puerto com
y no puedo obtener todo el largo de 49 caracteres en ese tiempo, solo si lo llevo a 100 ms y eso es demasiado para lo que quiero
existe otro forma, quizas usb, cual seria el tiempo minimo que podria obtener para los 50 caracteres.

gracias desde ya.