#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
esp32-devkit-c-v4