Autor Tema: logaritmo ???  (Leído 5817 veces)

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

Desconectado microzero

  • PIC10
  • *
  • Mensajes: 4
logaritmo ???
« en: 02 de Noviembre de 2006, 00:15:33 »
HOla a todos . escribo por una inquietud que tengo , ojala alguien me pueda ayudar.
estoy trabajando en un proyecto de instrumentacion, a la señal de entrada tengo que hacerle algunas operaciones matematicas , y lejos lo mas complicado , es calcular el logaritmo. Alguno de uds sabe si hay alguna libreria con el pic que me permita calcularlo , o alguna solucion alternativa con algin IC tipo ALU.
ESTARE ATENTO A SUS IDEAS O SUGERENCIAS , GRAX

ps : trabajo con el pic16f877 o el pic16f877a

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: logaritmo ???
« Respuesta #1 en: 02 de Noviembre de 2006, 01:06:38 »
sip
he visto rutinas para logaritmos, por lo general para estas operaciones se trabajan con 16 bits o incluso 32, con los chips q mencionas los puedes hacer sin ningun problema, puedes buscar esa info sobre rutinas matematicas en la pag de microhip, o incluso estoy seguro q si buscas en el foro debe haber algo al respecto, el q busca encuentra!, si no hallas nada gustoso estare en ayudarte. :-/
a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com

Desconectado Zaphyrus

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 323
    • Mi blog: Es cuestión de actitud
Re: logaritmo ???
« Respuesta #2 en: 02 de Noviembre de 2006, 09:53:36 »
Hola Microzero, generalmente los logaritmos se calculan mediante una tabla o por serie de Taylor. Acá dejo algunos enlaces con la explicación para Taylor:

http://www.monografias.com/trabajos11/traaprox/traaprox.shtml
http://es.wikipedia.org/wiki/Serie_de_Taylor

En Microchip hay dos notas de aplicación que hablan de las funciones matemáticas:

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en010982
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en011000

Saludos.

Martín
"¿Lo quiere rápido, barato, o bien hecho? Puede elegir dos de las tres cosas." Arthur C. Clarke.
Mi Proyecto Final de Carrera-Microprocesador RISC de 16 bits en HDL: http://martin.calveira.googlepages.com/home
Mi página web o blog: http://es-cuestion-de-actitud.blogspot.com/
Martín Calveira - Zárate - Argentina

Desconectado microzero

  • PIC10
  • *
  • Mensajes: 4
Re: logaritmo ???
« Respuesta #3 en: 08 de Noviembre de 2006, 21:01:21 »
Hola a todos , y gracias a quienes se dieron la molestia de responder . Despues de desempolvar mis conocimientos sobre la serie de taylor y haciendo algunas aproximaciones  llegue a la sgte expresion:
43x - 22x2 + 14x3 -11x4 +8x5

ahora tengo  ke hacer la ruitna de calculo se ve facil pero no es tanto.No tengo experiencia trabajando con 16 bits , pero la variable x la obtendre del conversor a/d y es una palabra de 8 bits.
acepto sugerencias de todo tipo .
eso por ahora grax a todos.suerte 8)

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: logaritmo ???
« Respuesta #4 en: 09 de Noviembre de 2006, 00:00:56 »
sugiero q lo hagas en C , o en basic, pero yo manejo mas el C tambien el asm, pero en estos casos es mas util el C, exitos amigo ! ah! me olidaba, interesante esa formula hace un tiempo ronadaba por mi cabeza hacer rutinas matematicas o coleccionar las tantas q hay por la web, y recuerdo q me mareaba con eso de la serie de taylor, es q mi las mates no son mi fuete  jiji  :D
a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com

Desconectado microzero

  • PIC10
  • *
  • Mensajes: 4
Re: logaritmo ???
« Respuesta #5 en: 09 de Noviembre de 2006, 00:26:27 »
imagino que es mas facil con C ,pero la verdad yo no tengo experiencia programando pics en C , mas me manejo con ASM   , es posible programar con mplab usando c?o se usa algun aditar especial , de todas formas he estado trabajdno en las rutinas en asm y esta media compleja la cosa, veremos ke pasa,
saludos

Desconectado Zaphyrus

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 323
    • Mi blog: Es cuestión de actitud
Re: logaritmo ???
« Respuesta #6 en: 09 de Noviembre de 2006, 00:46:16 »
Microzero, es posible programar en C en Mplab pero tenes que instalar el compilador que no es gratis pero es posible conseguir versiones de prueba. También el compilador debe ser soportado por Mplab. Los que conozco que se pueden usar son:

-Hitech PICC
-CCS-C
-Microchip Pic C

Con respecto a los logaritmos en asm mañana busco en la web de Microchip y te ayudo si encuentro algo.

Saludos, me voy a dormir que me duermo sentado.

Martín
"¿Lo quiere rápido, barato, o bien hecho? Puede elegir dos de las tres cosas." Arthur C. Clarke.
Mi Proyecto Final de Carrera-Microprocesador RISC de 16 bits en HDL: http://martin.calveira.googlepages.com/home
Mi página web o blog: http://es-cuestion-de-actitud.blogspot.com/
Martín Calveira - Zárate - Argentina

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: logaritmo ???
« Respuesta #7 en: 09 de Noviembre de 2006, 02:16:29 »
el probelma de usar ASM para estas cuestiones de rutinas matematicas es q se tornan bien pesadas el hacerlas, y si las encuentras e intentas entenderlas ufff, de ahi me explicas por favor porq yo no pude, jiji, pero en el C esta mas legible la lectura y el manejor de las rutinas y te ayuda a crear a partir de ese lenguaje, codigos o formula smatematicas mas complejas. por eso te sugiero con mucha seguridad q vayas por el C, y porq no el basic? porq no lo se usar. jiji.  :-/
a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: logaritmo ???
« Respuesta #8 en: 09 de Noviembre de 2006, 08:38:37 »
Hola a todos , y gracias a quienes se dieron la molestia de responder . Despues de desempolvar mis conocimientos sobre la serie de taylor y haciendo algunas aproximaciones  llegue a la sgte expresion:
43x - 22x2 + 14x3 -11x4 +8x5

ahora tengo  ke hacer la ruitna de calculo se ve facil pero no es tanto.No tengo experiencia trabajando con 16 bits , pero la variable x la obtendre del conversor a/d y es una palabra de 8 bits.
acepto sugerencias de todo tipo .
eso por ahora grax a todos.suerte 8)

Amigo, creo que se te están escapando algunas cosas que no son menores.

El dato leído del A/D no lo puedes meter así sin mas en esa expresión, el dato del A/D (si trabajas en 8 bits) es un valor entre 0 a 255.  Hacer 255^5 = 1078203909375 lo cual son 48 bits y no 16.

Mi recomendación es que ese valor de A/D con el cual necesitas trabajar lo conviertas en un valor FLOAT y trabajes la función como todos FLOAT.

La otra alternativa, bastante más simple si solo X puede tomar 256 valores es que lo hagas por tabla.  haces los cálculos previamente escalando el valor del A/D (que será tu variable X) como es debido y guardando el resultado en una tabla.  Si necesitas un resultado FLOAT, serán 4 tablas (ya que un float ocupa 32 bits) .  Ahora bien, también podrías trabajar con una variable de 16 bits, si la tomas por ejemplo en proporciones de tu variable.

Ej. Si tu variable irá de 0 a 2.500.000, podrías escalar tus datos corriendo 2 lugares la coma y hacer que vaya de 0 a 25.000 y así el valor almacenado en tabla será siempre de 16 bits (con lo cual necesitarías una tabla para la parte high y otra para la parte low).

Si trabajas con PIC16 y te sirve usar 14bits, podrías usar la opción de lectura de memoria de programa para que el dato leído sea "tu tabla" con lo cual solo necesitarias 256 posiciones de memoria para almacenar 256 valores de 14 bits.

Idem para los PIC18 si usas datos de 16bits.

Como verás las aristas y posibilidades al problema son numerosas y mucho dependen de la velocidad que requieras, de tus conocimientos de las posibilidades que te da el pic y de que tanta precisión necesitas para el resultado.


Saludos.
« Última modificación: 09 de Noviembre de 2006, 08:42:43 por maunix »
- 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 microzero

  • PIC10
  • *
  • Mensajes: 4
Re: logaritmo ???
« Respuesta #9 en: 13 de Noviembre de 2006, 21:06:09 »
Hola he estado un poco alejado del tema ,pero haciedo algunas consideraciones y teniendo en cuenta sus comentarios y recomendaciones  parace que lo mas adecuado es trabajar con las tablas de lookup , en gral. no las ocupo mucho pero en este caso parece lo ma adecuado .
 :-) Saludos y  en estos dias espero publicar parte del codigo a ver que les parece  , suerte y grax a todos
  :-)


 

anything