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

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Instrucción para controlar un pin ???
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Instrucción para controlar un pin ???  (Leído 6,079 veces)
AjarDeNauer

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Instrucción para controlar un pin ???
« en: 28 Abril 2011, 13:06 pm »

¡ Hola ! 

Necesito resolver una pequeña duda y he echado mano de este foro para ver si la puedo solventar.

Hay alguna instrucción que me permita cambiar el estado lógico de un pin sin tener que evaluarlo? Me explico: esté como esté el pin, ya sea a uno o a cero, que se cambie al estado contrario, sin tener que evaluarlo con el posible if / else, para que así consiga hacerlo en una sola línea de código y emplear el menor tiempo posible

Muchas gracias.  :D


En línea

ssaammuu

Desconectado Desconectado

Mensajes: 35



Ver Perfil WWW
Re: Instrucción para controlar un pin ???
« Respuesta #1 en: 28 Abril 2011, 14:32 pm »

Si extraes el valor, este será 1 o 0, si tratamos 1 como booleano verdadero y 0 como booleano falso puedes hacer estado=!estado para cambiar.


En línea

AjarDeNauer

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Instrucción para controlar un pin ???
« Respuesta #2 en: 28 Abril 2011, 16:40 pm »

He puesto PIN_B1=!PIN_B1; pero al compilar no me pilla esa expresión
En línea

arisma

Desconectado Desconectado

Mensajes: 21


Ver Perfil
Re: Instrucción para controlar un pin ???
« Respuesta #3 en: 28 Abril 2011, 16:46 pm »

Sí existe.

Creo recordar que debes usar o/y lógicos para cambiar el pin(bit?)
En línea

Akai


Desconectado Desconectado

Mensajes: 823



Ver Perfil
Re: Instrucción para controlar un pin ???
« Respuesta #4 en: 28 Abril 2011, 17:40 pm »

Utiliza una XOR:


cplusplus.com :

XOR (Exclusive Or)
This operation is performed between two bits (a and b). The result is 1 if either one of the two bits is 1, but not in the case that both are. There for, if neither or both of them are equal to 1 the result is 0.

XOR (^)
a   b   a^b
0   0   0
0   1   1
1   0   1
1   1   0


La utilidad de la XOR en este caso, es que algo XOR 1 = !algo.

Por tanto:

Código
  1. bool a=1, PIN_B1=0;
  2.  
  3. PIN_B1=a^PIN_B1

cambia el estado de PIN_B1 al negado.
En línea

El_Java

Desconectado Desconectado

Mensajes: 144



Ver Perfil WWW
Re: Instrucción para controlar un pin ???
« Respuesta #5 en: 28 Abril 2011, 18:51 pm »

No valdría en vez de usar XOR usar el complemento "~"?

Por ejemplo:
Código
  1. PIN_B1 = ~PIN_B1

Pregunto, no tengo aun claro los operador de bits xD
En línea

Akai


Desconectado Desconectado

Mensajes: 823



Ver Perfil
Re: Instrucción para controlar un pin ???
« Respuesta #6 en: 28 Abril 2011, 18:57 pm »

@El_Java:

Si, de hecho esa es la respuesta que precisamente se está buscando y en la que no había caído. Me acostumbré a la XOR cuando necesito cambiar un bit  en concreto para máscaras usando enteros y no pensé en el complemento.
« Última modificación: 28 Abril 2011, 19:00 pm por Akai » En línea

El_Java

Desconectado Desconectado

Mensajes: 144



Ver Perfil WWW
Re: Instrucción para controlar un pin ???
« Respuesta #7 en: 28 Abril 2011, 19:48 pm »

Me alegro de haber ayudado, no estaba seguro, los operador de bits me lian muchisimo.

Por cierto Akai, sino te importa echale un ojo a mi tema del foro, que se que tu entiendes bastante, a ver si pudieras ayudarme.

Un saludo.
En línea

AjarDeNauer

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Instrucción para controlar un pin ???
« Respuesta #8 en: 29 Abril 2011, 01:38 am »

gracias pero... no sé qué pasa, no me pilla la instrucción, me da error el compilador. No puedo asignarle nada al pin (=) pero sí evaluarlo (==). Me dice esto: expecting LVALUE such as a variable name or * expression
En línea

Akai


Desconectado Desconectado

Mensajes: 823



Ver Perfil
Re: Instrucción para controlar un pin ???
« Respuesta #9 en: 29 Abril 2011, 02:03 am »

Si pones el código que da problemas, es probable que podamos ayudarte sin recurrir a bolas de cristal adivinatorias.
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Instruccion para recuperar el nombre del equipo
Programación Visual Basic
danielajordana 1 1,284 Último mensaje 10 Diciembre 2007, 09:25 am
por SKL (orignal)
Duda para controlar PC en LAN
Seguridad
Bersa 7 3,263 Último mensaje 31 Diciembre 2014, 05:21 am
por beholdthe
Ciclos requeridos para cada instrucción
ASM
0xFer 7 4,457 Último mensaje 11 Septiembre 2015, 16:17 pm
por _Enko
Instrucción para borrar la pantalla en C++
Programación C/C++
JonaLamper 1 2,176 Último mensaje 27 Diciembre 2015, 00:22 am
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines