Equivalencia C a ASM de una instrucción.

Iniciado por Meta, 14 Octubre 2008, 18:39 PM

0 Miembros y 1 Visitante están viendo este tema.

Meta

Hola:

En un puerto del que sea por ejemplo el puerto A del PIC18F2550, quiero solo modificar un bit. Son 8 pin de salida del RA0 al RA7 y quiero modificar el RA7 con una instrucción que no se cual es en el lenguaje C, pero en ensamblador (ASM) son el BCF y BSF.

¿Cómo es en C y con el compilador CCS?

O si no, ¿cómo agrego en ASM lo que quiero en C del CCS?

Un cordial saludos.
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

skapunky

Haber, eso dependera si el puerto que utilizas es redireccionable bi a bit. Haber si me explico:

En los micros, generalmente vienen varios puertos, por ejemplo 4...de esos 4 seguro que hay almenos 1 que no es redireccionable bit a bit, entonces si se quiere enviar o cambiar el estado de ese puerto de un solo bit (generalmente tienen 8 bits cada puerto) se debe hacer lo denominado como mascaras.

Una mascara simplemente es pasar el resultado por una expresión lógica cambiando o forzando el bit que nos interese.

Para C, yo almenos en la família MC-52 habia una forma para crear una variable para un pin de un cierto puerto. Solo que imagino que será con las librerias que yo utilizava.

Para hacer la expresión utilizava "Sbit", por ejemplo si el puerto 1 lo tengo definido como P1 y quiero especificar en el bit 7 de dicho puerto, lo declararia asi:

Citarsbit nombre = p1^7

Espero que captes la idea, simplemente en tu pic/micro habrá una forma similar para hacerlo dependiendo la libreria.
Killtrojan Syslog v1.44: ENTRAR

Meta

Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

MARCO_RECARGADO

Cita de: Meta en 14 Octubre 2008, 18:39 PM
Hola:

En un puerto del que sea por ejemplo el puerto A del PIC18F2550, quiero solo modificar un bit. Son 8 pin de salida del RA0 al RA7 y quiero modificar el RA7 con una instrucción que no se cual es en el lenguaje C, pero en ensamblador (ASM) son el BCF y BSF.

¿Cómo es en C y con el compilador CCS?

O si no, ¿cómo agrego en ASM lo que quiero en C del CCS?

Un cordial saludos.




las instrucciones que tu buscas son estas

output_high(PIN_B0);

output_low(PIN_B0);

en el caso de que fuera el puerto b el bit 0
SALUDOS.
"Desde muy chico tuve que interrumpir mis estudios para ir a la escuela"  Gabriel García Márquez