Bei Aufruf und Nutzung dieser Website werden Cookies verarbeitet. Alle Details finden Sie in unserer
Datenschutzerklärung
Akzeptieren
Ablehnen
Autoplay
Autocomplete
Previous Lesson
Complete and Continue
FreeRTOS für ESP32 in der Arduino-Umgebung
Einleitung
1.1 Kursvorstellung (1:26)
1.2 Benötigte Software und Hardware (3:06)
1.3 Code und Materialliste (2:20)
1.4 DIY-Devboard für Prototyping (2:01)
1.5 Warum Denglisch? (2:11)
1.6 Variation im Codeaufbau (1:59)
1.7 MIT-Lizenz und Haftungsausschluss (0:39)
1.8 Anmerkungen & alle Fragen zum Kurs können hier gestellt werden
Einführung FreeRTOS
2.1 Zielgruppe und Voraussetzungen (0:59)
2.2 Warum braucht man FreeRTOS? (8:04)
2.3 Andere RTOS Systeme im Embedded Bereich (2:55)
2.4 Design (2:48)
2.5 Konventionen (6:38)
2.6 Multitasking und Gleichzeitigkeit (3:58)
2.7 Stack und Heap Memory Management (7:35)
2.8 System Ticks und Task-Switching (3:46)
2.9 Präemptiver vs. Kooperativer Scheduler (1:59)
2.10 ESP32 C3, S3 und C6 wie auch AVR-Arduino (4:06)
Vorbereitung und Basics
3.1 Intro (1:07)
3.2 VSCode mit PlatformIO Übersicht (7:34)
3.3 PlatformIO Projekte in Arduino IDE (3:54)
3.4 ESP32 mit ESP-Prog und ESP32S3 debuggen (15:26)
3.5 Hardware Timer (6:34)
3.6 Pointer Überblick (2:56)
3.7 Pointer Speicheradressen (4:40)
3.8 Pointer Größe und Vergleich (3:04)
3.9 Arrays als Pointer übergeben (5:32)
3.10 Ringbuffer Übersicht (3:10)
3.11 Ringbuffer Beispiel (3:26)
3.12 Ringbuffer debuggen (2:55)
3.13 Ringbuffer Praxis mit anlogen Sensor (4:48)
Tasks
4.1 Intro (0:55)
4.2 Übersicht und Verdrahtung (3:48)
4.3 Zwei Task unterschiedliche LED Blink (7:26)
4.4 Ausführenden CPU-Core festlegen (5:22)
4.5 Tasks laufen unabhängig vom Delay im Loop (2:10)
4.6 Memory Management Stack Size bestimmen (7:52)
4.7 vTaskDelete – Tasks und Loop löschen (3:55)
4.8 vTaskResume und Suspend - Fortfahren und Aussetzen (5:19)
4.9 Ticks mit ESP32 und Messung mit Oszilloskop (6:03)
4.10 Yielding CPU – Timeslot freigeben (2:31)
4.11 vTaskDelay mit ESP32 (4:00)
4.12 vTaskDelay mit Arduino Uno (3:06)
4.13 Task Priorities (2:42)
4.14 uxTaskGetSystemState (3:38)
4.15 Errorhandling von Tasks (8:18)
4.16 xTaskNotify Aufrufen von Tasks (10:23)
Queues
5.1 Intro (0:48)
5.2 Praxisbeispiel Queue (7:51)
5.3 Auf ein Signal warten (4:08)
5.4 Senden und Empfangen mehrerer Datenwerte (4:53)
5.5 Queue wartet und Abgrenzung Ringbuffer (4:49)
5.6 Button und LEDs mit Queue (7:54)
5.7 Struct und Queues mit OLED (12:26)
Semaphores
6.1 Intro (0:54)
6.2 Binary Semaphores Vorbereitung (4:08)
6.3 Binary Semaphores mit Buttons (4:20)
6.4 Binary Semaphores mit Buffer und Tasks (8:21)
6.5 Binary Semaphores Wechsel innerhalb von Tasks (3:20)
6.6 Countable Semaphores (3:38)
6.7 Versuchsaufbau 3x I2C (2:09)
6.8 3xI2C Module synchronisieren (7:17)
6.9 Fazit und Unterscheidung zwischen Semaphoren und Queues (5:08)
Mutex
7.1 Intro (1:11)
7.2 Unterschiede zwischen Mutex und Binary Semaphore (3:11)
7.3 Race Condition provozieren ohne mutex (4:40)
7.4 Mutex verhindert Race Condition (3:11)
7.5 Deadlock Problem provozieren (7:31)
7.6 Deadlock-Vermeidung (3:45)
Interrupts
8.1 Intro (0:36)
8.2 Vorbereitungsbeispiel (7:56)
8.3 Frequenz messen mit FreeRTOS ISR (7:28)
8.4 ISR Notify und Prioritäten (5:11)
8.5 Semaphore und ISR (2:48)
8.6 3 Tasks und ISR mit Mutex (7:45)
Watchdog
9.1 Intro (0:41)
9.2 Grunprinzip und Herangehensweise (2:36)
9.3 Simpler Watchdog Timer (6:11)
9.4 Watchdog Timer mit Tasks (4:52)
Abschluss
10.1 Ausblick und weitere Themen (2:41)
10.2 Danke und bis bald (0:39)
Exklusiver Bonus für dich!
5.6 Button und LEDs mit Queue
Lesson content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock