Multiplicar dos numeros en PIC18F452

#1
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.
 
#2
Programando en C seria:
int a=50, b=100;
long int c;​
c = _mul(a, b); //c holds 5000
 
#5
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
 
#6
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
 

Temas similares

Arriba