#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"
unsigned int registro=0;
/*OUTPUTS (numbers mean GPI0 port)*/
#define BIT9_PIN GPIO_NUM_27
#define BIT8_PIN GPIO_NUM_14
#define BIT7_PIN GPIO_NUM_12
#define BIT6_PIN GPIO_NUM_23
#define BIT5_PIN GPIO_NUM_22
#define BIT4_PIN GPIO_NUM_19
#define BIT3_PIN GPIO_NUM_18
#define BIT2_PIN GPIO_NUM_5
#define BIT1_PIN GPIO_NUM_4
#define BIT0_PIN GPIO_NUM_13
// continue with all the pins you need
void envia_valor_binario(unsigned int valor)
{
gpio_set_level(BIT9_PIN, (valor & 512) >> 9);
gpio_set_level(BIT8_PIN, (valor & 256) >> 8);
gpio_set_level(BIT7_PIN, (valor & 128) >> 7);
gpio_set_level(BIT6_PIN, (valor & 64) >> 6);
gpio_set_level(BIT5_PIN, (valor & 32) >> 5);
gpio_set_level(BIT4_PIN, (valor & 16) >> 4);
gpio_set_level(BIT3_PIN, (valor & 8) >> 3);
gpio_set_level(BIT2_PIN, (valor & 4) >> 2);
gpio_set_level(BIT1_PIN, (valor & 2) >> 1);
gpio_set_level(BIT0_PIN, (valor & 1));
Serial.print((valor & 512) >> 9);
Serial.print(" ");
Serial.print((valor & 256) >> 8);
Serial.print(" ");
Serial.print((valor & 128) >> 7);
Serial.print(" ");
Serial.print((valor & 64) >> 6);
Serial.print(" ");
Serial.print((valor & 32) >> 5);
Serial.print(" ");
Serial.print((valor & 16) >> 4);
Serial.print(" ");
Serial.print((valor & 8) >> 3);
Serial.print(" ");
Serial.print((valor & 4) >> 2);
Serial.print(" ");
Serial.print((valor & 2) >> 1);
Serial.print(" ");
Serial.print(valor & 1);
Serial.print(" ");
Serial.println(valor);
}
void setup()
{
Serial.begin(9600);
gpio_set_direction(BIT9_PIN, GPIO_MODE_OUTPUT);
gpio_set_direction(BIT8_PIN, GPIO_MODE_OUTPUT);
gpio_set_direction(BIT7_PIN, GPIO_MODE_OUTPUT);
gpio_set_direction(BIT6_PIN, GPIO_MODE_OUTPUT);
gpio_set_direction(BIT5_PIN, GPIO_MODE_OUTPUT);
gpio_set_direction(BIT4_PIN, GPIO_MODE_OUTPUT);
gpio_set_direction(BIT3_PIN, GPIO_MODE_OUTPUT);
gpio_set_direction(BIT2_PIN, GPIO_MODE_OUTPUT);
gpio_set_direction(BIT1_PIN, GPIO_MODE_OUTPUT);
gpio_set_direction(BIT0_PIN, GPIO_MODE_OUTPUT);
}
void loop()
{
for(int i=0; i<1024; i++)
{
envia_valor_binario(i);
delay(500);
}
/*
gpio_set_level(BIT1_PIN, 1);//GPIO4 HIGH (set)
gpio_set_level(BIT0_PIN, 1);//GPIO4 HIGH (set)
delay(500);
gpio_set_level(BIT1_PIN, 1);//GPIO4 HIGH (set)
gpio_set_level(BIT0_PIN, 1);//GPIO4 HIGH (set)
delay(500);
*/
}