Autor Tema: Invertir las entradas  (Leído 1450 veces)

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

Desconectado ramirez

  • PIC16
  • ***
  • Mensajes: 195
Invertir las entradas
« en: 17 de Mayo de 2009, 18:53:01 »
Hola a todos de nuevo, sigo intentando aprender C, y esta vez me he atrancado en un simple ejemplo. Deseo obtener por el puerto B las entradas invertidas del puerto A, pero estoy cometiendo  algún error y no se cual es. El programa que utilizo es el siguiente:

///Por el Puerto B se obtiene el dato del Puerto A invertidos los unos y ceros. Por ejemplo,
///si por el Puerto A se introduce "---11001", por el Puerto B aparecerá "xxx00110" (no
///importa el estado de los tres bits superiores del Puerto B).


#include <16F84A.h>
#FUSES NOWDT                    //No Watch Dog Timer
#FUSES XT                       //Crystal osc <= 4mhz for PCM/PCH , 3mhz to 10 mhz for PCD
#FUSES PUT                      //Power Up Timer
#FUSES NOPROTECT                //Code not protected from reading

#use delay(clock=4000000)

#use fast_io(B)
#use fast_io(A)

int inversa;

///PROGRAMA

void main (void)

{

do {
set_tris_a(0xFF);
set_tris_b(0x00);



output_b(!input_a()); 
}
while(true);
}

¿Qué hago mal?, de nuevo os doy a todos las gracias de antemano.

Desconectado AKENAFAB

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3227
Re: Invertir las entradas
« Respuesta #1 en: 17 de Mayo de 2009, 19:03:35 »


output_b(~input_a());

~
 One's complement operator


Prueba con eso
 

Desconectado ramirez

  • PIC16
  • ***
  • Mensajes: 195
Re: Invertir las entradas
« Respuesta #2 en: 17 de Mayo de 2009, 19:16:22 »
Muchas gracias, funciona correctamente

Desconectado darck_khronos

  • PIC18
  • ****
  • Mensajes: 493
Re: Invertir las entradas
« Respuesta #3 en: 17 de Mayo de 2009, 19:25:52 »
la otra seria que usaras una mascara para que se negaran


 

anything