TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: antayhua en 27 de Diciembre de 2017, 23:48:21
-
Saludos a todos, una consulta quiero hacer una funcion en asm e incluirlo en un archivo c y llamarlo desde c, mas o menos asi:
archivo .c
lcd_init();
----------------------------
archivo asm
_Lcd_Init:
;codigo en assembler
L_end_Lcd_Init:
RETURN
; end of _Lcd_Init
como podria hacerlo, muchas gracias por sus respuestas.
-
Va a depender del compilador que estes usando. El mayor problema que tenes es cuando pasas variables y no tocar la memoria casi...
Si lo que queres es para un LCD entonces mejor buscate un driver para LCD.. Es mucho mas corto y mas entendible en C.
Si vas a usar pocas instrucciones por ahi te conviene ponerlo en en linea con la misma funcion
El unico momento que deberias usar ASM con C es cuando necesites gran velocidad o un control grande en tiempos, como el cambio de tareas de un RTOS por ejemplo, bootloader, entre otros
Para XC8 tenes que seguir el
MPLAB XC8 C Compiler User's Guide
http://ww1.microchip.com/downloads/en/DeviceDoc/50002053G.pdf
Pagina 216
Ahi incluso te da un ejemplo, observaras que el ASM tambien cambia, tenes que usar BANKMASK, parentesis, etc. Por eso NO es lo mismo y vas a tener que cambiar bastante.
Con CCS/XC8 creo que es preferible crear una funcion en C y adentro usar los pragma #asm para comenzar con el ASM.
Vuelvo a repetir, no hay necesidad de que te compliques la vida de esta forma si no es necesario ( LCD )