#include #include #include #include "ulp_riscv.h" #include "ulp_riscv_utils.h" #include "ulp_riscv_gpio.h" #define HUB75_OE_CAPTRUE__RTC_PIN_NUM GPIO_NUM_18 #define HUB75_LINE_ADDR_A_RTC_PIN_NUM GPIO_NUM_16 #define HUB75_LINE_ADDR_B_RTC_PIN_NUM GPIO_NUM_15 #define HUB75_LINE_ADDR_C_RTC_PIN_NUM GPIO_NUM_14 #define HUB75_LINE_ADDR_D_RTC_PIN_NUM GPIO_NUM_13 volatile int line = 0; volatile int s = 0; static bool gpio_level = false; int main (void) { // ulp_riscv_gpio_init(HUB75_OE_CAPTRUE__RTC_PIN_NUM); // ulp_riscv_gpio_input_enable(HUB75_OE_CAPTRUE__RTC_PIN_NUM); // ulp_riscv_gpio_set_output_mode(HUB75_LINE_ADDR_A_RTC_PIN_NUM, RTCIO_MODE_OUTPUT); // ulp_riscv_gpio_set_output_mode(HUB75_LINE_ADDR_B_RTC_PIN_NUM, RTCIO_MODE_OUTPUT); // ulp_riscv_gpio_set_output_mode(HUB75_LINE_ADDR_C_RTC_PIN_NUM, RTCIO_MODE_OUTPUT); // ulp_riscv_gpio_set_output_mode(HUB75_LINE_ADDR_D_RTC_PIN_NUM, RTCIO_MODE_OUTPUT); while(1) { gpio_level = (bool)ulp_riscv_gpio_get_level(HUB75_OE_CAPTRUE__RTC_PIN_NUM); s++; if (gpio_level == true) { ulp_riscv_gpio_output_level(HUB75_LINE_ADDR_A_RTC_PIN_NUM, line & 1); ulp_riscv_gpio_output_level(HUB75_LINE_ADDR_B_RTC_PIN_NUM, (line >> 1) & 1); ulp_riscv_gpio_output_level(HUB75_LINE_ADDR_C_RTC_PIN_NUM, (line >> 2) & 1); ulp_riscv_gpio_output_level(HUB75_LINE_ADDR_D_RTC_PIN_NUM, (line >> 3) & 1); } } return 0; }