Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > > Hallo, > > ich komme mit meinem zeitkritischen thread nicht weiter. Ich habe nun die Prios von allen > > threads auf "8" gesetzt und den zeitkrischen thread (ir) auf prio 100, main läuft ganz normal. > > Das Problem ist weiterhin, dass der thread "ir" es teilweise nicht mitbekommt, wenn man die > > Lichtschranke schnell durchschreitet. > > Vielleicht ist die cc2 auch überfordert, was ich mir aber nicht vorstellen kann, da das > > Gesamtprogramm gerade mal 23k ist. Ich schätze es liegt an der Art der Programmierung. > > Dehalb hier meine Routine, vielleich kann jemand etwas erkennen oder kann einen Tipp geben: > > > > Hallo Christian, > ich würde deine zeitkritische Sache erst einmal abspecken... > Warum soll die Prüfen ob es Nacht ist??? > Lass den Fred :-) laufen und mach nur was nötig ist... > Wenn jemand die LS unterbricht setzt du eine globale Variable (LS_dunkel = 1), > und wenn sie wieder frei ist setzt du eine weitere (LS_hell = 1) > Die Auswertung machst du dann gemütlich in einem anderen Thread. > Da kannst du den Wert auch wieder zurücksetzen (LS_dunkel = 0)... > Eine Multiplikation eines Longwertes hat da auch nix zu suchen... > > Ich würde es so machen: > > <code> > wait ports.get(ir) // warten auf Unterbrechung > global. time_dunkel=system.timer(); //Zeitpunkt der steigenden Flanke in globalen Variablen > global.LS_dunkel = 1; > > wait ! ports.get(ir) // warten auf Freigabe > global. time_hell=system.timer(); //Zeitpunkt der fallenden Flanke in globalen Variablen > global.LS_hell = 1; > > </code> > ... > > Grüße nitraM