Autor Tema: multiplicacion de datos de 12 bits  (Leído 1724 veces)

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

Desconectado polo1984

  • PIC10
  • *
  • Mensajes: 13
multiplicacion de datos de 12 bits
« en: 11 de Enero de 2007, 08:09:22 »
Hola.

Estoy haciendo un proyecto en el que necesito visualizar datos adquiridos de un adc de 12 bits, luego hacer el modulo de los datos adquiridos y por ultimo visualizar en un lcd.

He pensado en utilizar el pic16f876a programandolo en C, pero no se si los compiladores que hay para la programacion en C de los pics pueden realizar multiplicaciones de datos de 16 bits (el resultado por lo tanto tendria que ser de 32 bits), lo ideal para mi proyecto sería que realizase multiplicaciones de numeros enteros o en coma flotante que llegasen a valer de 0 a 2000 o de 0,0 a 200,0. En resumidas cuentas, queria saber si existe algun compilador que permita realizar operaciones de multiplicacion, raices cuadradas y divisiones con datos de 32 bits en un pic16f876a o ¿deberia ir mirando otros micros?

Para el control y adquisicion de datos del adc y la posterior visualizacion en el lcd por lo que he podido ver en este foro y en internet no deberia de resultarme muy dificil de programar o ¿tambien puedo encontrar algun problema en realizar estas funciones en C?

un saludo y gracias por adelantado a todos



Desconectado dhmejia

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 260
Re: multiplicacion de datos de 12 bits
« Respuesta #1 en: 11 de Enero de 2007, 09:48:31 »
Todo lo que dices se puede hacer con el ccs, solo tienes que declarar la variable como float.  Solo debes tener en cuenta que si usas un PIC de gama baja o media las operaciones de multiplicación toman muchas líneas de código.

saludos.
Pereira - Colombia

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: multiplicacion de datos de 12 bits
« Respuesta #2 en: 11 de Enero de 2007, 12:34:25 »
Si el dato son enteros (normalmente el resultado de una conversion lo es) guarda el resultado de la multiplicacion de ambos numeros de 16 bits en una variable INT32, que tiene el formato de 4 Bytes igual que el Float, pero consume menos recursos al multiplicar.

Si tu intencion es hacer un filtro promediado es mejor sumar  los valores (compatibles como suma binaria) y luego rotar a la derecha N posiciones hasta recuperar el valor de 12 bits, esto consume menos recursos que la multiplicacion y posterior division. :P
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.


 

anything