Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: Zeitverhalten CC2 Kategorie: CC2-Unit & Appl.Board / CC2-Station (von Thomas Ferl - 19.07.2001 7:57)
Als Antwort auf Zeitverhalten CC2 von Dieter - 17.07.2001 20:33

Hallo Dieter,
das Gerücht mit den 8ms habe ich in die Welt gesetzt.
Vor dem Aufruf einer Funktion, die 8 IO-Ports abfragt,
habe ich den internen Millisekunden-Zähler gespeichert
und nach Beendigung geschaut, wieviel Zeit vergangen ist.Hier für jedermann nachvollziehbar:

//-----------
  thread main
//-----------

{
  long   D,Timer0;
  string s;
  int    i,PortState[8];

  ports.deactw(0);
 
  loop
  {
   Timer0 = system.timer();
   for i=8...15 PortState[i-8]  = ports.get(i);
   D = system.timer() - Timer0;
   
   s="T=";
   str.putlong(s,D);
   
   lcd.clear();
   lcd.print(s,str.length(s));
 
 } // loop

}

Ergebnisse:

Abfrage der IO-Ports 8...15  = 8ms
Abfrage der AD-Ports 0...7   = 8-9ms

Da ich in einem "richtigen" Programm natürlich mit den
gewonnenen Daten arbeiten muss, zB. Vergleich mit dem
Status des vorherigen Loops zwecks Erkennung eines
Statuswechsels usw., sind diese Werte natürlich reine
Theorie. Jeder zusätzliche Befehl kostet weitere
Rechenzeit. Das Problem ist nicht die Bereitstellungsgeschwindigkeit sondern, der Interpreter.

Mit Assembler-Programmierung kannst Du die gut
gemeinte "virtuelle Maschine" umgehen.
Vielleich meldet sich mal ein "Hardcore-Programmierer"
und berichtet etwas über das Zeitverhalten bei
echtem Mschinenencode.
Ich habe seinerzeit mit Z80-Assembler viel Zeit
verbracht und bin im Grunde froh, dass es C2 gibt.
Die meisten Anwendungen sind ja glücklicherweise
nicht so zeitkritisch.


thomas




    Antwort schreiben


Antworten: