• 22.08.2025, 01:48
  • Registrieren
  • Anmelden
  • Sie sind nicht angemeldet.

 

sebastian

Administrator

Re: Viele, Viele LED´s, aber net am PC (Bilder S.4

Dienstag, 14. September 2004, 21:34

was verliert man bei dieser art RT-OS an rechenleistung, oder was macht das OS an overhad aus?
so tolle zykluszeiten bekommt man da ja nicht mehr zustande , oder? wenn bei jedem task der komplette registerinhalt immer im ram abgespeichert wird, und getrnnte von der sw verwaltete stacks benutzt werden.
aber bei einer uhr sollte das ja kaum ne rolle spielen *g*.

Sebastian

BlackShorty67

Senior Member

Re: Viele, Viele LED´s, aber net am PC (Bilder S.4

Dienstag, 14. September 2004, 21:47

Ein Taskchange sind etwa 360 Prozessortakte.
Das geht recht fix... Der Prozentuale Verlust an Rechenleistung hängt dann natürlich davon ab, wie hoch du das Task Timeout einstellst.....

Kann dir aber mal meine EInstellungen sagen:

Der Controller läuft mit einem 24 MHz Quarz.
Die Rx2 Prozessoren haben einen X2 Core,- also schafft die CPU 4.000.000 Befehle pro Sekunde. (--> ich weiß, es gibt befehle, die 2 Zyklen brauchen und MUL und DIV brauchen 4)

Ticks steht bei mir auf 2000 und Timeout auf 2, also Taskwechsel jede MilliSekunde...

Das heißt alle 4000 Takte ein Taskchange,- ich verliere ca 10% durch das OS.

Und richtig Zeitkritische Sachen Programmiert man eh in nem Interrupt in ner eigenen RegisterBank und nicht in einem Task.... ;) ;) ;)

Nur wenn du Programmteile hast, die auf Eingaben warten (z.B. Terminalprogramm in dem Controller) oder auf langsame Peripherie (Busy eines LCD´s, UART Zeichen gesendet,- SPI Zeichen gesendet) und du das Pollen willst in "einem" Task, ein normales Programm ist ja quasi ein ein Task Programm,- durch die ganzen abfragen, verzweigungen um nicht in einer Warteschleife steckenzuleiben, damit verliert auch nicht unerheblich rechenzeit...

sebastian

Administrator

Re: Viele, Viele LED´s, aber net am PC (Bilder S.4

Dienstag, 14. September 2004, 22:05

bei den sachen die ich immer echzeitnah programmiert habe, ich das in etwa so gemacht:
In einen Timer IRQ er alle 256CLKs. afgerufen wird werden je nach Taskzahl Integers hochgezählt.
Also wenn der timer irq kommt einfach nur Counter[0]++
Counter[1]++; usw.
In der main schleife frage ich dann ab ob ein bestimmter counter über einen wert X kommt. jenn ja resete ich den counter und mache die nötigen programmschritte.
Delays oder Sleep(x); verwende ich nicht.. dann könnte ich mir ja auch sparen einen schnellen prozessor zu nehmen.
Man minimiert mit dieser variante den overhad auf ein minimum, muss aber sehr auf die programmierung aufpassen.

Sebastian

BlackShorty67

Senior Member

Re: Viele, Viele LED´s, aber net am PC (Bilder S.4

Dienstag, 14. September 2004, 23:19

Dein genanntes Verfahren ist ja auch ziemlich optimal, wenns mal eben ein paar kleines Abläufe sind, die zu synchronisieren sind.

Bei großen Projekten mag ich das Verfahren nicht so,-
es neigt dazu, das sich dann Fehler einschleichen.
Bei Änderungen wirds dann stellenweise ganz chaotisch...


Ein kleiner Ausblick:

Naja, das Projekt liegt in den allerletzten Zügen kurz vor dem endgültigen Abschluß.... Noch ein, zwei Software Gimmicks,
dann kann ich den Compiler mal wieder ausmachen.

Warte noch auf ne Lieferung rotes plexi,- dann mal schauen, was optisch besser kommt: mit oder ohne roter Plexischeibe vor den LED´s... Vielleicht gebt ihr ja auch noch ne Meinung dazu.... Die abschließenden Bilder gibts dann, wenn das gute Stück an der Wand hängt.....

Aber da schwebt mir schon mein nächstes Projekt so dunkel vor: Werd mir wohl nochmal meine Lüftersteuerung vornehmen und ein bischen massiv aufmöbeln.... ;) ;) ;)
mir schweben da so ein paar nette gimmiks vor....

Vielleicht gibts ja hier auch den einen oder anderen im Forum,- der auf PC seite ziemlich gut in C(++) oder so ist,- auf PC Windows ist das nicht so meine Stärke.... oder auch jemanden, der auch fit mit 51er´n oder zu not auch AVR Controllern ist ,- ( ;D und dem die Begriffe TCP Stack, Can Layer 2 und Can Open auch was sagen.... und der auch schon mal was vom FT232 gehört hat...) ...
Vielleicht ergibt sich ja mal ein nettes Gemeinschaftsprojekt....