#include "pico/stdlib.h"
#define BTN_A 5 // Botón A
#define BTN_B 4 // Botón B
#define LED_AND 0 // LED AND
#define LED_OR 1 // LED OR
#define LED_XOR 2 // LED XOR
int main() {
const uint32_t BTN_MASK = (1u << BTN_A) | (1u << BTN_B);
const uint32_t LED_MASK = (1u << LED_AND) | (1u << LED_OR) | (1u << LED_XOR);
gpio_init_mask(BTN_MASK | LED_MASK);
gpio_set_dir_out_masked(LED_MASK); // LEDs salida
gpio_set_dir_in_masked(BTN_MASK); // Botones entrada
gpio_pull_up(BTN_A);
gpio_pull_up(BTN_B);
while (true) {
int a = !gpio_get(BTN_A);
int b = !gpio_get(BTN_B);
int val_and = a & b;
int val_or = a | b;
int val_xor = a ^ b;
uint32_t leds = (val_and << LED_AND) | (val_or << LED_OR) | (val_xor << LED_XOR);
gpio_put_masked(LED_MASK, leds);
sleep_ms(20);
}
}