Autor Tema: pasar tabla de datos a pic12f675  (Leído 2554 veces)

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

Desconectado cheapekt

  • PIC12
  • **
  • Mensajes: 93
pasar tabla de datos a pic12f675
« en: 10 de Abril de 2008, 14:58:29 »
Hola buenas,

En primer término me gustaría agradeceros a los creadores  del foro, sois la guía para millones de usuarios.

Estoy empezando en esto, y no se si lo que quiero hacer es posible, tengo una tabla con datos (en teoria son temperaturas), lo tengo en un formato excel. La pregunta sería es posible volcar directamente esta informacion en el pic.

¿Si es posible me podeis dar algún tipo de pista acerca de esto?

Muy amables, gracias de antemano!

Saludos!

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: pasar tabla de datos a pic12f675
« Respuesta #1 en: 10 de Abril de 2008, 15:23:55 »
Excel tiene un lenguaje de macros muy potente, casi tanto como Visual Basic. No he probado nunca a hacerlo, pero estoy convencido que se puede hacer una comunicación serie controlada desde Excel.
Si eso fuera así, conectando un max232 al PIC podrías enviar los datos directamente desde el PC y operar con ellos con el PIC.
Si no pudiera hacerse directamente, siempre puedes generar un fichero de texto exportado desde Excel y transmitirlo vía Hyperterminal o cualquier otra aplicación parecida.

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: pasar tabla de datos a pic12f675
« Respuesta #2 en: 10 de Abril de 2008, 16:49:28 »
Podrías guardar esa famosa tabla pero en eeprom ya que los 12f675 no se graban a si mismos en su memoria flash.

Ahora si lo que pretendes es pasarlo al código de una forma ágil?  Entonces te conviene hacer uso de la función
CONCATENAR del excel.

Como sería.

Si tienes que armar una tabla con 100 elementos, y los tienes en 100 celdas una debajo de la otra podrías hacer algo así como

      A
 1   10
 2   20
 3   30
 4   40
 5   50
 6   60
 7   70
 8   80
 9   90
10  100


Podrías por ejemplo en la celda B1, poner algo así como


=CONCATENAR("        retlw      .";A1)


Con esto la celda tomará el valor


        retlw      .10


El . indica que el dato es DECIMAL.  Tienes que usar valores enteros para armar una tabla , cuidado con eso.

Si eso lo extiendes para todas tus celdas podrás copiar y pegar la columna b1 en tu código .asm y asunto solucionado.

Lo he hecho muchísimas veces con excelentes resultados.

 :) :)
- 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 cheapekt

  • PIC12
  • **
  • Mensajes: 93
Re: pasar tabla de datos a pic12f675
« Respuesta #3 en: 11 de Abril de 2008, 03:15:54 »
Muchísimas gracias, Nocturno y maunix,

Entiendo lo que decís, para hacer pruebas me valdrá, ¿dices que con tan solo poner el punto el pic ya interpreta que el dato es decimal? que bueno!!!


Observando el datasheet veo  la instruccion que me dices

RETLW       k             Return with literal in W

perdonarme por mi penoso nivel del lenguaje pero esta instrucción que hace exactamente, no se tendría que indicar a que posición envias ese dato? o esa posicion es la W (¿es decir en vez de escribir W tengo que poner la celda de memoria donde quiero ubicar ese dato?)

Lo siento, por mi ignorancia


Gracias!

Desconectado cheapekt

  • PIC12
  • **
  • Mensajes: 93
Re: pasar tabla de datos a pic12f675
« Respuesta #4 en: 11 de Abril de 2008, 03:35:21 »
Según entiendo y he visto por internet



Nemónicos    operandos   Descripción    Ciclos    Flags
RETLW    k    Retorno y carga de W     2     Ninguno

  antes de todo a la letra k le tengo que dar un valor.

luego el contenido de k se vuelca en el contenido de w   que previamente le habré asignado un valor a esa letra


es decir

define w 0X08
define k 0X1c

retlw k

¿el resultado final es que la w valdrá 1c?


Es cierto?

VUelvo a pedir perdón por mi ignorancia, pero tranquilos que esto cambiará.....

Saludos!

Desconectado cheapekt

  • PIC12
  • **
  • Mensajes: 93
Re: pasar tabla de datos a pic12f675
« Respuesta #5 en: 11 de Abril de 2008, 04:13:11 »
Esperar esperar.
Que me parece que lo empiezo a entender, Porque no había observado una página del datasheet .. perdonarme

La w es el acumulador, que solo hay que inicializarlo la primera vez, luego el solo se va incrementando?

Así que tan solo tendría que definir la k .... y el acumulador  ya se irá actualizando prograsivamente.

es asi!!!!!!!!!! :o

jejejee


gracias!!!!.... Que apasionante es el mundo de los pics!

Desconectado cheapekt

  • PIC12
  • **
  • Mensajes: 93
Re: pasar tabla de datos a pic12f675
« Respuesta #6 en: 11 de Abril de 2008, 05:09:11 »
bsf STATUS,RP0     // no se si se tiene que poner

movlw   0x20

retlw      .10
retlw      .11
retlw      .10,6
retlw      .10,7
retlw      .14
retlw      .13
retlw      .16
retlw      .17
retlw      .10,8
retlw      .10,7
retlw      .10
retlw      .10,6
retlw      .10
retlw      .11
retlw      .12


Con esto en el pic he grabado en el banco de registros 1 los datos desde la posición

20 que estará el dato 10 en decimal


o hay que hacer algo para especificar que banco estoy usando  (bsf STATUS,RP0)   por o que he mirado
en el datasheet me parece que hay que poner antes de lo que he puesto eso de arriba   


hasta la posición 34 que estará el dato 12 en decimal


¿es correcto esto que digo?


lo siento por mi ingorancia.

Saludos!

Desconectado cheapekt

  • PIC12
  • **
  • Mensajes: 93
Re: pasar tabla de datos a pic12f675
« Respuesta #7 en: 11 de Abril de 2008, 05:10:34 »
Perdón quería decir banco de registros 0

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: pasar tabla de datos a pic12f675
« Respuesta #8 en: 11 de Abril de 2008, 11:53:54 »
Espera compañero que estas yendo muy rápido pero no en el sentido correcto.  A lo que voy es que estás queriendo codificar más veloz que lo que comprendes del problema y eso no te llevará más que a más problemas... es un consejo de un viejo batallador con los pics.

Lee el datasheet, internalizate bien de cómo funciona una LECTURA DE TABLA ya que eso habías pedido al principio.  Cuando lo mencionaste en tu primer post, de que tenias los datos en un excel y los querías pasar al pic supuse que manejabas estos conceptos.

Volvamos más atrás y te propongo que leas sobre cómo leer una tabla. Lo que se hace con una tabla es tomar en WREG el valor N de la misma.  Por ejemplo, cuando uno llama a una tabla, lo que pretende es en una ocasión leer el décimo valor de la tabla, en otra ocasión el 8vo valor y así sucesivamente.  La tabla es fija, pero uno va eligiendo qué valor tomar.  Sirve para muchas cosas por lo cual uno debe saber cómo aplicarlo.

Lo que debes tener claro es que para manejar números con coma flotante (números con decimales) debes saber muchas muchas cosas más por eso no te quiero complicar el tema con esas cosas.  La tabla hazla con números enteros solamente.  Si pones .10,7 te debiera saltar un mensaje de error, usa solo .10.

Te sugiero te pases por estos hilos así comprendes un poco más de los pics, del assembly y luego recién comienza a codificar. Fíjate que en el post siguiente he puesto un link al datasheet de Microchip donde se comenta como funciona la lectura de una tabla.

http://www.todopic.com.ar/foros/index.php?topic=8156.0

http://www.todopic.com.ar/foros/index.php?topic=12659.0

http://www.todopic.com.ar/foros/index.php?topic=15513.0
- 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)