You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
1.2 KiB
37 lines
1.2 KiB
7 years ago
|
#include <arduino.h>
|
||
|
|
||
|
// updateCpuTime отвечает за обновление статистики загрузки Cpu
|
||
|
// updateCpuTime(false) - размещается в начале loop()
|
||
|
// updateCpuTime(true) - размещается в конце loop()
|
||
|
// printCpuTime выводит среднее время работы 10 циклов loop в мкс
|
||
|
// printCpuLoad выводит прикидочную нагрузку loop цикла
|
||
|
|
||
|
static long int cpuTime1 = 0;
|
||
|
static long int cpuTime2 = 0;
|
||
|
static int cpuLoadAvgTime = 0;
|
||
|
static long int cpuTimeLastUpdate = 0;
|
||
|
|
||
|
static void updateCpuTime(bool state) {
|
||
|
switch(state) {
|
||
|
case 0: cpuTime1 = micros();
|
||
|
return;
|
||
|
case 1: cpuTime2 = micros();
|
||
|
cpuLoadAvgTime = cpuLoadAvgTime*0.9 + (cpuTime2 - cpuTime1);
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
static void printCpuTime () {
|
||
|
if (millis() - cpuTimeLastUpdate > 2000) {
|
||
|
Serial.printf("Time for update: %ld \n", cpuLoadAvgTime);
|
||
|
cpuTimeLastUpdate = millis();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
static void printCpuLoad () {
|
||
|
if (millis() - cpuTimeLastUpdate > 2000) {
|
||
|
Serial.printf("CPU Load: %ld \n", cpuLoadAvgTime/10000);
|
||
|
cpuTimeLastUpdate = millis();
|
||
|
}
|
||
|
}
|