Lampu Kedip di ESP32 Dengan Sistem Operasi FreeRTOS

ESP32 Lolin32 Lite (atas) dan ESP32 DevkitC (bawah)

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().

ESP32 Lolin32 Lite (atas) dan ESP32 DevkitC (bawah)
ESP32 Lolin32 Lite (atas) dan ESP32 DevkitC (bawah)

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++;
  }
}

Tinggalkan Balasan

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses.