Autor Tema: HAY PIC"s CON OPERACIONES DECIMALES?  (Leído 6193 veces)

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

Desconectado bampbamp

  • PIC10
  • *
  • Mensajes: 1
HAY PIC"s CON OPERACIONES DECIMALES?
« en: 07 de Septiembre de 2003, 12:32:00 »
necesito saber si existe un microcontrolador PIC que realiza operaciones con decimales (división, multiplicación).

la razón es que debo incluir una ecuación en un proceso de control y necesito realizar los calculos con un microcontrolador.


Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2568
RE: HAY PIC"s CON OPERACIONES DECIMALES?
« Respuesta #1 en: 08 de Septiembre de 2003, 00:25:00 »
Los PICs son C.I. y no saben de matemáticas. Es el lenguaje aplicado en la programación el que realiza operaciones matemáticas. En lenguaje ensamblador podrás hacer sumas y restas y a partir de ellas, con ingenio, multiplicaciones y divisiones (es costoso y un poco lioso para el que no tiene mucha idea de programación en ensamblador).

Si quieres utilizar decimales yo te recomendaría el lenguaje C, aquí no hay que hacer "cambalaches", tan solo multiplicar (*) ó dividir (/).

Un saludo

Desconectado hernando2999

  • PIC12
  • **
  • Mensajes: 99
RE: HAY PIC"s CON OPERACIONES DECIMALES?
« Respuesta #2 en: 11 de Febrero de 2006, 21:21:00 »
BIEN MI AMIGO PARA TU SUERTE SI HAY PIC CON OPERACIONES MATEMATICAS....REVISA LOS MICROCONTROLADORES DE MOTOROLA A VER CUAL TE SIRVE

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
RE: HAY PIC"s CON OPERACIONES DECIMALES?
« Respuesta #3 en: 12 de Febrero de 2006, 11:04:00 »
Escrito originalmente por bampbamp
necesito saber si existe un microcontrolador PIC que realiza operaciones con decimales (división, multiplicación).
la razón es que debo incluir una ecuación en un proceso de control y necesito realizar los calculos con un microcontrolador.



bampbamp lo que quieres hacer es algo totalmente normal y que puede ser realizado perfectamente por un microcontrolador, tanto en los PIC16F , como en los 18F, en los PIC24 (recien estan saliendo al mercadO) como en los dsPIC.


pocher escribió:
Escrito originalmente por pocher
Los PICs son C.I. y no saben de matemáticas. Es el lenguaje aplicado en la programación el que realiza operaciones matemáticas. En lenguaje ensamblador podrás hacer sumas y restas y a partir de ellas, con ingenio, multiplicaciones y divisiones (es costoso y un poco lioso para el que no tiene mucha idea de programación en ensamblador).



No se si has aclarado o confundido a nuuestro amigo, de hecho hay muchos circuitos integrados que realizan operaciones matemáticas, del tipo que se te ocurra, de coma flotante, o no, de la precision que uno elija.  Uno le carga los datos, pide la operacion y despues de un tiempo obtiene el resultado.


bampbamp volviendo a lo que veniamos hablando, los pics no tienen un coprocesador matemático como traian los 286,386 como modulo separado, o ya los 486DX y Pentiums incorporados en la misma pastilla, pero si se pueden hacer operaciones matemáticas.  
Es que al final una multiplicacion de coma flotante o división termina siendo operaciones lógicas con operandos de mas o menos bytes.  El tener incorporada una instruccion que haga todo eso, da "velocidad" pero también es posible reproducir el mismo resultado (a mucha menor velocidad) con subrutinas de varias operaciones de multiplicacion,  sumas, divisiones y restas.

Entonces, volviendo al tema

Una multiplicacion de numeros decimales (coma flotante en la jerga electrónica) representa varias operaciones de multiplicacion en decimal, donde se separa la parte real de la parte del exponente.  

La división es lo mismo.

Yendo al grano, con las posiblidades que puedas encontrarte, sin entrar con detalles de la precisión de los operandos (16 bits,  32 bits, 64 bits, etc).

1) Microprocesador con instrucciones de multiplicacion y división de coma flotante:Si tu procesador tiene incorporadas las rutinas de multiplicacion de coma flotante, entonces la puedes realizar directamente llamando a la instrucción.  Esto es MUy RAPIDO.

2) Microprocesador con instrucciones de multiplicacion y división de enteros:Hay rutinas y métodos matemáticos que permiten a traves de sucesivas multiplicaciones y divisiones de decimales, realizar estas operaciones.  Ej. DSPIC.

3) Microprocesador con instrucciones de multiplicacion:Nuevamente hay rutinas y métodos matemáticos que permiten a traves de sucesivas multiplicaciones.  Las divisiones se hacen a partir de métodos de multiplicacion por decimales (dividir por 3, es lo mismo que multiplicar por 1/3) o bien por métodos relacionados con la resta. Ej. PIC18F

4) Microprocesador con solo instrucciones de suma y resta: Hay operaciones matemáticas que resuelven el tema, para la precision que uno quiera, solo que esto se convierte en algo lento.  Ej. PIC16F.


Uno se abstrae de la complejidad de estas operaciones, utilizando como te ha dicho pocher un compilador de C.  La ventaja es que si tu microprocesador tiene más rutinas incorporadas en su set de instrucciones, el compilador sabe de esto y generará un código más optimo de acuerdo al caso.



Las veces que he tenido que hacer algun lazo de control que involucre varias operaciones matemáticas, he hecho los siguientes pasos:

a) tratar de simplificar al máximo las operaciones, buscando agrupar constantes en una sola para evitar demoras en la multiplicacion.
b) ver cuanto tiempo te lleva las operaciones que necesitas realizar con el pic que elegiste.  Esto lo puedes ver con el simulador , cargando el pic y el clock que usas.  Si la operacion matemática lleva mas tiempo que la velocidad con la que debes volver a recopilar los datos, entonces piensa en subir de modelo de pic  y de frecuencia.
c) Si has logrado el resultado en b,  entonces puedes dar por hecho que el problema se puede resolver con el pic que has seleccionado, sino tal vez debas irte a otra compañía con opciones de mayor velocidad (a un costo mas elevado por supuesto).



Saludos
- 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 maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
RE: HAY PIC"s CON OPERACIONES DECIMALES?
« Respuesta #4 en: 12 de Febrero de 2006, 11:11:00 »
Escrito originalmente por hernando2999
BIEN MI AMIGO PARA TU SUERTE SI HAY PIC CON OPERACIONES MATEMATICAS....REVISA LOS MICROCONTROLADORES DE MOTOROLA A VER CUAL TE SIRVE


Hernando, has hecho un comentario confuso e inexacto.

Un PIC es una marca registrada de Microchip.
Un PIC no es sinónimo de Microcontrolador, un PIC es un microcontrolador.

Por eso no podes decir que se elija un PIC de Motorola... a lo sumo un Microcontrolador de Motorola (o Freescale como se llama ahora).


Saludos

- 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 Chaly29

  • Moderador Global
  • DsPIC33
  • *****
  • Mensajes: 4315
RE: HAY PIC"s CON OPERACIONES DECIMALES?
« Respuesta #5 en: 13 de Febrero de 2006, 02:11:00 »
Escrito originalmente por maunix

Por eso no podes decir que se elija un PIC de Motorola... a lo sumo un Microcontrolador de Motorola (o Freescale como se llama ahora).



Hola maunix, estas seguro que se llaman freescale ahora, a mí me han dicho que se llamaban ON, ¿Puede ser?

Un saludo.

Atte. CARLOS
La teoría es cuando se sabe todo y nada funciona. La práctica es cuando todo funciona y nadie sabe por qué.

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
RE: HAY PIC"s CON OPERACIONES DECIMALES?
« Respuesta #6 en: 13 de Febrero de 2006, 07:36:00 »
Escrito originalmente por Chaly29
Escrito originalmente por maunix

Por eso no podes decir que se elija un PIC de Motorola... a lo sumo un Microcontrolador de Motorola (o Freescale como se llama ahora).



Hola maunix, estas seguro que se llaman freescale ahora, a mí me han dicho que se llamaban ON, ¿Puede ser?

Un saludo.

Atte. CARLOS


Hola Carlos, no hay error, la división de microcontroladores y micorprocesadores de Motorola se llama Freescale
Sitio web.
freescale.com


ON, es la parte de semiconductores como integrados para fuente switching, etc.
http://www.onsemi.com


La división es para evitar juicios antimonopolio...
Saludos
- 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 vasconinicolas

  • PIC16
  • ***
  • Mensajes: 124
Re: HAY PIC\
« Respuesta #7 en: 14 de Junio de 2008, 12:43:37 »
Maunix, como siempre tus mensajes arrojando luz. Gracias por tu valioso tiempo.
N.
"No hacen ciencia los países ricos,
Son ricos los países por hacer ciencia"