ich sehe schon, ihr versteht teilw (?) nicht den Sinn und die Vorteile von preemptivem MT.
Lasst mal parallel laufen, ohne yields und ohne delays, als Simulations/Testprogramm:
1.) fibonacci(41) unmittelbar hintereinander in einer Endlosschleife berechnen, Ausgabe seriell
2.) abwechselnd nacheinander fibonacci(38 ), fibonacci(39) und fibonacci(40) direkt hintereinander in einer Endlosschleife berechnen, Ausgabe seriell
3.) Bildschirmausgabe (TFT) von unmittelbat hintereinander 1000 gefüllten Kreisen verschiedener Größe und Position, danach immer komplett Bildschirm löschen, in einer Endlosschleife,
4.) array int[1000] per random initialisieren, dann unmittelbar Quicksort des arrays, dann unmittelbar sortierte Ausgabe des arrays seriell, in einer Endlosschleife
5.) in einer Endlosschleife direkt hintereinander die analog-Ports A0 bis A3 eines ads1115 I2C Sensors schnellstmöglich auslesen und addieren, jeden 100.000sten Summen-Wert (als double) seriell ausgeben
6.) in einer Endlosschleife direkt hintereinander schnellstmöglich die digital-Ports D10 auslesen und D11 damit schreiben und D12 toggeln, jeden 100.000sten Schleifencounter und dazu die dann aktuellen D10/D11/D12 Werte seriell ausgeben.
hier der fibonacci-Code:
Code:
uint32_t fibonacci(uint32_t n) {
if(n == 0){
return 0;
} else if(n == 1) {
return 1;
} else {
return (fibonacci(n-1) + fibonacci(n-2));
}
}
Lesezeichen