From a0fb6775e3260976926dea590c77e8ae6994aeb4 Mon Sep 17 00:00:00 2001 From: shylie Date: Tue, 8 Apr 2025 14:49:41 -0400 Subject: [PATCH] Initial commit --- .gitignore | 1 + .gitmodules | 6 ++++++ CMakeLists.txt | 21 +++++++++++++++++++ blinky/CMakeLists.txt | 9 ++++++++ blinky/src/main.cpp | 48 +++++++++++++++++++++++++++++++++++++++++++ compile_commands.json | 1 + lib/pico-ice-sdk | 1 + 7 files changed, 87 insertions(+) create mode 100644 .gitignore create mode 100644 .gitmodules create mode 100644 CMakeLists.txt create mode 100644 blinky/CMakeLists.txt create mode 100644 blinky/src/main.cpp create mode 120000 compile_commands.json create mode 160000 lib/pico-ice-sdk diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ceddaa3 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.cache/ diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..c381bac --- /dev/null +++ b/.gitmodules @@ -0,0 +1,6 @@ +[submodule "lib/pico-ice-sdk"] + path = lib/pico-ice-sdk + url = https://github.com/tinyvision-ai-inc/pico-ice-sdk.git +[submodule "lib/--recurse-submodules"] + path = lib/--recurse-submodules + url = https://github.com/tinyvision-ai-inc/pico-ice-sdk.git diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..5d65468 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,21 @@ +cmake_minimum_required(VERSION 3.13...3.27) + +set(PICO_BOARD pico2_ice) +list(APPEND PICO_BOARD_HEADER_DIRS lib/pico-ice-sdk/include/boards) +file(WRITE "${CMAKE_BINARY_DIR}/.gitignore" "*") +set(CMAKE_EXPORT_COMPILE_COMMANDS ON) + +include(lib/pico-ice-sdk/cmake/preinit_pico_ice_sdk.cmake) +set(PICO_SDK_PATH ${CMAKE_SOURCE_DIR}/lib/pico-ice-sdk/lib/pico-sdk) +include(${PICO_SDK_PATH}/external/pico_sdk_import.cmake) + +project(pico2-ice-projects C CXX ASM) + +set(CMAKE_C_STANDARD 11) +set(CMAKE_CXX_STANDARD 17) + +pico_sdk_init() + +add_subdirectory(lib/pico-ice-sdk) + +add_subdirectory(blinky) diff --git a/blinky/CMakeLists.txt b/blinky/CMakeLists.txt new file mode 100644 index 0000000..3cf1e74 --- /dev/null +++ b/blinky/CMakeLists.txt @@ -0,0 +1,9 @@ +cmake_minimum_required(VERSION 3.13...3.27) + +add_executable(blinky src/main.cpp) + +target_link_libraries(blinky + pico_ice_sdk + hardware_pwm +) +pico_add_extra_outputs(blinky) diff --git a/blinky/src/main.cpp b/blinky/src/main.cpp new file mode 100644 index 0000000..40753cf --- /dev/null +++ b/blinky/src/main.cpp @@ -0,0 +1,48 @@ +#include +#include +#include + +void on_pwm_wrap() +{ + static int fade = 0; + static bool going_up = true; + + pwm_clear_irq(pwm_gpio_to_slice_num(ICE_LED_RED_PIN)); + + if (going_up) + { + if (++fade > 255) + { + fade = 255; + going_up = false; + } + } + else + { + if (--fade < 0) + { + fade = 0; + going_up = true; + } + } + + pwm_set_gpio_level(ICE_LED_RED_PIN, fade * fade); +} + +int main() +{ + gpio_set_function(ICE_LED_RED_PIN, GPIO_FUNC_PWM); + uint slice_num = pwm_gpio_to_slice_num(ICE_LED_RED_PIN); + + pwm_clear_irq(slice_num); + pwm_set_irq_enabled(slice_num, true); + irq_set_exclusive_handler(PWM_DEFAULT_IRQ_NUM(), on_pwm_wrap); + irq_set_enabled(PWM_DEFAULT_IRQ_NUM(), true); + + pwm_config config = pwm_get_default_config(); + pwm_config_set_clkdiv(&config, 1.0f); + + pwm_init(slice_num, &config, true); + + while (true); +} diff --git a/compile_commands.json b/compile_commands.json new file mode 120000 index 0000000..25eb4b2 --- /dev/null +++ b/compile_commands.json @@ -0,0 +1 @@ +build/compile_commands.json \ No newline at end of file diff --git a/lib/pico-ice-sdk b/lib/pico-ice-sdk new file mode 160000 index 0000000..8de8106 --- /dev/null +++ b/lib/pico-ice-sdk @@ -0,0 +1 @@ +Subproject commit 8de8106296b09d4db68638a7eb32280f8c09a654