72 lines
1.8 KiB
C
72 lines
1.8 KiB
C
/**
|
|
* Copyright (c) 2020 Raspberry Pi (Trading) Ltd.
|
|
*
|
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
*/
|
|
|
|
#include "pico/stdlib.h"
|
|
#include <pico/time.h>
|
|
#include <stdio.h>
|
|
#include <stdint.h>
|
|
|
|
// 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);
|
|
// }
|
|
}
|