#include <Arduino.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_freertos_hooks.h"
#include "sdkconfig.h"

static uint64_t idle0Calls = 0;
static uint64_t idle1Calls = 0;

#if defined(CONFIG_ESP32_DEFAULT_CPU_FREQ_240)
static const uint64_t MaxIdleCalls = 1855000;
#elif defined(CONFIG_ESP32_DEFAULT_CPU_FREQ_160)
static const uint64_t MaxIdleCalls = 1233100;
#else
#error "Unsupported CPU frequency"
#endif
/*
static bool idle_task_0()
{
	idle0Calls += 1;
	return false;
}
*/
static bool idle_task_1()
{
	idle1Calls += 1;
	return false;

}
void setup() {
  Serial.begin(115200);
  pinMode(27, OUTPUT);

  //ESP_ERROR_CHECK(esp_register_freertos_idle_hook_for_cpu(idle_task_0, 0));
	ESP_ERROR_CHECK(esp_register_freertos_idle_hook_for_cpu(idle_task_1, 1));
}

void loop() {
  
  // Print the CPU load percentage
  float idle0 = idle0Calls;
		float idle1 = idle1Calls;
		idle0Calls = 0;
		idle1Calls = 0;

		//int cpu0 = 100.f -  idle0 / MaxIdleCalls * 100.f;
		int cpu1 = 100.f - idle1 / MaxIdleCalls * 100.f;

		//Serial.println(cpu0);
		Serial.println(String(cpu1) + '%');
		// TODO configurable delay
		//vTaskDelay(5000 / portTICK_PERIOD_MS);
  digitalWrite(27,(millis()/500)%2);
  delay(1000); // Delay for 1 second
}
Loading
esp32-devkit-c-v4