Код:
--- ps2x2pico-orig/CMakeLists.txt
+++ ps2x2pico-2.1/CMakeLists.txt
@@ -11,7 +11,7 @@
# Pull in Raspberry Pi Pico SDK
include(pico_sdk_import.cmake)
-if (NOT PICO_SDK_VERSION_STRING VERSION_EQUAL "1.5.1")
+if (NOT PICO_SDK_VERSION_STRING VERSION_GREATER_EQUAL "1.5.1")
message(FATAL_ERROR "Raspberry Pi Pico SDK version 1.5.1 required. Your version is ${PICO_SDK_VERSION_STRING}")
endif()
@@ -20,6 +20,7 @@
# Initialise the Raspberry Pi Pico SDK
pico_sdk_init()
+add_compile_definitions(PICO_DEFAULT_LED_PIN=10)
add_executable(ps2x2pico src/ps2x2pico.c src/usbin.c src/scancodes.c src/ps2kb.c src/ps2ms.c src/ps2out.c src/ps2in.c)
pico_generate_pio_header(ps2x2pico ${CMAKE_CURRENT_LIST_DIR}/src/ps2out.pio)
После этого светодиод будет просто гореть, чтобы он весело мигал я «обернул» все вызовы отсылки чего-либо в PS/2 (изменения абы какие, разбираться, как это там сделать идеологически правильно, я не стал, сама идея управлять светодиодом через tinyusb меня пугает…)
Код:
--- ps2x2pico-orig/src/usbin.c
+++ ps2x2pico-2.1/src/usbin.c
@@ -30,6 +30,16 @@
#define MAX_REPORT 4
#define MAX_REPORT_ITEMS 32
+#define kb_send_key(key, is_key_pressed, modifiers) \
+ board_led_write(true); \
+ kb_send_key(key, is_key_pressed, modifiers); \
+ board_led_write(false);
+
+#define ms_send_movement(buttons, x, y, z) \
+ board_led_write(true); \
+ ms_send_movement(buttons, x, y, z); \
+ board_led_write(false);
+
typedef struct {
u16 page;
u16 usage;
[свернуть]