From 07072abd4aa9f7cb7db362c51d21f856f1f8dc6e Mon Sep 17 00:00:00 2001 From: Nicholas G Date: Fri, 10 Sep 2021 18:53:45 -0400 Subject: [PATCH] Increased color picker resolution --- build_uf2/Pico_Game_Controller.uf2 | Bin 74752 -> 74752 bytes src/pico_game_controller.c | 25 +++++++++++++------------ 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/build_uf2/Pico_Game_Controller.uf2 b/build_uf2/Pico_Game_Controller.uf2 index 7b69800fd55ff5a459bb95e024d81e1cddcc5dbb..a9f44f1c95bf8130eac55028895a4458c7e7ae3b 100644 GIT binary patch delta 7585 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 Y^m;0y6SEL~+rO@0pZ`RpFMTikU!|MFxBvhE delta 7526 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... + * 768 Color Wheel Picker + * @param wheel_pos Color value, r->g->b->r... **/ -uint32_t color_wheel(uint8_t wheel_pos) { - if (wheel_pos < 85) { - return urgb_u32(wheel_pos * 3, 255 - wheel_pos * 3, 0); - } else if (wheel_pos < 170) { - wheel_pos -= 85; - return urgb_u32(255 - wheel_pos * 3, 0, wheel_pos * 3); +uint32_t color_wheel(uint16_t wheel_pos) { + wheel_pos %= 768; + if (wheel_pos < 256) { + return urgb_u32(wheel_pos, 255 - wheel_pos, 0); + } else if (wheel_pos < 512) { + wheel_pos -= 256; + return urgb_u32(255 - wheel_pos, 0, wheel_pos); } else { - wheel_pos -= 170; - return urgb_u32(0, wheel_pos * 3, 255 - wheel_pos * 3); + wheel_pos -= 512; + return urgb_u32(0, wheel_pos, 255 - wheel_pos); } } @@ -109,7 +110,7 @@ uint32_t color_wheel(uint8_t wheel_pos) { **/ void ws2812b_color_cycle(uint32_t counter) { for (int i = 0; i < WS2812B_LED_SIZE; ++i) { - put_pixel(color_wheel((counter + i * (int)(255 / WS2812B_LED_SIZE)) % 256)); + put_pixel(color_wheel((counter + i * (int)(768 / WS2812B_LED_SIZE)) % 768)); } } @@ -407,7 +408,7 @@ void core1_entry() { uint32_t counter = 0; while (1) { ws2812b_update(++counter); - sleep_ms(10); + sleep_ms(5); } }