Hallo zusammen,
O.K. - ich habe mit harten Worten provoziert
- aber nur wenige "hinterm Ofen vorgelockt" ...
Neuer Ansatz ...
Ich frage mich, wozu ich mich mit preemptivem Multitasking auf dem Nibo2 beschäftigen soll?
1. Einfach so - "der Weg ist das Ziel"
2. Wegen der Supi-Dupi Vorteile, die preemptives Multitasking bringt
(Schreibt man es nun "präemptiv", "preemptiv" oder gar "preemtiv" ?)
zu 1. O.K., abgehakt. Mache ich auch so, wenn ich etwas verstehen will. Schaun mer mal ...
zu 2. Ja, welche Vorteile haben wir denn? Da fehlt mir, ehrlich gesagt, noch das Verständnis.
Wir bewegen uns auf dem Nibo2. Wenn ich mich umschaue finde ich den ATMEGA128 mit einigen LED's und wenigen Sensoren, nicht zu vergessen das LCD-Display, die direkt angeschlossen sind. Ferner ist ist da ein Co-Prozessor, der auch Sensoren "abfragt" und die Motore steuert. Worüber der Sound ausgegeben wird weiß ich aktuell gar nicht so recht ... ist aber auch egal.
Motore - ja, wir haben hier einen selbstfahrenden Roboter. Das sehe ich eigentlich als ureigenen Zweck, nämlich dass der Roboter sich "orientiert" und definierte "Fahr-Aufgaben" ausführt.
Das Blinken von LED's, die Textausgabe auf dem LCD-Display, die Sound-Ausgabe sind - aus meiner Sicht - nur Beigaben, die man nutzen kann oder auch nicht. Oh, Textausgabe - da habe ich schon einige Erfahrungen gemacht mit "zickigen" LCD-Displays, die partout auf einem sehr eng definierten Timing bestanden, wenn sie denn etwas ausgeben sollten. Wie soll/wird das denn funktionieren im Multitasking? Wie werden IRQ's abgearbeitet? Wie wird die wichtige (nicht unterbrechbare?) SPI-Verbindung zum Co-Prozessor ablaufen?
Ich kann mir viele Problemstellungen vorstellen, in denen ein Multitasking (im engeren Sinn) überaus sinnvoll ist - z.B. bei Rechen-intensiven Programmen, wo andere Programme auch mal "ran wollen" - aber auf dem Nibo2? Hier sind Sensoren und Aktoren das Maß der Dinge - oder liege ich da so falsch? Das ist alles sehr Hardware-nah und hier arbeite ich mit IRQ's, PWM, Timern, SPI und TWI etc. - wie kriege ich das alles mit Multitasking zusammen?
Ich bin gespannt auf die Antworten ...
Dieter - alias, für einige, "jim_quakenbush"