Esp32 S2 arduino FreeRTOS 示例
基于 Esp32 S2
单核的板子
#if CONFIG_FREERTOS_UNICORE #define ARDUINO_RUNNING_CORE 0 #else #define ARDUINO_RUNNING_CORE 1 #endif #define LED 2 // define two tasks for Blink & AnalogRead void TaskBlink( void *pvParameters ); void TaskEcho( void *pvParameters ); // the setup function runs once when you press reset or power the board void setup() { // initialize serial communication at 115200 bits per second: Serial.begin(115200); // Now set up two tasks to run independently. xTaskCreatePinnedToCore( TaskBlink , "TaskBlink" // A name just for humans , 1024 // This stack size can be checked & adjusted by reading the Stack Highwater , NULL , 2 // Priority, with 3 (configMAX_PRIORITIES - 1) being the highest, and 0 being the lowest. , NULL , ARDUINO_RUNNING_CORE); xTaskCreatePinnedToCore( TaskEcho , "TaskEcho" , 1024 // Stack size , NULL , 1 // Priority , NULL , ARDUINO_RUNNING_CORE); // Now the task scheduler, which takes over control of scheduling individual tasks, is automatically started. } void loop() { // Empty. Things are done in Tasks. } /*--------------------------------------------------*/ /*---------------------- Tasks ---------------------*/ /*--------------------------------------------------*/ void TaskBlink(void *pvParameters) // This is a task. { (void) pvParameters; /* Blink Turns on an LED on for one second, then off for one second, repeatedly. If you want to know what pin the on-board LED is connected to on your ESP32 model, check the Technical Specs of your board. */ pinMode(LED, OUTPUT); for (;;) // A Task shall never return or exit. { digitalWrite(LED, HIGH); // turn the LED on (HIGH is the voltage level) vTaskDelay(1000); // one tick delay (15ms) in between reads for stability digitalWrite(LED, LOW); // turn the LED off by making the voltage LOW vTaskDelay(1000); // one tick delay (15ms) in between reads for stability } } void TaskEcho(void *pvParameters) // This is a task. { (void) pvParameters; for (;;) { // print out the value you read: Serial.println("==== Message from FreeRTOS ====="); vTaskDelay(1000); // one tick delay (15ms) in between reads for stability } }
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论