/* The example of esp-open-rtos
*
* This sample code is in the public domain.
*/
#include "espressif/esp_common.h"
#include "esp/uart.h"
#include "FreeRTOS.h"
#include "task.h"
//#include "queue.h"
long idle_count = 0;
long tick_count = 0;
//時間稼ぎ
void ConsumptionTick(int delay) {
TickType_t startTick;
TickType_t endTick;
TickType_t nowTick;
startTick = xTaskGetTickCount();
endTick = startTick + delay;
//printf("startTick=%d
endTick=%d\n",startTick,endTick);
while(1) {
nowTick =
xTaskGetTickCount();
if (nowTick > endTick)
break;
}
}
void vApplicationIdleHook(void)
{
idle_count++;
}
void vApplicationTickHook(void)
{
tick_count++;
}
void user_init(void)
{
TickType_t nowTick;
uart_set_baud(0, 115200);
nowTick = xTaskGetTickCount();
printf("[%d] SDK
version:%s\n",nowTick,sdk_system_get_sdk_version());
int idle_rate;
idle_count = 0;
tick_count = 0;
ConsumptionTick(200);
nowTick = xTaskGetTickCount();
idle_rate = idle_count / tick_count;
printf("[%d] idle_count=%ld
tick_count=%ld idle_rate=%d\n",
nowTick,idle_count,tick_count,idle_rate);
idle_count = 0;
tick_count = 0;
vTaskDelay(1);
nowTick = xTaskGetTickCount();
idle_rate = idle_count / tick_count;
printf("[%d] idle_count=%ld
tick_count=%ld idle_rate=%d\n",
nowTick,idle_count,tick_count,idle_rate);
idle_count = 0;
tick_count = 0;
vTaskDelay(10);
nowTick = xTaskGetTickCount();
idle_rate = idle_count / tick_count;
printf("[%d] idle_count=%ld
tick_count=%ld idle_rate=%d\n",
nowTick,idle_count,tick_count,idle_rate);
idle_count = 0;
tick_count = 0;
vTaskDelay(100);
nowTick = xTaskGetTickCount();
idle_rate = idle_count / tick_count;
printf("[%d] idle_count=%ld
tick_count=%ld idle_rate=%d\n",
nowTick,idle_count,tick_count,idle_rate);
}
|