elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


+  Foro de elhacker.net
|-+  Informática
| |-+  Electrónica
| | |-+  Equivalencia C a ASM de una instrucción.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Equivalencia C a ASM de una instrucción.  (Leído 7,010 veces)
Meta


Desconectado Desconectado

Mensajes: 3.501



Ver Perfil WWW
Equivalencia C a ASM de una instrucción.
« 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.


En línea

skapunky
Electronik Engineer &
Colaborador
***
Desconectado Desconectado

Mensajes: 3.667


www.killtrojan.net


Ver Perfil WWW
Re: Equivalencia C a ASM de una instrucción.
« Respuesta #1 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.


En línea

Killtrojan Syslog v1.44: ENTRAR
Meta


Desconectado Desconectado

Mensajes: 3.501



Ver Perfil WWW
Re: Equivalencia C a ASM de una instrucción.
« Respuesta #2 en: 15 Octubre 2008, 21:06 pm »

Gracias por la respuesta.
En línea

MARCO_RECARGADO

Desconectado Desconectado

Mensajes: 75


Mas recargado que nunca


Ver Perfil WWW
Re: Equivalencia C a ASM de una instrucción.
« Respuesta #3 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.
En línea

"Desde muy chico tuve que interrumpir mis estudios para ir a la escuela"  Gabriel García Márquez
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Por qué no me funciona instruccion into outfile ?
Bases de Datos
luison 3 7,280 Último mensaje 24 Diciembre 2010, 17:06 pm
por Shell Root
se atasca en una instruccion
Java
Tyrz 9 5,983 Último mensaje 21 Enero 2011, 20:57 pm
por kasiko
Por que esta instrucción no es válida?
ASM
.:UND3R:. 4 3,793 Último mensaje 21 Noviembre 2011, 04:18 am
por .:UND3R:.
Factucont (duda con el recargo de equivalencia)
Software
Sergi11 1 1,512 Último mensaje 13 Julio 2017, 00:01 am
por bettu
[C]Equivalencia de una referencia de C++ a C?
Programación C/C++
jorge.esquibel 1 1,464 Último mensaje 19 Noviembre 2018, 14:24 pm
por CalgaryCorpus
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines