/**
* Copyright (c) 2020 Raspberry Pi (Trading) Ltd.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#include <stdint.h>
#include "pico/stdlib.h"
// Define o valor do tempo do pulso como constante em milissegundos
#define HEARTBEAT_INTERVAL_MS 500
// Enum com uint8_t para ocupar exatamente 1 byte de memória RAM
typedef enum : uint8_t {
LED_OFF = 0,
LED_ON = 1
} LedState;
const uint8_t LED_PIN = PICO_DEFAULT_LED_PIN;
// Initializes GPIO configuration for the LED pin
void setup_gpio(void) {
gpio_init(LED_PIN);
gpio_set_dir(LED_PIN, GPIO_OUT);
}
// Executes a single cycle of the system heartbeat parameterized by interval_ms
void heartbeat_step(uint16_t interval_ms) {
gpio_put(LED_PIN, LED_ON);
sleep_ms(interval_ms);
gpio_put(LED_PIN, LED_OFF);
sleep_ms(interval_ms);
}
int main(void) {
setup_gpio();
while (true) {
// Envia a constante de 500 ms (uint16_t) para gerar o ciclo total de 1,0 s (500 ms ON / 500 ms OFF)
heartbeat_step(HEARTBEAT_INTERVAL_MS);
}
return 0;
}