TODOPIC
Microcontroladores PIC => Almacén del Assembler => Mensaje iniciado por: carlosmaid en 12 de Noviembre de 2007, 02:23:36
-
Estoy desarrollando subrutinas en asm para manejar una memoria SD basandome en lo que se habla en el topic MMC Card : Hardware & Firmware del subforo de proyectos.
En un momento me surgio la necesidad de tener una subrutina capaz de multiplicar un numero de 23 bits x 512 para poder seleccionar el sector a escribir/leer en una targeta SD.
Despues de renegar con codigos que multiplicaban 2 numeros de 32 bits, comian muchisima ram y mucho tiempo de ejecucion me encontre con esta solucion universal creada por Nikolai Golovchenko:
http://www.piclist.com/techref/piclist/codegen/constdivmul.htm
En mi caso, para realizar esta multiplicacion de 23 bits x 512 tan solo me tarda 1.2uS a 20 mhz porque utiliza 6 instrucciones! :D Toda una maravilla! :-)
Espero que les sea de utilidad tanto como me fue a mi.