RoboterCC - Robotic Code Compiler
Forum Robot Kits NIBO 2 präemptives Multitasking

Welcome

Nachrichten

Sie sind nicht eingeloggt.

Werbung

Banner

Letzte Themen

  • Keine Beiträge vorhanden

Site-Statistic

  • 7433 private projects
  • 378 public projects
  • 16180353 lines compiled
  • 58212 builds
NIBO @ facebook YouTube Twitter
Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:

THEMA: präemptives Multitasking

preemtives Multitasking 10 Jahre 10 Monate her #2568

  • workwind
  • workwinds Avatar
  • OFFLINE
  • Administrator
  • Beiträge: 573
Aufgrund der lebendigen Diskussion zum Thema Multitasking in unserem Forum, habe ich mich entschlossen einen Artikel zu schreiben in dem ein kleiner, preemptiven Scheduler Schritt für Schritt entwickelt und erklärt wird:

www.roboter.cc/index.php?option=com_content&view=article&id=16&Itemid=1

Bis jetzt existiert nur der erste Teil indem einige Grundlagen erklärt werden...
Verbesserungsvorschläge, Fragen und Hinweise bitte in diesem Thread posten ;-)

Gruß,
workwind
Der Administrator hat öffentliche Schreibrechte deaktiviert.

preemtives Multitasking 10 Jahre 10 Monate her #2570

  • BirgerT
  • BirgerTs Avatar
  • OFFLINE
  • Gold Boarder
  • Beiträge: 325
Ok Leute, meine Fragen und Gedanken:

Welche Tasks (oder besser Threads) braucht es auf dem Nibo2, und in welchen Intervallen (alle xx ms) müssen sie gestartet/aktiviert werden?
- Sound alle 10ms für Notenausgabe
- Aktuelle Daten vom Copro (10ms) und neue Daten zurück an Copro
- Serielle Kommunikation UART/Bluetooth/NDS3
- ein Byte ans Display ausgeben (5us) oder vom Display lesen
- Linien- und Bodensensoren
- Akku Überwachung
- Motorstrom
- I/O-Ports abfragen, bearbeiten, ausgeben

Auf welche Ereignisse muss der Nibo2 in welcher Zeit reagieren?
- Bodenverlust
- Liniensensoren
- Taster SW3
- Kommando über IR empfangen
- Kommando über Schnittstelle empfangen

Was kann/sollte über Interrupts erledigt werden?
- UART Zeichen empfangen
- Systemtimer
- ADC Wandlung fertig (Wert ist bereit)

Diese Liste wäre bitte noch zu erweitern/ zu ergänzen.

Die Hinderniserkennung kommt vom Copro alle 10ms;
nach der Verarbeitung im Hauptprozessor ist eine Reaktion des Copro erst nach weiteren 10ms möglich.
Eigentlich müsste man dem Copro vorher sagen, wie er sich bei einer Hinderniserkennung verhalten soll..
Der Administrator hat öffentliche Schreibrechte deaktiviert.

preemtives Multitasking 10 Jahre 10 Monate her #2573

Hallo workwind,

das finde ich prima - aber ich bin schon abgehängt ...

"Ziel ist es dass mehrere Funktionen in einem C-Programm 'quasi' gleichzeitig ausgeführt werden. Erreicht wird das dadurch, dass zwischen den einzelnen Prozessen (Tasks) automatisch (das bedeutet das 'preemptiv') hin und hergeschaltet wird. Das Umschalten soll bei uns durch den Clock-Timer erfolgen. Alternativ kann auch kooperativ durch die Funktion task_yield()] umgeschaltet werden."

task_yield? Wie, wo, was, warum?

Ich verstehe leider nur Bahnhof ... aber wahrscheinlich lebe ich in einem Parallel-Universum :-(

Beste Grüße
Dieter
Der Administrator hat öffentliche Schreibrechte deaktiviert.

preemtives Multitasking 10 Jahre 10 Monate her #2575

  • achim S.
  • achim S.s Avatar
  • OFFLINE
  • Gold Boarder
  • Beiträge: 441
Hallo Workwind
geht es so einfach, das ich es auch verstehe?
achim
Der Administrator hat öffentliche Schreibrechte deaktiviert.

preemtives Multitasking 10 Jahre 10 Monate her #2578

  • workwind
  • workwinds Avatar
  • OFFLINE
  • Administrator
  • Beiträge: 573
@Dieter,
konkrete Hinweise, prima! Ich hab versucht die Stelle im Artikel besser darzustellen... Ich hoffe dass ich Dich wieder in die normale Raumzeit portieren kann ;-)

@BirgerT
soweit bin ich noch nicht - es soll erst einmal nur um das reine Multitasking gehen. Die konkrete Anwendung am NIBO2 kann dann später separat erfolgen...
Trotzdem schon mal ein paar Gedanken:
  • 10 ms -> Thread
  • 5µs -> Interrupt
  • Kommunikation -> Interrupt mit Device

@achim S.
weiß ich nicht ;-)
Einige Grundlagen muss ich voraussetzen - ich werde versuchen passende Verweise auf fremde Erklärungen einzufügen...

Gruß,
workwind
Der Administrator hat öffentliche Schreibrechte deaktiviert.

preemtives Multitasking 10 Jahre 10 Monate her #2580

  • Egon
  • Egons Avatar
  • OFFLINE
  • Gold Boarder
  • Beiträge: 316
hi workwind

:thumbsup:

Ganz tolle Sache!

Bitte weiter so!

Egon
lokalisieren, eliminieren, Vollzug melden
Der Administrator hat öffentliche Schreibrechte deaktiviert.
Ladezeit der Seite: 0.049 Sekunden

Werbung