Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

03/12/2009 #1


Multiplicar dos numeros en PIC18F452
Hola, en la universidad estamos haciendo un programa que convierta ciertos valores. Por ejemplo, el programa pide un numero (0 a 1000), ese numero "num" debe hacer lo siguiente entre otras:

Valor=(1.66+(num/1000))*5000;

Bien, el primer problema que encuentro es que por comunicacion RS232, al introducir un numero, por ejemplo "2", lo lee como ASCII es decir "50", entonces que deberia hacer? pasarlo a decimal para que me de "2" con algun algoritmo? y segundo, como se pueden multiplicar y dividir los valores de la formula ya que son de mas de 8 bits y no se la forma.

Gracias por adelantado

PD: Llevo una semana buscando por el foro pero no he visto nada que me abra los ojos, apenas unas converisones a binario, pero por ejemplo nada sobre mas de 8 bits.
03/12/2009 #2

Avatar de aguevara

Respuesta: Multiplicar dos numeros en PIC18F452
Programando en C seria:
int a=50, b=100;
long int c;
c = _mul(a, b); //c holds 5000
03/12/2009 #3


Respuesta: Multiplicar dos numeros en PIC18F452
Perdon, se me olvidó decir que era en C, gracias,mañana probare ese comando.

Gracias
03/12/2009 #4


Respuesta: Multiplicar dos numeros en PIC18F452
Hay te te dejo un ejemplo. Solo agrega tu ecuacion.
No es mi constumbre resolver las tareas de otros pero de por eso no e terminado.
Archivos Adjuntos
Tipo de Archivo: rar pruebas en 18fxxx.rar (44,0 KB (Kilobytes), 39 visitas)
09/12/2009 #5


Respuesta: Multiplicar dos numeros en PIC18F452
gracias por las respuestas,ahora me encuentro con el problema de que en la formula del primer post, a veces (num) es negativo, por lo que el resultado de la formula es negativo, como puedo hacer el modulo de la formula para que siempre sea un numero positivo?

Por mas que busco y lo intento no se.

Gracias
16/12/2009 #6

Avatar de aguevara

Respuesta: Multiplicar dos numeros en PIC18F452
La instruccion en CCS es abs()
ejemplo:
Temp = abs(x) donde x es un numero signado de 8 16 o 32 bits o flotante.
no olvides incluir la libreria stdlib.h

Saludos
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.