Re: mehrere Threads Kategorie: Programmierung (von Seidel M. - 9.01.2004 12:58) | |
Als Antwort auf Re: mehrere Threads von André H. - 19.12.2003 9:00
| |
Hallo André, habe gesamte Hardware an Conrad zurückgeschickt und jetzt neue erhalten, deshalb hat es etwas gedauert. Funktioniert auch mit neuer Hardware nicht. Jetzt startet die Unit unregelmässig neu mit Meldung Quit VMC und Q -1 im CII-Display. Wenn ich yield einsetze, kommen undefinierbare Zeichen im I2-Bus-Display, ein Neustart erfolgt jedoch nicht, nach einiger Zeit wird jedoch im I2-Display nichts mehr angezeigt. MfG Mathias Seidel > Hallo Mathias, > > Dieses Problem ist mir leider nicht bekannt. > Das liegt wohl daran, da� ich nicht mit dem 2WB arbeite. > Fürge mal in den Thread test einmal ein yield; statt dem sleep 100 ein. > Mich würde interessieren, ob der Fehler dann auch noch vorkommt. > Dann hätte ich viell. eine, wenn auch nicht plausible, Vermutung. > > MfG André H. > > > > Hallo, > > ich habe Probleme beim Betrieb mit mehreren Threads. Alle Treads laufen einzeln Problemlos, > > auch zwei laufen noch, nur wenn ich den dritten (test) starte, funktioniert der 2W-Bus nicht mehr! > > Die LED am Modem blinkt zwar, aber die am ADC10 nicht mehr. Habe schon mit "cature" probiert, > > hat aber nichts geholfen. Die Funktion io im twb ist ja schon synchronisiert. Nur wenn ich im Thread > > test ein sleep 100 einfüge funktioniert wieder alles! > > Was mache ich falsch, vieleicht kann mir jemand helfen. > > > > hier mein Programm: > > (OS=OS_OPT_V2 / alle Hexe auch neu / auch dll neu) > > > > int AD[16]; > > int t[1]; > > //----------------------------------- > > thread adc > > //----------------------------------- > > { > > byte i,j; > > for i=0...3 > > { > > ports.set(14,i and 0b01); > > ports.set(15,i and 0b10); > > sleep 15; > > for j=0...3 > > { > > yield; > > AD[i*4+j]=ports.adc(j); > > } > > } > > } > > > > //----------------------------------- > > thread test > > //----------------------------------- > > { > > float b; > > b=1.5; > > b=b*100; > > // wenn ich hier sleep 100 einfüge geht alles wieder??? > > } > > > > //----------------------------------- > > thread main > > //----------------------------------- > > > > { > > pcflcd.setpcf(0); > > pcflcd.init (); > > twb.init(); > > > > run mess.adc; > > run test; > > > > loop > > { > > int a; > > a=twbs.stemp(10); > > pcflcd.goto(1,0); > > pcflcd.zahl4n1(a); > > sleep 1000; > > } > > } > > Danke | |
Antwort schreiben Antworten: |