Esp32 模塊中已經提供了 FreeRTOS(實時操作系統(tǒng))固件。 FreeRTOS有助于提高系統(tǒng)性能和管理模塊的資源。 FreeRTOS允許用戶處理多項任務,如測量傳感器讀數,發(fā)出網絡請求,控制電機速度等,所有這些任務都可以同時獨立運行。
FreeRTOS為不同的應用程序提供了多個API。 這些 API 可用于創(chuàng)建任務并使其在不同內核上運行。 您需要創(chuàng)建任務以將代碼的特定部分分配給特定內核。 您還可以確定代碼將在哪個內核上運行的優(yōu)先級。 優(yōu)先級值以 level*0 開頭。
每當我們在Arduino IDE上運行代碼時,默認情況下,它會在core*1上運行。
您可以使用一個函數xPortGetCoreID()來檢查代碼在哪個內核上運行。
void setup()
{
Serial.begin(115200);
Serial.print( ” setup() is running on: Core_” );
Serial.println( xPortGetCoreID() );
delay(1000);
}
void loop()
{
Serial.print( ” loop() is running on: Core_” );
Serial.println( xPortGetCoreID() );
delay(1000);
}
這段代碼中,我們將使用兩個led由不同的核心處理。
TaskHandle_t task1;
TaskHandle_t task2;
//將gpio引腳分配給led
const int led1 = LED_BUILTIN;
const int led2 = 25;
void setup() {
Serial.begin(115200 );
pinMode( led1, OUTPUT );
pinMode( led2, OUTPUT );
//創(chuàng)建一個在Task1code()函數中執(zhí)行的任務,優(yōu)先級為1,在核心1上執(zhí)行
xTaskCreatePinnedToCore(task_1code, // Task function.
“Task1”,//任務名稱
10000, //任務的堆棧大小
NULL,//任務的參數
1, //任務的優(yōu)先級
&task1,//跟蹤創(chuàng)建任務的任務句柄
1); //指定核心1的任務
delay(1000);
創(chuàng)建一個在Task2code()函數中執(zhí)行的任務,優(yōu)先級為1,并在核心1上執(zhí)行
xTaskCreatePinnedToCore(task_2code, //Task function.
“task2”,//任務名稱
10000, //任務的堆棧大小
NULL, //任務的參數
1,//任務的優(yōu)先級
&task2,//跟蹤創(chuàng)建任務的任務句柄
0); //指定核心1的任務
delay(1000);
}
//task_1code: LED每1000毫秒閃爍一次
void task_1code( void * pvParameters ){
Serial.print( “task1 running on: core ” );
Serial.println( xPortGetCoreID() );
for(;;)
{
digitalWrite( led1, HIGH);
delay(1000);
digitalWrite(led1, LOW);
delay(1000);
}
}
//task_2code: LED每500毫秒閃爍一次
void task_2code( void * pvParameters )
{
Serial.print( “task2 running on: core ” );
Serial.println(xPortGetCoreID() );
for(;;){
digitalWrite(led2, HIGH );
delay(500);
digitalWrite(led2, LOW );
delay(500);
}
}
void loop()
{
Serial.print( ” loop() is running on: Core ” );
Serial.println( xPortGetCoreID() );
delay(1000);
}
-
傳感器
+關注
關注
2565文章
52857瀏覽量
765986 -
FreeRTOS
+關注
關注
12文章
492瀏覽量
64121 -
實時操作系統(tǒng)
+關注
關注
1文章
202瀏覽量
31302 -
ESP32
+關注
關注
21文章
1012瀏覽量
19116
發(fā)布評論請先 登錄
ESP32模組的主要特性
ESP32 SDIO 使用教程

HC05 藍牙模塊 連接 ESP32 經典藍牙

FreeRTOS消息隊列 & ESP32使用

esp32 例程 藍牙_wifi&藍牙MCU 該不該選ESP32

nodemcu與matlab,關于ESP8266 NodeMcu和ESP32 DEV模塊兩者的區(qū)別

基于ESP32的智能LPG探測器
LoRa模塊SX1278與ESP32結合使用的方法-上

ESP32到ESP32通過Internet進行通信

評論