Como dividir dos bytes con un bytes en asm

Saludos Amigos tengo un problema necesito dividir un numero proveniente de un proceso que viene del un temporizador dándome como posibilidad 2 byte estos valores lo necesito dividir con una constante que es 230 (en decimal) es decir que es una constante de 1 Byte por favor ayúdenme con una librería de división que funcione ya he probado varias sin éxito estoy trabajando con un 18F :rolleyes:
 
esta es la que uso yo con los pic de baja gama. Igual creo que los 18F tienen instrucciones de hardware para dividir. saludos
 

Adjuntos

  • div.txt
    1.9 KB · Visitas: 59
Muy bueno eso aunque resolví mi problema porque como la división era por una constante encontré un datazo en un foro de Microchip

X/230= X*(65536/230)

En conclusión resolví mi división con una multiplicación pero estaré pendiente para usar esa en otra oportunidad así mismo de hacer una librería completa de operaciones matemáticas
 
Muy bueno eso aunque resolví mi problema porque como la división era por una constante encontré un datazo en un foro de Microchip
X/230= X*(65536/230)
En conclusión resolví mi división con una multiplicación pero estaré pendiente para usar esa en otra oportunidad así mismo de hacer una librería completa de operaciones matemáticas
65536/230 = 284.94391.. ==> Menos error si multiplicás por 285.

Tenés que tener en cuenta que para algunos valores el resultado va a tener error de +/- 1 --> Si en tu aplicación eso no importa, entonces todo OK.
 
así:apreton: lo hice y el resultado es espectacular! es una división entre un resultado que me da el TMR3 de un ancho de un pulso de un sensor ultrasonico a veces la respuesta mas simple es la indicada éxitos !1
 
Hay varias aproximaciones para dividir. Una de ellas ir restando hasta que de negativo, el resultado es el número de veces que restaste antes de ser negativo y el resto es el resto (valga la "rebuznancia")
Otra es desplazar a la derecha ya que cada vez es dividir por dos y luego terminar restando...
Otra es una tabla lookup pero para 16 bits no es viable.
 
saludos Scooter muy amable por tu respuesta muy lógica ahora como se hara la resta de un nuemro de 16 bits

existira una nota de plicacion de microhcip para hacer operaciones arimeticas de division
 
Última edición:
Atrás
Arriba