#include <Arduino.h>
#include "esp_timer.h"
const int ledPinCore0 = 2; // Pino do LED para o Core 0
const int ledPinCore1 = 4; // Pino do LED para o Core 1
void onTimerCore0(void* arg) {
digitalWrite(ledPinCore0, !digitalRead(ledPinCore0)); // Inverte o estado do LED
}
void onTimerCore1(void* arg) {
digitalWrite(ledPinCore1, !digitalRead(ledPinCore1)); // Inverte o estado do LED
}
void setup() {
Serial.begin(115200);
pinMode(ledPinCore0, OUTPUT);
pinMode(ledPinCore1, OUTPUT);
// Configurar temporizadores para os dois núcleos
esp_timer_create_args_t timerArgsCore0 = {
.callback = &onTimerCore0,
.name = "temporizador_core0"
};
esp_timer_create_args_t timerArgsCore1 = {
.callback = &onTimerCore1,
.name = "temporizador_core1"
};
esp_timer_handle_t timerCore0, timerCore1;
esp_timer_create(&timerArgsCore0, &timerCore0);
esp_timer_create(&timerArgsCore1, &timerCore1);
// Iniciar temporizadores para piscar os LEDs
esp_timer_start_periodic(timerCore0, 1000000); // 1 segundo (temporizador a cada 1 segundo)
esp_timer_start_periodic(timerCore1, 1500000); // 1,5 segundos (temporizador a cada 1,5 segundos)
}
void loop() {
// O loop principal pode ser deixado vazio, já que as tarefas estão em execução nos núcleos
}