Foro de elhacker.net

Informática => Electrónica => Mensaje iniciado por: Meta en 14 Octubre 2008, 18:39 pm



Título: Equivalencia C a ASM de una instrucción.
Publicado por: 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.


Título: Re: Equivalencia C a ASM de una instrucción.
Publicado por: skapunky en 15 Octubre 2008, 11:31 am
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:

Citar
sbit nombre = p1^7

Espero que captes la idea, simplemente en tu pic/micro habrá una forma similar para hacerlo dependiendo la libreria.


Título: Re: Equivalencia C a ASM de una instrucción.
Publicado por: Meta en 15 Octubre 2008, 21:06 pm
Gracias por la respuesta.


Título: Re: Equivalencia C a ASM de una instrucción.
Publicado por: MARCO_RECARGADO en 19 Octubre 2008, 06:24 am
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.