/** * Copyright (c) 2020 Raspberry Pi (Trading) Ltd. * * SPDX-License-Identifier: BSD-3-Clause */ #include "pico/stdlib.h" #include #include #include // Pico W devices use a GPIO on the WIFI chip for the LED, // so when building for Pico W, CYW43_WL_GPIO_LED_PIN will be defined #ifdef CYW43_WL_GPIO_LED_PIN #include "pico/cyw43_arch.h" #endif #ifndef LED_DELAY_MS #define LED_DELAY_MS 250 #endif // Perform initialisation int pico_led_init(void) { #if defined(PICO_DEFAULT_LED_PIN) // A device like Pico that uses a GPIO for the LED will define PICO_DEFAULT_LED_PIN // so we can use normal GPIO functionality to turn the led on and off gpio_init(PICO_DEFAULT_LED_PIN); gpio_set_dir(PICO_DEFAULT_LED_PIN, GPIO_OUT); return PICO_OK; #elif defined(CYW43_WL_GPIO_LED_PIN) // For Pico W devices we need to initialise the driver etc return cyw43_arch_init(); #endif } // Turn the led on or off void pico_set_led(bool led_on) { #if defined(PICO_DEFAULT_LED_PIN) // Just set the GPIO on or off gpio_put(PICO_DEFAULT_LED_PIN, led_on); #elif defined(CYW43_WL_GPIO_LED_PIN) // Ask the wifi "driver" to set the GPIO on or off cyw43_arch_gpio_put(CYW43_WL_GPIO_LED_PIN, led_on); #endif } extern int32_t add(int32_t a, int32_t b); int main() { stdio_init_all(); // Initialise the Wi-Fi chip if (cyw43_arch_init()) { printf("Wi-Fi init failed\n"); return -1; } while (true) { printf("result from zig : %d\n", add(10, 31)); sleep_ms(1000); } // int rc = pico_led_init(); // hard_assert(rc == PICO_OK); // while (true) { // pico_set_led(true); // sleep_ms(LED_DELAY_MS); // pico_set_led(false); // sleep_ms(LED_DELAY_MS); // } }