TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: PicMinor en 24 de Junio de 2025, 08:11:37

Título: Macros en ensamblador (CCS)
Publicado por: PicMinor en 24 de Junio de 2025, 08:11:37
¡¡ Saludos al foro !!

Estoy intentando traducir a CCS un programa escrito en mikroc y estoy atascado con una macro en ensamblador.
El código es similar a esto:

#define PRUEBA(x)     #ASM   
                  BTFSC     INDF, x         ; se salta la siguiente intruccion si x es 1
                  BCF       TRISIO, 2       ; pone GP2 como salida
                  NOP                            ; no hace nada
                  BSF       TRISIO, 2       ; pone GP2 en como entrada
            #ENDASM

Y no me compila. Me da un error     "Expecting a ("     en la primera línea de ensamblador BTFSC  INDF, x  y a partir de ahí pues errores de todo tipo.

¿Alguien sabe qué estoy haciendo mal?

¡¡ Gracias por anticipado !!

Título: Re:Macros en ensamblador (CCS)
Publicado por: Sispic en 25 de Junio de 2025, 03:06:32
y algo asi :
void PRUEBA(int8 x){   
  #asm
                  btfsc     INDF, x         ; se salta la siguiente intruccion si x es 1
                  bcf       TRISIO, 2       ; pone GP2 como salida
                  nop                            ; no hace nada
                  bsf       TRISIO, 2       ; pone GP2 en como entrada
  #endasm
}
Título: Re:Macros en ensamblador (CCS)
Publicado por: PicMinor en 25 de Junio de 2025, 03:25:33
Gracias por tu respuesta. Lo probaré
Título: Re:Macros en ensamblador (CCS)
Publicado por: DominusDRR en 26 de Junio de 2025, 18:41:02
¡¡ Saludos al foro !!

Estoy intentando traducir a CCS un programa escrito en mikroc y estoy atascado con una macro en ensamblador.
El código es similar a esto:

#define PRUEBA(x)     #ASM   
                  BTFSC     INDF, x         ; se salta la siguiente intruccion si x es 1
                  BCF       TRISIO, 2       ; pone GP2 como salida
                  NOP                            ; no hace nada
                  BSF       TRISIO, 2       ; pone GP2 en como entrada
            #ENDASM

Y no me compila. Me da un error     "Expecting a ("     en la primera línea de ensamblador BTFSC  INDF, x  y a partir de ahí pues errores de todo tipo.

¿Alguien sabe qué estoy haciendo mal?

¡¡ Gracias por anticipado !!

El problema parece ser: ¿Qué es x?

¿Dónde y cómo lo tienes definido?