Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

18/05/2012 #1

Avatar de Ediolot

Operacion lógica
He estado mirando y como no encuentro como hacerlo ni soy un experto queria preguntares si puedo simplificar esta operación:

PORTB = (PORTB & 0b11110000) | (0b00001010);

Si podeis explicar como se hace mejor, gracias
18/05/2012 #2
Moderador

Avatar de Chico3001

PORTB & 0b11110000 es una operacion AND, y sabiendo que el resultado solo es 1 cuando ambas entradas son 1 entonces lo que hace es eliminar todos los bits bajos del puerto b...

Posteriormente hace una operacion OR con 0b00001010 y como sabias que el resultado anterior era "bbbb0000" entonces ahora tendras "bbbb1010", donde b es el estado inicial del puerto b

Asi que la operacion lo unico que hace es escribir 1010 en los bits bajos del puerto B, pero como todas las instrucciones del PIC (que supongo que es el que usas) siempre escriben 8 bits, no veo manera de simplificarlo, ademas de solo le toma 4 ciclos de reloj hacer todo el proceso...
18/05/2012 #3

Avatar de Ediolot

Ok, muchas gracias por responder tan rápido :p
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.