Lampu Kedip di ESP32 Dengan Sistem Operasi FreeRTOS
Lampu Kedip di ESP32 Dengan Sistem Operasi FreeRTOS
Berikut ini contoh program sederhana untuk membuat LED onboard berkedip di pada ESP32 Lolin32 Lite. Sistem operasi yang digunakan adalah FreeRTOS. IDE menggunakan Arduino. Delay menggunakan delay dari FreeRTOS, dengan fungsi vTaskDelayUntil().
Lampu berkedip dengan frekuensi 1 Hz. Suatu angka (counter) dikirim melalui port serial setiap detik. Kecepatan port serial adalah 115200 bps
#define LED_BUILTIN 22 # Wemos Lolin32 onboard LED di pin 22
void setup() {
Serial.begin(115200);
Serial.println("Start");
pinMode(LED_BUILTIN, OUTPUT);
if (1)
xTaskCreate(
TaskBlinker, /* Task function. */
"TaskBlinker", /* String with name of task. */
1000, /* Stack size in bytes. */
NULL, /* Parameter passed as input of the task */
1, /* Priority of the task. */
NULL); /* Task handle. */
}
// the loop function runs over and over again forever
void loop() {
delay(10000);
}
void TaskBlinker(void *parameter) {
int counter = 0;
TickType_t xLastWakeTime;
const TickType_t xPeriod = 500 ;
xLastWakeTime = xTaskGetTickCount();
while (1) {
digitalWrite(LED_BUILTIN, HIGH);
vTaskDelayUntil(&xLastWakeTime, xPeriod);
digitalWrite(LED_BUILTIN, LOW);
vTaskDelayUntil(&xLastWakeTime, xPeriod);
Serial.print("Counter:");
Serial.println(counter);
counter++;
}
}